Description
BinaryUtils.doReadObjectArray performs unnecessary class lookup when deserialize = false. When array elements are of platform-only type (platformId != 0), the class can never be resolved.
- arrays of user-defined types are not supported for platforms
- performance is suboptimal in binary mode (in Java and platforms)
Stack trace for platforms problem:
Java exception occurred [class=org.apache.ignite.binary.BinaryInvalidTypeException, message=Unknown pair [platformId= 0, typeId=3184265]]
----> Apache.Ignite.Core.Common.JavaException : class org.apache.ignite.binary.BinaryInvalidTypeException: Unknown pair [platformId= 0, typeId=3184265]
at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:691)
at org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1521)
at org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1441)
at org.apache.ignite.internal.binary.BinaryUtils.doReadObjectArray(BinaryUtils.java:1884)
at org.apache.ignite.internal.binary.BinaryUtils.unmarshal(BinaryUtils.java:1838)
at org.apache.ignite.internal.binary.BinaryReaderExImpl.readObjectDetached(BinaryReaderExImpl.java:1129)
at org.apache.ignite.internal.processors.platform.cache.PlatformCache.processInStreamOutLong(PlatformCache.java:409)
at org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inStreamOutLong(PlatformTargetProxyImpl.java:61)
Attachments
Issue Links
- blocks
-
IGNITE-2703 .NET: Dynamically registered classes must use binary serialization if possible
- Resolved
- links to