You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maxim Muzafarov (Jira)" <ji...@apache.org> on 2020/11/16 15:32:00 UTC

[jira] [Updated] (IGNITE-11282) NullPointerException if transaction enabled and using byte[] for key/value

     [ https://issues.apache.org/jira/browse/IGNITE-11282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maxim Muzafarov updated IGNITE-11282:
-------------------------------------
    Fix Version/s: 2.8

> 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
>            Assignee: Igor Akkuratov
>            Priority: Blocker
>             Fix For: 2.8
>
>         Attachments: Screen Shot 2019-02-10 at 15.02.19.png
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> 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
(v8.3.4#803005)