ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Courtney (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-11282) NullPointerException if transaction enabled and using byte[] for key/value
Date Sun, 10 Feb 2019 13:25:00 GMT
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: o.a.i.i.util.future.GridFutureChainListener@2ccd118djava.lang.AssertionError
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)

Mime
View raw message