-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: ClassCastException for Color conversion in newer Java versions #161
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit corrects the issue by converting the Color object to its RGB hex string representation.
TrentinTheKid
added
type: Bug
Something is broken :(
status: Pending
Issue is waiting to be verified as still active
labels
Aug 13, 2024
ItsNature
added
status: Accepted
An issue that is going to be fixed
and removed
status: Pending
Issue is waiting to be verified as still active
labels
Aug 16, 2024
Your code fixes one issue but creates a new one. The code must support the This is the current master behavior: options.set(ModMemory.LOW_MEM_COLOR, "#FFFFAA00"); // Works
options.set(ModMemory.LOW_MEM_COLOR, Color.RED); // Broken After your changes: options.set(ModMemory.LOW_MEM_COLOR, "#FFFFAA00"); // Broken
options.set(ModMemory.LOW_MEM_COLOR, Color.RED); // Works |
Irrelevant due to recent changes |
…pport This commit addresses the regression introduced in the previous fix that enabled Color object usage but broke HEX string compatibility. The code has been adjusted to ensure that both HEX strings (e.g., "#FFFFAA00") and Color objects (e.g., Color.RED) can be used interchangeably when setting color values in options.set(). This fix ensures backward compatibility with the previous behavior while retaining the ability to use Color objects without causing a ClassCastException.
The commit 75df5dd fixes the issue. It has been tested for Java 17 and 8. |
ItsNature
approved these changes
Aug 27, 2024
vectrixdevelops
approved these changes
Aug 28, 2024
This was referenced Sep 3, 2024
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit corrects the issue by converting the
Color
object to its RGB hex string representation. The problem was that attempting to cast ajava.awt.Color
object to aString
caused aClassCastException
in newer Java versions. The fix ensures that color values can be set using either HEX strings orColor
objects without causing exceptions.Overview
Description:
This pull request resolves the issue where attempting to cast a
java.awt.Color
object to aString
caused aClassCastException
in newer Java versions. The problem arose when handling color values that could be either HEX strings orColor
objects.Changes:
The code has been updated to properly handle both
String
andColor
inputs when setting color values. Specifically:current
value is aString
, it is used directly.current
value is aColor
object, it is converted to its RGB hex string representation usingInteger.toHexString(currentColor.getRGB())
before being set.This change ensures compatibility with both HEX string and
Color
object inputs, allowing the system to handle either type without causing exceptions.Code Example:
The new implementation:
This logic ensures that color values are consistently stored as strings, whether they originate as HEX strings or Color objects.
Related Issue (If applicable):
Screenshots and/or Videos (If applicable):
Review Request Checklist
feature/add-module
&bugfix/fix-issue
)Thanks to @AndyReckt for his help.