[ 
https://issues.apache.org/jira/browse/IGNITE-4663?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-4663:
-----------------------------------
    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:
{code}
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)
{code}

  was:
{{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:
{{code}}
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)
{{code}}


> BinaryUtils.doReadObjectArray can not read array with platform-only element 
> type
> --------------------------------------------------------------------------------
>
>                 Key: IGNITE-4663
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4663
>             Project: Ignite
>          Issue Type: Bug
>          Components: binary
>    Affects Versions: 2.0
>            Reporter: Pavel Tupitsyn
>            Assignee: Taras Ledkov
>             Fix For: 2.0
>
>
> {{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:
> {code}
> 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)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to