Folks,

Recently we revealed an inconsistency in our binary serialization when
BinaryObject.field() is called (*IGNITE-1956*):
- When field is an object, BinaryObject is returned, i.e. it is not
deserialized.
- When field is enum, we always try to deserialize it. This way, user
cannot work with enums if corresponding class is not loaded to JVM (or type
is not loaded to .NET).

The problem can be solved using three new methods:
1) BinaryType.isEnum() - to let user know whether type is enum or not.
2) BinaryObject.enumOrdinal() - to get ordinal is this object is enum.
Exception will be thrown otherwise.
3) IgniteBinaries.createEnum(String typeName, int ordinal) - to create
enums when there is not matching class/type in runtime.

Thoughts?

Vladimir.

Reply via email to