[ https://issues.apache.org/jira/browse/IGNITE-1307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14713434#comment-14713434 ]
Semen Boikov commented on IGNITE-1307: -------------------------------------- GridDhtTxPrepareFuture can be completed with null GridNearTxPrepareResponse in case when transaction is invalidated, need to fix it to use non-null GridNearTxPrepareResponse with error instead of null. > NPE in GridNearOptimisticTxPrepareFuture.MiniFuture > --------------------------------------------------- > > Key: IGNITE-1307 > URL: https://issues.apache.org/jira/browse/IGNITE-1307 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: ignite-1.4 > Reporter: Ivan Veselovsky > Assignee: Semen Boikov > Fix For: ignite-1.4 > > > The following NPE can be observed when running test > org.apache.ignite.internal.processors.igfs.IgfsBackupFailoverSelfTest.testWriteFailoverAfterStopMultipleNodes > with default settings: > {code} > [13:22:11,162][INFO ][test-runner][root] >>> Stopping grid > [name=igfs.IgfsBackupFailoverSelfTest1, > id=69a8ac7e-b48e-470f-b94c-f123bdd2ada3] > [13:22:51] (err) Failed to notify listener: ArrayListener > [arrSize=2]java.lang.NullPointerException > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture$MiniFuture.onResult(GridNearOptimisticTxPrepareFuture.java:775) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture$3.apply(GridNearOptimisticTxPrepareFuture.java:559) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture$3.apply(GridNearOptimisticTxPrepareFuture.java:556) > at > org.apache.ignite.internal.util.future.GridFutureAdapter$ArrayListener.apply(GridFutureAdapter.java:419) > at > org.apache.ignite.internal.util.future.GridFutureAdapter$ArrayListener.apply(GridFutureAdapter.java:402) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:241) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:229) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:359) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:325) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onComplete(GridDhtTxPrepareFuture.java:718) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.complete(GridDhtTxPrepareFuture.java:732) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.rollbackAsync(GridDhtTxLocal.java:595) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finishDhtLocal(IgniteTxHandler.java:686) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:540) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:368) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:332) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:296) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.rollbackAsync(GridNearTxLocal.java:769) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter$69$1.applyx(GridCacheAdapter.java:4144) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter$69$1.applyx(GridCacheAdapter.java:4138) > at > org.apache.ignite.internal.util.lang.IgniteClosureX.apply(IgniteClosureX.java:37) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:53) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:27) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:241) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:229) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:359) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:325) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:313) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:56) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:27) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:241) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:229) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:359) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:325) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:313) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:56) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:27) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:241) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:229) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:359) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:325) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.onDone(GridNearTxFinishFuture.java:217) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.onComplete(GridNearTxFinishFuture.java:263) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.onError(GridNearTxFinishFuture.java:186) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$3.apply(GridNearTxLocal.java:731) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$3.apply(GridNearTxLocal.java:709) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:241) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:229) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:359) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:325) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.onDone(GridNearOptimisticTxPrepareFuture.java:195) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.onDone(GridNearOptimisticTxPrepareFuture.java:50) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:313) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager.cancelClientFutures(GridCacheMvccManager.java:315) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager.cancelClientFutures(GridCacheMvccManager.java:299) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.cancelUserOperations(GridCacheProcessor.java:3039) > at org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:1760) > at org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:1667) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2065) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2028) > at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:265) > at org.apache.ignite.Ignition.stop(Ignition.java:223) > at > org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:760) > at > org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:1018) > at > org.apache.ignite.internal.processors.igfs.IgfsBackupFailoverSelfTest.testWriteFailoverAfterStopMultipleNodes(IgfsBackupFailoverSelfTest.java:380) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at junit.framework.TestCase.runTest(TestCase.java:176) > at > org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1624) > at org.apache.ignite.testframework.junits.GridAbstractTest.access.. > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)