[infinispan-dev] GetKeyValueCommand NPE with CR1 in Hibernate 2LC - ISPN-7029

Radim Vansa rvansa at redhat.com
Wed Feb 15 06:21:39 EST 2017


On 02/15/2017 11:28 AM, Galder Zamarreño wrote:
> Hey Radim,
>
> Your changes in ISPN-7029 are causing issues with Hibernate 2LC.
>
> In particular [2]. Name.equals() always returns false, so it'll never be found in the context. So entry is null.

That's obviously a bug in the 2LC testsuite, isn't it? Object used as 
@EmbeddedId needs to have the equals correctly defined. How else would 
you compare ids? I wonder how could that work in the past.

>
> Moreover, if EntryLookup.lookupEntry javadoc (and some implementations) can and do return null. Are you expecting that somehow that method will never return null?

With ISPN-7029 in, the entry should be wrapped in the context after 
EntryWrappingInterceptor if the key is in readCH, otherwise it should be 
null. In case that xDistributionInterceptor finds out that it needs to 
work on that value despite not being able to read it (e.g. in case that 
it's in writeCH during unfinished rebalance), it should wrap 
NullCacheEntry.getInstance() using EntryFactory. wrapExternalEntry. More 
info about the logic is in o.i.c.EntryFactory javadoc [3].

Radim

[3] 
https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/container/EntryFactory.java

>
> I'll create a JIRA to track all issues arising from Hibernate 2LC in a minute, but wanted to get your thoughts firts.
>
> Cheers,
>
> [1] https://issues.jboss.org/browse/ISPN-7029
> [2] https://github.com/hibernate/hibernate-orm/blob/master/hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/CacheKeysFactoryTest.java#L58
> --
> Galder Zamarreño
> Infinispan, Red Hat
>


-- 
Radim Vansa <rvansa at redhat.com>
JBoss Performance Team



More information about the infinispan-dev mailing list