[
https://issues.apache.org/jira/browse/IGNITE-1744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey Gura updated IGNITE-1744:
--------------------------------
Description:
For example {{BigInteger}} class has different implementations in Orcale and
IBM JDKs. Serialization of {{BigInteger}} instances works correctly in case of
{{JdkMarshaller}}, but fails in case of {{OptimizedMarshaller}} or
{{PortableMarshaller}} because {{getDeclaredFields}} returns different sets of
fields for Oracle and IBM, so {{OptimizedMarshaller}} calculates checksums that
are not equal for different vendors. {{PortableMarshaller}} use
{{OptimizedMarshaller}} for classes with overrided
{{readObject}}/{{writeObject}}, so it works incorrectly also.
Solution discussion started here:
https://issues.apache.org/jira/browse/IGNITE-1526?focusedCommentId=14955424&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14955424
was:
For example {{BigInteger}} class has different implementations in Orcale and
IBM JDKs. Serialization of {{BigInteger}} instances works correctly in case of
{{JdkMarshaller}}, but fails in case of {{OptimizedMarshaller}} or
{{PortableMarshaller}} because {{getDeclaredFields}} returns different sets of
fields for Oracle and IBM, so {{OptimizedMarshaller}} calculates checksums that
are not equal for different vendors. {{PortableMarshaller}} use
{{OptimizedMarshaller}} for classes with overrided
{{readObject}}/{{writeObject}}, so it works incorrectly also.
Suggested solution discussion started here:
https://issues.apache.org/jira/browse/IGNITE-1526?focusedCommentId=14955424&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14955424
> Serialization problems in case of cluster with different JDKs vendors and
> different classes implementations.
> ------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-1744
> URL: https://issues.apache.org/jira/browse/IGNITE-1744
> Project: Ignite
> Issue Type: Bug
> Reporter: Andrey Gura
> Assignee: Andrey Gura
>
> For example {{BigInteger}} class has different implementations in Orcale and
> IBM JDKs. Serialization of {{BigInteger}} instances works correctly in case
> of {{JdkMarshaller}}, but fails in case of {{OptimizedMarshaller}} or
> {{PortableMarshaller}} because {{getDeclaredFields}} returns different sets
> of fields for Oracle and IBM, so {{OptimizedMarshaller}} calculates checksums
> that are not equal for different vendors. {{PortableMarshaller}} use
> {{OptimizedMarshaller}} for classes with overrided
> {{readObject}}/{{writeObject}}, so it works incorrectly also.
> Solution discussion started here:
> https://issues.apache.org/jira/browse/IGNITE-1526?focusedCommentId=14955424&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14955424
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)