[ https://issues.apache.org/jira/browse/IGNITE-9160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nikolai Kulagin updated IGNITE-9160: ------------------------------------ Description: Some classes have Incorrect equals() method: {code:java} // GridDhtPartitionMap.java @Override public boolean equals(Object o) { if (this == o) return true; GridDhtPartitionMap other = (GridDhtPartitionMap)o; return other.nodeId.equals(nodeId) && other.updateSeq == updateSeq; }{code} In this case, we can get CCE {code:java} GridDhtPartitionMap gridDhtPartMap = new GridDhtPartitionMap(); gridDhtPartMap.equals(new Object()); -------------------------------------------------------------- Exception in thread "main" java.lang.ClassCastException: java.lang.Object cannot be cast to org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap.equals(GridDhtPartitionMap.java:319) at ru.zzzadruga.Ignite.main(Ignite.java:9){code} Or NPE {code:java} GridDhtPartitionMap gridDhtPartMap = new GridDhtPartitionMap(); gridDhtPartMap.equals(null); -------------------------------------------------------------- Exception in thread "main" java.lang.NullPointerException at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap.equals(GridDhtPartitionMap.java:321) at ru.zzzadruga.Ignite.main(Ignite.java:9){code} The following code will prevent this {code:java} if (o == null || getClass() != o.getClass()) return false;{code} List of classes with similar problems: *GridDhtPartitionFullMap -* NPE and CCE *GridDhtPartitionMap* - NPE and CCE *GridNearOptimisticTxPrepareFuture* - NPE and CCE *GridCacheMvccCandidate* - CCE *GridDhtPartitionExchangeId* - CCE *GridTuple6* - CCE was: Some classes have Incorrect equals() method: {code:java} // GridDhtPartitionMap.java @Override public boolean equals(Object o) { if (this == o) return true; GridDhtPartitionMap other = (GridDhtPartitionMap)o; return other.nodeId.equals(nodeId) && other.updateSeq == updateSeq; }{code} In this case, we can get CCE {code:java} GridDhtPartitionMap gridDhtPartMap = new GridDhtPartitionMap(); gridDhtPartMap.equals(new Object()); -------------------------------------------------------------- Exception in thread "main" java.lang.ClassCastException: java.lang.Object cannot be cast to org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap.equals(GridDhtPartitionMap.java:319) at ru.zzzadruga.Ignite.main(Ignite.java:9){code} Or NPE {code:java} GridDhtPartitionMap gridDhtPartMap = new GridDhtPartitionMap(); gridDhtPartMap.equals(null); -------------------------------------------------------------- Exception in thread "main" java.lang.NullPointerException at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap.equals(GridDhtPartitionMap.java:321) at ru.zzzadruga.Ignite.main(Ignite.java:9){code} The following code will prevent this {code:java} if (o == null || getClass() != o.getClass()) return false;{code} List of classes with similar problems: *GridDhtPartitionFullMap -* NPE *GridDhtPartitionMap* - NPE *GridNearOptimisticTxPrepareFuture* - NPE and CCE *GridCacheMvccCandidate* - CCE *GridDhtPartitionExchangeId* - CCE *GridTuple6* - CCE > NPE and CCE on equals() methods > ------------------------------- > > Key: IGNITE-9160 > URL: https://issues.apache.org/jira/browse/IGNITE-9160 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: 2.6 > Reporter: Nikolai Kulagin > Assignee: Nikolai Kulagin > Priority: Minor > Labels: newbie > Fix For: 2.7 > > > Some classes have Incorrect equals() method: > {code:java} > // GridDhtPartitionMap.java > @Override public boolean equals(Object o) { > if (this == o) > return true; > GridDhtPartitionMap other = (GridDhtPartitionMap)o; > return other.nodeId.equals(nodeId) && other.updateSeq == updateSeq; > }{code} > In this case, we can get CCE > {code:java} > GridDhtPartitionMap gridDhtPartMap = new GridDhtPartitionMap(); > gridDhtPartMap.equals(new Object()); > -------------------------------------------------------------- > Exception in thread "main" java.lang.ClassCastException: java.lang.Object > cannot be cast to > org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap > at > org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap.equals(GridDhtPartitionMap.java:319) > at ru.zzzadruga.Ignite.main(Ignite.java:9){code} > Or NPE > {code:java} > GridDhtPartitionMap gridDhtPartMap = new GridDhtPartitionMap(); > gridDhtPartMap.equals(null); > -------------------------------------------------------------- > Exception in thread "main" java.lang.NullPointerException > at > org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap.equals(GridDhtPartitionMap.java:321) > at ru.zzzadruga.Ignite.main(Ignite.java:9){code} > The following code will prevent this > {code:java} > if (o == null || getClass() != o.getClass()) > return false;{code} > List of classes with similar problems: > > *GridDhtPartitionFullMap -* NPE and CCE > *GridDhtPartitionMap* - NPE and CCE > *GridNearOptimisticTxPrepareFuture* - NPE and CCE > *GridCacheMvccCandidate* - CCE > *GridDhtPartitionExchangeId* - CCE > *GridTuple6* - CCE -- This message was sent by Atlassian JIRA (v7.6.3#76005)