Skip to content

Commit

Permalink
Merge pull request #34 from tadamski/jdk21-enum-parsing
Browse files Browse the repository at this point in the history
IIOPInputStream: fix java.lang.Enum parsing after JDK21 hash field wa…
  • Loading branch information
tadamski authored Jan 22, 2025
2 parents 9d95b3c + 0bf218f commit dc31eb8
Showing 1 changed file with 8 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -940,7 +940,14 @@ private synchronized Object inputObject(Class clz,
* Handle it as a serializable class.
*/
if (Enum.class.isAssignableFrom( clz )) {
int ordinal = orbStream.read_long() ;
/**
* Fields of java.lang.enum.class have changed (hash field has been added)
* in JDK21 leading to IIOP stream parsing errors (see WFLY-20283).
*/
if (Enum.class.getDeclaredFields().length >= 3) {
int hash = orbStream.read_long();
}
int ordinal = orbStream.read_long();
String value = (String)orbStream.read_value( String.class ) ;
return Enum.valueOf( clz, value ) ;
} else if (currentClassDesc.isExternalizable()) {
Expand Down

0 comments on commit dc31eb8

Please sign in to comment.