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

Nikolay Tikhonov commented on IGNITE-3429:
------------------------------------------

As workaround for the issue can be used the following {{BinaryIdentityResolver}}

{noformat}
        BinaryConfiguration bCfg = new BinaryConfiguration();

        BinaryTypeConfiguration btCfg = new BinaryTypeConfiguration();

        btCfg.setTypeName(org.hibernate.cache.spi.CacheKey.class.getName());
        btCfg.setIdentityResolver(new BinaryAbstractIdentityResolver() {
            @Override protected int hashCode0(BinaryObject obj) {
                return ((CacheKey)obj.deserialize()).getKey().hashCode();
            }

            @Override protected boolean equals0(BinaryObject o1, BinaryObject 
o2) {
                Serializable obj0 = ((CacheKey)o1.deserialize()).getKey();
                Serializable obj1 = ((CacheKey)o2.deserialize()).getKey();

                return obj0.equals(obj1);
            }
        });

        bCfg.setTypeConfigurations(Collections.singleton(btCfg));

        IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
                .setBinaryConfiguration(bCfg);
{noformat}

> org.hibernate.cache.spi.CacheKey not properly serialized by binary marshaller
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-3429
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3429
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 1.6
>            Reporter: Valentin Kulichenko
>            Priority: Critical
>             Fix For: 2.0
>
>
> {{org.hibernate.cache.spi.CacheKey}} is a class used as a key for all entries 
> in the Hibernate L2 cache. This class contains {{type}} field and custom 
> {{equals}} logic where the type is used as a helper and does not participate 
> in comparison. Instances of the same type are producing different hash codes 
> in different JVMs, which actually breaks comparison when binary format is 
> used, where byte arrays are compared.
> The issue is described in more detail here: 
> http://stackoverflow.com/questions/38132263/apache-ignite-as-hibernate-l2-cache-storing-duplicate-entities



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

Reply via email to