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

Saikat Maitra commented on IGNITE-3263:
---------------------------------------

[~dmagda]

Hi Denis,

I have updated the PR with review comments. I have added 2 model test class 
Person and Organization and used them in test to demonstrate that unit tests 
are passing with the Null check.

Another observation is the tests  are passing and NPE is reproducible for 
Ignite instance but the NPE is not reproducible in IgniteTestGrid.

Please review and share your feedback.

Regards
Saikat

> Affinity function must check for null keys
> ------------------------------------------
>
>                 Key: IGNITE-3263
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3263
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 1.6
>            Reporter: Denis Magda
>            Assignee: Saikat Maitra
>              Labels: community
>             Fix For: 1.8
>
>
> AffinityFunction implementations must check for {{null}} keys and through 
> meaningful exceptions in such a cases.
> As an example the following code trows NPE since the keys is not validated
> {code}
> Cache<AffinityKey&lt;String>, Person> personCache = ..;
> personCache.get(new AffinityKey<>(key, affKey)); // returns value
> personCache.get(new AffinityKey<>(key)); // throws NPE
> Exception in thread "main" java.lang.NullPointerException
>         at
> org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction.partition(RendezvousAffinityFunction.java:428)
>         at
> org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.partition(GridCacheAffinityManager.java:206)
>         at
> org.apache.ignite.internal.processors.cache.GridCacheContext.toCacheKeyObject(GridCacheContext.java:1801)
>         at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.get(GridDhtAtomicCache.java:339)
>         at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4650)
>         at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1391)
>         at
> org.apache.ignite.internal.processors.cache.IgniteCacheProxy.get(IgniteCacheProxy.java:907)
>         at
> my.apache.ignite.examples.collocation.CacheCollocationExample.main(CacheCollocationExample.java:69)
> {code}



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

Reply via email to