Details
-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
9.4.4.Final
-
None
Description
Infinispan is used in embedded mode with MySQL 5.7.28 and JDBC Store
NPE occurs when we try to call Cache.isEmpty() while using MySQL 5.7.28 (server installed on Windows platform). The call goes to AbstractDelegatingCache and the NPE actually occurs in the JdbcStringBasedStore. The issue does not occur if the same server version is installed on Linux
The stack trace is as below.
java.lang.NullPointerException at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore$ResultSetEntryIterator.getNext(JdbcStringBasedStore.java:778) at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore$ResultSetEntryIterator.getNext(JdbcStringBasedStore.java:752) at org.infinispan.commons.util.AbstractIterator.hasNext(AbstractIterator.java:26) at io.reactivex.internal.operators.flowable.FlowableFromIterable$IteratorSubscription.slowPath(FlowableFromIterable.java:250) at io.reactivex.internal.operators.flowable.FlowableFromIterable$BaseRangeSubscription.request(FlowableFromIterable.java:125) at io.reactivex.internal.operators.flowable.FlowableUsing$UsingSubscriber.request(FlowableUsing.java:158) at io.reactivex.internal.operators.flowable.FlowableUsing$UsingSubscriber.request(FlowableUsing.java:158) at io.reactivex.internal.subscribers.BasicFuseableSubscriber.request(BasicFuseableSubscriber.java:153) at io.reactivex.internal.subscriptions.SubscriptionHelper.setOnce(SubscriptionHelper.java:257) at io.reactivex.internal.operators.flowable.BlockingFlowableIterable$BlockingFlowableIterator.onSubscribe(BlockingFlowableIterable.java:128) at io.reactivex.internal.subscribers.BasicFuseableSubscriber.onSubscribe(BasicFuseableSubscriber.java:67) at io.reactivex.internal.operators.flowable.FlowableUsing$UsingSubscriber.onSubscribe(FlowableUsing.java:99) at io.reactivex.internal.operators.flowable.FlowableUsing$UsingSubscriber.onSubscribe(FlowableUsing.java:99) at io.reactivex.internal.operators.flowable.FlowableFromIterable.subscribe(FlowableFromIterable.java:69) at io.reactivex.internal.operators.flowable.FlowableFromIterable.subscribeActual(FlowableFromIterable.java:47) at io.reactivex.Flowable.subscribe(Flowable.java:14409) at io.reactivex.Flowable.subscribe(Flowable.java:14356) at io.reactivex.internal.operators.flowable.FlowableUsing.subscribeActual(FlowableUsing.java:74) at io.reactivex.Flowable.subscribe(Flowable.java:14409) at io.reactivex.Flowable.subscribe(Flowable.java:14356) at io.reactivex.internal.operators.flowable.FlowableUsing.subscribeActual(FlowableUsing.java:74) at io.reactivex.Flowable.subscribe(Flowable.java:14409) at io.reactivex.internal.operators.flowable.FlowableMap.subscribeActual(FlowableMap.java:38) at io.reactivex.Flowable.subscribe(Flowable.java:14409) at io.reactivex.internal.operators.flowable.BlockingFlowableIterable.iterator(BlockingFlowableIterable.java:42) at org.infinispan.util.Closeables.iterator(Closeables.java:30) at org.infinispan.stream.impl.local.PersistenceEntryStreamSupplier.lambda$null$5(PersistenceEntryStreamSupplier.java:104) at org.infinispan.util.LazyConcatIterator.hasNext(LazyConcatIterator.java:43) at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811) at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:528) at org.infinispan.stream.impl.local.LocalCacheStream.anyMatch(LocalCacheStream.java:294) at org.infinispan.cache.impl.CacheImpl.isEmpty(CacheImpl.java:500) at org.infinispan.cache.impl.DecoratedCache.isEmpty(DecoratedCache.java:523) at org.infinispan.cache.impl.AbstractDelegatingCache.isEmpty(AbstractDelegatingCache.java:378)
JDK version - 11.0.4
MySQL Connector - mysql-connector-java-5.1.48.jar
MySQL Server - 5.7.28 on Windows platform