]
William Burns resolved ISPN-8719.
---------------------------------
Resolution: Done
Nevermind I was incorrect, it is working properly for 9.1.x and up.
KeySet.(iterator|spliterator|stream) not compatible with versions
before 9.1
----------------------------------------------------------------------------
Key: ISPN-8719
URL:
https://issues.jboss.org/browse/ISPN-8719
Project: Infinispan
Issue Type: Bug
Affects Versions: 9.1.0.Final, 9.2.0.Final
Reporter: Marek Posolda
Assignee: William Burns
Priority: Critical
Fix For: 9.1.8.Final, 9.2.2.Final, 9.3.0.Alpha1
Attachments: InfinispanRemote.java
Steps to reproduce:
1) Use infinispan server version 8.2.6 (or JDG server 7.1.0) and start it.
{code}
cd JDG_HOME/bin
./standalone.sh
{code}
2) Create sample java project having dependency on latest dependency 9.2.0.CR1 in
pom.xml:
{code}
<dependencies>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
<version>9.2.0.CR1</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-cachestore-remote</artifactId>
<version>9.2.0.CR1</version>
</dependency>
</dependencies>
{code}
3) Add one simple java class based on the tutorial:
http://infinispan.org/tutorials/simple/remote/ . The only difference is that I use hotRod
protocolVersion 2.5 and calling:
{code}
remoteCache.keySet().iterator().hasNext()
{code}. I am attaching the class in attachement.
4) Run the class. Seeing exception in both server log and on client-side.
Server exception
{code}
10:44:20,365 ERROR [org.infinispan.server.hotrod.CacheDecodeContext]
(HotRodServerWorker-6-1) ISPN005003: Exception reported: java.lang.IllegalStateException:
ISPN006016: Factory
'org.infinispan.server.hotrod.HotRodServer$ToEmptyBytesKeyValueFilterConverter'
not found in server
at
org.infinispan.server.hotrod.iteration.DefaultIterationManager.getFactory(DefaultIterationManager.java:148)
at
org.infinispan.server.hotrod.iteration.DefaultIterationManager.start(DefaultIterationManager.java:131)
at org.infinispan.server.hotrod.ContextHandler.realRead(ContextHandler.java:175)
at
org.infinispan.server.hotrod.ContextHandler.lambda$channelRead0$1(ContextHandler.java:57)
at org.infinispan.server.hotrod.ContextHandler$$Lambda$86/1492247987.run(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:745)
{code}
Client exception:
{code}
Jan 24, 2018 10:44:20 AM org.infinispan.client.hotrod.impl.protocol.Codec20
checkForErrorsInResponseStatus
WARN: ISPN004005: Error received from the server: java.lang.IllegalStateException:
ISPN006016: Factory
'org.infinispan.server.hotrod.HotRodServer$ToEmptyBytesKeyValueFilterConverter'
not found in server
Exception in thread "main"
org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=5
returned server error (status=0x85): java.lang.IllegalStateException: ISPN006016: Factory
'org.infinispan.server.hotrod.HotRodServer$ToEmptyBytesKeyValueFilterConverter'
not found in server
at
org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:408)
at
org.infinispan.client.hotrod.impl.protocol.Codec20.readPartialHeader(Codec20.java:162)
at org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:148)
at
org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:60)
at
org.infinispan.client.hotrod.impl.operations.IterationStartOperation.executeOperation(IterationStartOperation.java:72)
at
org.infinispan.client.hotrod.impl.operations.IterationStartOperation.executeOperation(IterationStartOperation.java:21)
at
org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:56)
at
org.infinispan.client.hotrod.impl.iteration.RemoteCloseableIterator.startInternal(RemoteCloseableIterator.java:127)
at
org.infinispan.client.hotrod.impl.iteration.RemoteCloseableIterator.start(RemoteCloseableIterator.java:140)
at
org.infinispan.client.hotrod.impl.RemoteCacheImpl.retrieveEntries(RemoteCacheImpl.java:162)
at
org.infinispan.client.hotrod.impl.RemoteCacheImpl.retrieveEntries(RemoteCacheImpl.java:168)
at
org.infinispan.client.hotrod.impl.RemoteCacheImpl.retrieveEntries(RemoteCacheImpl.java:173)
at
org.infinispan.client.hotrod.impl.RemoteCacheImpl$KeySet.iterator(RemoteCacheImpl.java:553)
at org.mposolda.ispn.InfinispanRemote.main(InfinispanRemote.java:34)
{code}
Indeed, When looking at this line of class RemoteCacheImpl, I see that it references the
class, which seem that it was added in HotRodServer version 9. This looks like the cause
of the error:
https://github.com/infinispan/infinispan/blob/master/client/hotrod-client...