[ 
https://issues.apache.org/jira/browse/IGNITE-2852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15407236#comment-15407236
 ] 

Vladimir Ozerov commented on IGNITE-2852:
-----------------------------------------

This appears to be pretty tough task. As soon as object is converted to binary 
form we are no longer able to compare it with another binaries since we lost 
comparison logic.

Let's keep this ticket on hold for a while, until we came up with clear 
solution.

> Support of Comparable interface for BinaryObject
> ------------------------------------------------
>
>                 Key: IGNITE-2852
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2852
>             Project: Ignite
>          Issue Type: Bug
>          Components: binary
>    Affects Versions: 1.5.0.final
>            Reporter: Valentin Kulichenko
>            Assignee: Andrew Mashenkov
>             Fix For: 1.7
>
>
> When trying to convert {{TreeMap}} into binary object using {{toBinary}} 
> method, the following exception fails:
> {noformat}
> Exception in thread "main" java.lang.ClassCastException: 
> org.apache.ignite.internal.binary.BinaryObjectImpl cannot be cast to 
> java.lang.Comparable
>       at java.util.TreeMap.compare(TreeMap.java:1188)
>       at java.util.TreeMap.put(TreeMap.java:531)
>       at 
> org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.marshalToBinary(CacheObjectBinaryProcessorImpl.java:495)
>       at 
> org.apache.ignite.internal.processors.cache.binary.IgniteBinaryImpl.toBinary(IgniteBinaryImpl.java:67)
>       at TreeMapTest.main(TreeMapTest.java:15)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
> {noformat}
> This happens because maps are not wrapped into binary objects, therefore we 
> create another {{TreeMap}} and put {{BinaryObject}} instances, which are not 
> {{Comparable}}.



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

Reply via email to