[
https://issues.apache.org/jira/browse/IGNITE-3455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15370624#comment-15370624
]
Igor Sapego commented on IGNITE-3455:
-------------------------------------
On the closer look, seems like root cause is the following string in config:
{code:xml}
<bean id="ignite.cfg"
class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="binaryConfiguration">
<bean
class="org.apache.ignite.configuration.BinaryConfiguration">
<property name="idMapper">
<bean
class="org.apache.ignite.binary.BinaryBasicIdMapper">
<property name="lowerCase"
value="false"/>
</bean>
</property>
</bean>
</property>
</bean>
{code}
In C++ predefined function {{GetBinaryStringHashCode}} always uses lower-case
version of string to calculate hash. So when {{BinaryBasicIdMapper}} is
configured to use non-lowercase algorithm, hashes for the same type names are
going to be different for C++ and Java nodes.
> Entry placed on C++ side is not found on Java side
> --------------------------------------------------
>
> Key: IGNITE-3455
> URL: https://issues.apache.org/jira/browse/IGNITE-3455
> Project: Ignite
> Issue Type: Bug
> Components: cache, platforms
> Reporter: Denis Magda
> Assignee: Igor Sapego
> Priority: Blocker
> Attachments: cpp.zip, java.zip
>
>
> If a custom key is used for cache values then the following scenario doesn't
> work:
> - value is placed on C++ side;
> - value is read on Java side (value is not found here).
> Reverse direction is not workable as well.
> HashCode is implemented properly in C++ and Java.
> Fast debugging showed that a partition and primary node is calculated
> properly. Looks like that there is a serialization related issue that leads
> to the situation when "equals" fails during an object lookup.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)