Courtney created IGNITE-11282:
--------------------------------- Summary: NullPointerException if transaction enabled and using byte[] for key/value Key: IGNITE-11282 URL: https://issues.apache.org/jira/browse/IGNITE-11282 Project: Ignite Issue Type: Bug Components: cache Affects Versions: 2.7 Reporter: Courtney Attachments: Screen Shot 2019-02-10 at 15.02.19.png I have debugged this and found the problem is because of hashCode comparison failure. You can see in the screenshot below. {code:java} txMap == null ? null : txMap.get(key) {code} this will fail to get the entry but they the key is in fact in the map, it's the only entry and if a proper array comparison is done e.g. using `Arrays.equals` as shown in the eval window then the key would match. !Screen Shot 2019-02-10 at 15.02.19.png! If running without `-ea` then the exception is {code:java} java.util.concurrent.CompletionException: java.lang.NullPointerException at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331) at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346) at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:632) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) at io.hypi.arc.ignite.ArcIgniteUtils.lambda$asFuture$f0cf812f$1(ArcIgniteUtils.java:21) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:215) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:464) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:81) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:464) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:300) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:464) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:81) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.processors.cache.GridCacheFutureAdapter.onDone(GridCacheFutureAdapter.java:55) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onDone(GridPartitionedSingleGetFuture.java:774) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setResult(GridPartitionedSingleGetFuture.java:699) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setResult(GridPartitionedSingleGetFuture.java:657) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.access$000(GridPartitionedSingleGetFuture.java:69) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture$1.apply(GridPartitionedSingleGetFuture.java:267) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture$1.apply(GridPartitionedSingleGetFuture.java:262) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture.onDone(GridDhtGetSingleFuture.java:189) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture.onDone(GridDhtGetSingleFuture.java:53) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture.onResult(GridDhtGetSingleFuture.java:444) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture.access$1100(GridDhtGetSingleFuture.java:53) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture$3.apply(GridDhtGetSingleFuture.java:429) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture$3.apply(GridDhtGetSingleFuture.java:425) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3$1.applyx(GridEmbeddedFuture.java:166) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:326) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:319) at org.apache.ignite.internal.util.future.GridFinishedFuture.listen(GridFinishedFuture.java:126) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3.applyx(GridEmbeddedFuture.java:163) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:294) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.processors.closure.GridClosureProcessor$2.body(GridClosureProcessor.java:967) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.lang.NullPointerException: null at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4604) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4563) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:3334) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.access$3500(GridNearTxLocal.java:134) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3078) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3073) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) ... 51 common frames omitted {code} with -ea it is {code:java} [14:55:18] (err) Failed to notify listener: [hidden email] at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4581) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4563) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:3334) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.access$3500(GridNearTxLocal.java:134) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3078) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3073) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridFutureAdapter.java:355) at org.apache.ignite.internal.util.future.GridFutureAdapter$ChainFuture.<init>(GridFutureAdapter.java:574) at org.apache.ignite.internal.util.future.GridFutureAdapter.chain(GridFutureAdapter.java:360) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.loadMissing(GridNearTxLocal.java:3073) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.checkMissed(GridNearTxLocal.java:4552) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.getAllAsync(GridNearTxLocal.java:2472) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$6.op(GridDhtColocatedCache.java:317) at org.apache.ignite.internal.processors.cache.GridCacheAdapter$AsyncOp.op(GridCacheAdapter.java:5296) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.asyncOp(GridCacheAdapter.java:4450) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.getAllAsync(GridDhtColocatedCache.java:313) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.getAllAsync(GridCacheAdapter.java:1597) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.getAllAsync(IgniteCacheProxyImpl.java:979) at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.getAllAsync(GatewayProtectedCacheProxy.java:700) at io.hypi.arc.ignite.IgniteRepo.query(IgniteRepo.java:172) at io.hypi.arc.ignite.IgniteRepo.getAndMap(IgniteRepo.java:186) at io.hypi.arc.ignite.IgniteRepo.getAndMap(IgniteRepo.java:182) at io.hypi.arc.ignite.EntityGraph.findMatching(EntityGraph.java:148) at io.hypi.arc.ignite.EntityGraph.search(EntityGraph.java:124) at io.hypi.arc.gql.data.IgniteQueryExecutionEnvironment.lambda$eval$2(IgniteQueryExecutionEnvironment.java:73) at io.hypi.arc.metrics.HypiTracer.traceFn(HypiTracer.java:85) at io.hypi.arc.metrics.HypiTracer.trace(HypiTracer.java:75) at io.hypi.arc.gql.data.IgniteQueryExecutionEnvironment.eval(IgniteQueryExecutionEnvironment.java:73) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:261) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:202) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:70) at graphql.execution.Execution.executeOperation(Execution.java:159) at graphql.execution.Execution.execute(Execution.java:101) at graphql.GraphQL.execute(GraphQL.java:573) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:515) at graphql.GraphQL.executeAsync(GraphQL.java:489) at io.hypi.arc.gql.GQLEngine.exec(GQLEngine.java:86) at io.hypi.arc.handlers.GQLHandler.lambda$processRequest$9(GQLHandler.java:245) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235) at io.hypi.arc.handlers.GQLHandler.lambda$processRequest$10(GQLHandler.java:237) at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) at io.hypi.arc.ignite.ArcIgniteUtils.lambda$asFuture$f0cf812f$1(ArcIgniteUtils.java:19) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:215) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.processors.cache.GridCacheCompoundIdentityFuture.onDone(GridCacheCompoundIdentityFuture.java:56) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedGetFuture.onDone(GridPartitionedGetFuture.java:262) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedGetFuture.onDone(GridPartitionedGetFuture.java:72) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetFuture.onDone(GridDhtGetFuture.java:240) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetFuture.onDone(GridDhtGetFuture.java:61) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$1.applyx(GridEmbeddedFuture.java:56) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:294) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3$1.applyx(GridEmbeddedFuture.java:166) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:326) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:319) at org.apache.ignite.internal.util.future.GridFinishedFuture.listen(GridFinishedFuture.java:126) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3.applyx(GridEmbeddedFuture.java:163) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:294) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.processors.closure.GridClosureProcessor$2.body(GridClosureProcessor.java:967) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) 2019-02-10 14:55:18.967 ERROR [hypi,,,] 39175 --- [io-65002-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exception java.lang.AssertionError: null at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4581) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4563) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:3334) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.access$3500(GridNearTxLocal.java:134) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3078) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3073) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridFutureAdapter.java:355) at org.apache.ignite.internal.util.future.GridFutureAdapter$ChainFuture.<init>(GridFutureAdapter.java:574) at org.apache.ignite.internal.util.future.GridFutureAdapter.chain(GridFutureAdapter.java:360) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.loadMissing(GridNearTxLocal.java:3073) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.checkMissed(GridNearTxLocal.java:4552) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.getAllAsync(GridNearTxLocal.java:2472) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$6.op(GridDhtColocatedCache.java:317) at org.apache.ignite.internal.processors.cache.GridCacheAdapter$AsyncOp.op(GridCacheAdapter.java:5296) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.asyncOp(GridCacheAdapter.java:4450) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.getAllAsync(GridDhtColocatedCache.java:313) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.getAllAsync(GridCacheAdapter.java:1597) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.getAllAsync(IgniteCacheProxyImpl.java:979) at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.getAllAsync(GatewayProtectedCacheProxy.java:700) at io.hypi.arc.ignite.IgniteRepo.query(IgniteRepo.java:172) at io.hypi.arc.ignite.IgniteRepo.getAndMap(IgniteRepo.java:186) at io.hypi.arc.ignite.IgniteRepo.getAndMap(IgniteRepo.java:182) at io.hypi.arc.ignite.EntityGraph.findMatching(EntityGraph.java:148) at io.hypi.arc.ignite.EntityGraph.search(EntityGraph.java:124) at io.hypi.arc.gql.data.IgniteQueryExecutionEnvironment.lambda$eval$2(IgniteQueryExecutionEnvironment.java:73) at io.hypi.arc.metrics.HypiTracer.traceFn(HypiTracer.java:85) at io.hypi.arc.metrics.HypiTracer.trace(HypiTracer.java:75) at io.hypi.arc.gql.data.IgniteQueryExecutionEnvironment.eval(IgniteQueryExecutionEnvironment.java:73) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:261) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:202) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:70) at graphql.execution.Execution.executeOperation(Execution.java:159) at graphql.execution.Execution.execute(Execution.java:101) at graphql.GraphQL.execute(GraphQL.java:573) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:515) at graphql.GraphQL.executeAsync(GraphQL.java:489) at io.hypi.arc.gql.GQLEngine.exec(GQLEngine.java:86) at io.hypi.arc.handlers.GQLHandler.lambda$processRequest$9(GQLHandler.java:245) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235) at io.hypi.arc.handlers.GQLHandler.lambda$processRequest$10(GQLHandler.java:237) at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) at io.hypi.arc.ignite.ArcIgniteUtils.lambda$asFuture$f0cf812f$1(ArcIgniteUtils.java:19) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:215) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.processors.cache.GridCacheCompoundIdentityFuture.onDone(GridCacheCompoundIdentityFuture.java:56) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedGetFuture.onDone(GridPartitionedGetFuture.java:262) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedGetFuture.onDone(GridPartitionedGetFuture.java:72) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetFuture.onDone(GridDhtGetFuture.java:240) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetFuture.onDone(GridDhtGetFuture.java:61) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$1.applyx(GridEmbeddedFuture.java:56) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:294) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3$1.applyx(GridEmbeddedFuture.java:166) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:326) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:319) at org.apache.ignite.internal.util.future.GridFinishedFuture.listen(GridFinishedFuture.java:126) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3.applyx(GridEmbeddedFuture.java:163) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:294) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.processors.closure.GridClosureProcessor$2.body(GridClosureProcessor.java:967) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) 2019-02-10 14:55:18.968 ERROR [hypi,,,] 39175 --- [io-65002-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.util.concurrent.CompletionException: java.lang.AssertionError] with root cause java.lang.AssertionError: null at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4581) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$34.apply(GridNearTxLocal.java:4563) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:3334) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.access$3500(GridNearTxLocal.java:134) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3078) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3073) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridFutureAdapter.java:355) at org.apache.ignite.internal.util.future.GridFutureAdapter$ChainFuture.<init>(GridFutureAdapter.java:574) at org.apache.ignite.internal.util.future.GridFutureAdapter.chain(GridFutureAdapter.java:360) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.loadMissing(GridNearTxLocal.java:3073) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.checkMissed(GridNearTxLocal.java:4552) at org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.getAllAsync(GridNearTxLocal.java:2472) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$6.op(GridDhtColocatedCache.java:317) at org.apache.ignite.internal.processors.cache.GridCacheAdapter$AsyncOp.op(GridCacheAdapter.java:5296) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.asyncOp(GridCacheAdapter.java:4450) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.getAllAsync(GridDhtColocatedCache.java:313) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.getAllAsync(GridCacheAdapter.java:1597) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.getAllAsync(IgniteCacheProxyImpl.java:979) at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.getAllAsync(GatewayProtectedCacheProxy.java:700) at io.hypi.arc.ignite.IgniteRepo.query(IgniteRepo.java:172) at io.hypi.arc.ignite.IgniteRepo.getAndMap(IgniteRepo.java:186) at io.hypi.arc.ignite.IgniteRepo.getAndMap(IgniteRepo.java:182) at io.hypi.arc.ignite.EntityGraph.findMatching(EntityGraph.java:148) at io.hypi.arc.ignite.EntityGraph.search(EntityGraph.java:124) at io.hypi.arc.gql.data.IgniteQueryExecutionEnvironment.lambda$eval$2(IgniteQueryExecutionEnvironment.java:73) at io.hypi.arc.metrics.HypiTracer.traceFn(HypiTracer.java:85) at io.hypi.arc.metrics.HypiTracer.trace(HypiTracer.java:75) at io.hypi.arc.gql.data.IgniteQueryExecutionEnvironment.eval(IgniteQueryExecutionEnvironment.java:73) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:261) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:202) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:70) at graphql.execution.Execution.executeOperation(Execution.java:159) at graphql.execution.Execution.execute(Execution.java:101) at graphql.GraphQL.execute(GraphQL.java:573) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:515) at graphql.GraphQL.executeAsync(GraphQL.java:489) at io.hypi.arc.gql.GQLEngine.exec(GQLEngine.java:86) at io.hypi.arc.handlers.GQLHandler.lambda$processRequest$9(GQLHandler.java:245) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235) at io.hypi.arc.handlers.GQLHandler.lambda$processRequest$10(GQLHandler.java:237) at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) at io.hypi.arc.ignite.ArcIgniteUtils.lambda$asFuture$f0cf812f$1(ArcIgniteUtils.java:19) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:215) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.processors.cache.GridCacheCompoundIdentityFuture.onDone(GridCacheCompoundIdentityFuture.java:56) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedGetFuture.onDone(GridPartitionedGetFuture.java:262) at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedGetFuture.onDone(GridPartitionedGetFuture.java:72) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetFuture.onDone(GridDhtGetFuture.java:240) at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetFuture.onDone(GridDhtGetFuture.java:61) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) at org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$1.applyx(GridEmbeddedFuture.java:56) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:294) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3$1.applyx(GridEmbeddedFuture.java:166) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:326) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2.apply(GridEmbeddedFuture.java:319) at org.apache.ignite.internal.util.future.GridFinishedFuture.listen(GridFinishedFuture.java:126) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$3.applyx(GridEmbeddedFuture.java:163) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:294) at org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:287) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:349) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:337) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:497) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:476) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:453) at org.apache.ignite.internal.processors.closure.GridClosureProcessor$2.body(GridClosureProcessor.java:967) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) {code} Below is a test case that demonstrates the issue, it occurs only with transactions enabled. This is a copy and paste of an existing test, modified to demonstrate the behaviour. {code:java} package org.apache.ignite.internal.processors.cache.distributed; import org.apache.ignite.IgniteCache; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest; import org.apache.ignite.internal.processors.cache.GridCacheAdapter; import org.apache.ignite.internal.processors.cache.GridCacheEntryEx; import org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.CU; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.transactions.Transaction; import java.util.Map; import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC; import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ; /** * Tests that byte arrays can be used as keys in transactions. */ public class IgniteByteKeyTransactionsTest extends GridCacheAbstractSelfTest { /** * {@inheritDoc} */ @Override protected int gridCount() { return 1; } /** * {@inheritDoc} */ @Override protected CacheConfiguration cacheConfiguration(String igniteInstanceName) throws Exception { CacheConfiguration ccfg = super.cacheConfiguration(igniteInstanceName); ccfg.setAtomicityMode(TRANSACTIONAL); return ccfg; } /** * {@inheritDoc} */ @Override protected void afterTest() throws Exception { for (String cacheName : new String[]{DEFAULT_CACHE_NAME, CU.UTILITY_CACHE_NAME}) { IgniteKernal kernal = (IgniteKernal) ignite(0); GridCacheAdapter<Object, Object> cache = kernal.context().cache().internalCache(cacheName); cache.removeAll(F.asList("1", "2", "3")); } } /** * @throws Exception If failed. */ public void testUsingByteArrayInTx() throws Exception { byte[] key = "this is a simple byte array test".getBytes(); IgniteKernal ignite = (IgniteKernal) grid(0); IgniteCache<byte[], Object> jcache = ignite.cache(DEFAULT_CACHE_NAME); try (Transaction tx = ignite.transactions().txStart(OPTIMISTIC, REPEATABLE_READ)) { Object obj = jcache.get(key); tx.commit(); } checkTransactionsCommitted(); checkEntries(DEFAULT_CACHE_NAME, key, null); } /** * @throws Exception If failed. */ public void testByteArrayNoTx() throws Exception { byte[] key = "this is a simple byte array test".getBytes(); IgniteKernal ignite = (IgniteKernal) grid(0); IgniteCache<byte[], Object> jcache = ignite.cache(DEFAULT_CACHE_NAME); Object obj = jcache.get(key); checkTransactionsCommitted(); checkEntries(DEFAULT_CACHE_NAME, key, null); } /** * @throws Exception If failed. */ private void checkTransactionsCommitted() throws Exception { for (int i = 0; i < gridCount(); i++) { IgniteKernal kernal = (IgniteKernal) grid(i); IgniteTxManager tm = kernal.context().cache().context().tm(); Map map = U.field(tm, "threadMap"); assertEquals(0, map.size()); map = U.field(tm, "sysThreadMap"); assertEquals(0, map.size()); map = U.field(tm, "idMap"); assertEquals(0, map.size()); } } /** * @param cacheName Cache to check. * @param vals Key-value pairs. * @throws Exception If failed. */ private void checkEntries(String cacheName, Object... vals) throws Exception { for (int g = 0; g < gridCount(); g++) { IgniteKernal kernal = (IgniteKernal) grid(g); GridCacheAdapter<Object, Object> cache = kernal.context().cache().internalCache(cacheName); for (int i = 0; i < vals.length; i += 2) { Object key = vals[i]; Object val = vals[i + 1]; GridCacheEntryEx entry = cache.peekEx(key); if (entry != null) { assertFalse("Entry is locked [g=" + g + ", cacheName=" + cacheName + ", entry=" + entry + ']', entry.lockedByAny()); assertEquals("Invalid entry value [g=" + g + ", cacheName=" + cacheName + ", entry=" + entry + ']', val, entry.rawGet().value(cache.context().cacheObjectContext(), false)); } } } } } {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) |
Free forum by Nabble | Edit this page |