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

Valentin Kulichenko updated IGNITE-1956:
----------------------------------------
    Description: 
{{PortableObject.field()}} method implementation attempts to resolve the class 
if the field type is Enum. This is wrong, because this method should work on 
server side without classes on classpath. Also this breaks the {{toString()}} 
method in this case.

In addition, .NET always writes {{-1}} as a type ID for any enum, so on Java 
side it is resolved into {{java.lang.Object}}. As a result, {{field()}} and 
{{toString()}} method fail with this exception:
{code}
Caused by: org.apache.ignite.internal.portable.api.PortableException: Class 
does not represent enum type: java.lang.Object
{code}

  was:
{{PortableObject.field()}} method implementation attempts to resolve the class 
if the field type is Enum. This is wrong, because this method should work on 
server side without classes on classpath. Also this breaks the {{toString()}} 
method in this case.

In addition, .NET always writes {{-1}} as a type ID for any enum, so on Java 
side it is resolved into {{java.lang.Object}}. As a result, {{field()}} and 
{{toString()} method fail with this exception:
{code}
Caused by: org.apache.ignite.internal.portable.api.PortableException: Class 
does not represent enum type: java.lang.Object
{code}


> Portable object requires to have a class to get Enum field value
> ----------------------------------------------------------------
>
>                 Key: IGNITE-1956
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1956
>             Project: Ignite
>          Issue Type: Bug
>          Components: general, interop
>            Reporter: Valentin Kulichenko
>            Assignee: Vladimir Ozerov
>             Fix For: 1.5
>
>
> {{PortableObject.field()}} method implementation attempts to resolve the 
> class if the field type is Enum. This is wrong, because this method should 
> work on server side without classes on classpath. Also this breaks the 
> {{toString()}} method in this case.
> In addition, .NET always writes {{-1}} as a type ID for any enum, so on Java 
> side it is resolved into {{java.lang.Object}}. As a result, {{field()}} and 
> {{toString()}} method fail with this exception:
> {code}
> Caused by: org.apache.ignite.internal.portable.api.PortableException: Class 
> does not represent enum type: java.lang.Object
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to