Konstantin Orlov created IGNITE-12569: -----------------------------------------
Summary: Can't set serialized enum to a BinaryObject's field Key: IGNITE-12569 URL: https://issues.apache.org/jira/browse/IGNITE-12569 Project: Ignite Issue Type: Bug Components: binary Reporter: Konstantin Orlov Assignee: Konstantin Orlov The deserialization of the BinaryObject fails since a serialized representation of the enum was set to a field instead of the enum itself. Because of this issue there is no way to work with enums without a corresponding class. Error message thrown during the deserialization: {noformat}[18:03:06,159][ERROR][main][BinaryContext] Failed to deserialize object [typeName=binary.BinaryEnumExample$TestClass] org.apache.ignite.binary.BinaryObjectException: Failed to read field [name=theEnum] at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:191) ~[classes/:?] at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:887) [classes/:?] at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1762) [classes/:?] at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1714) [classes/:?] at org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:794) [classes/:?] at org.apache.ignite.internal.binary.BinaryObjectImpl.deserialize(BinaryObjectImpl.java:636) [classes/:?] at binary.BinaryEnumExample.main(BinaryEnumExample.java:20) [classes/:?] Caused by: org.apache.ignite.binary.BinaryObjectException: Unexpected field type [pos=24, expected=Enum, actual=Enum] at org.apache.ignite.internal.binary.BinaryReaderExImpl.checkFlagNoHandles(BinaryReaderExImpl.java:1677) ~[classes/:?] at org.apache.ignite.internal.binary.BinaryReaderExImpl.readEnum0(BinaryReaderExImpl.java:1403) ~[classes/:?] at org.apache.ignite.internal.binary.BinaryReaderExImpl.readEnum(BinaryReaderExImpl.java:1387) ~[classes/:?] at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:885) ~[classes/:?] at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:702) ~[classes/:?] at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:187) ~[classes/:?] ... 6 more Exception in thread "main" class org.apache.ignite.binary.BinaryObjectException: Failed to deserialize object [typeName=binary.BinaryEnumExample$TestClass] at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:926) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1762) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1714) at org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:794) at org.apache.ignite.internal.binary.BinaryObjectImpl.deserialize(BinaryObjectImpl.java:636) at binary.BinaryEnumExample.main(BinaryEnumExample.java:20) Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to read field [name=theEnum] at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:191) at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:887) ... 5 more Caused by: class org.apache.ignite.binary.BinaryObjectException: Unexpected field type [pos=24, expected=Enum, actual=Enum] at org.apache.ignite.internal.binary.BinaryReaderExImpl.checkFlagNoHandles(BinaryReaderExImpl.java:1677) at org.apache.ignite.internal.binary.BinaryReaderExImpl.readEnum0(BinaryReaderExImpl.java:1403) at org.apache.ignite.internal.binary.BinaryReaderExImpl.readEnum(BinaryReaderExImpl.java:1387) at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:885) at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:702) at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:187) ... 6 more{noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)