]
Sebastian Łaskawiec commented on ISPN-7672:
-------------------------------------------
[~pruivo] Just thinking... maybe we should have two metada fields? One for internal use
(skew checks, vector clocks or whatever we want in the future) and for that can be added
by clients in general? Of course the internal one should be accessible only by the Core.
NonTotalOrderTxPerCacheInboundInvocationHandler throws warning when
adding cache entry using Spring Session
-----------------------------------------------------------------------------------------------------------
Key: ISPN-7672
URL:
https://issues.jboss.org/browse/ISPN-7672
Project: Infinispan
Issue Type: Bug
Components: Cloud Integrations, Spring Integration
Affects Versions: 9.0.0.CR4
Reporter: Sebastian Łaskawiec
Assignee: Galder Zamarreño
Priority: Blocker
Fix For: 9.0.0.Final
When I'm trying to add an entry using Spring Session integration with a
[transactional
cache|https://github.com/slaskawi/presentations/blob/master/2017_spring_s...],
the server throws a warning:
{code}
[transactions-repository-1-2cbrv] 06:53:40,773 WARN
[org.infinispan.remoting.inboundhandler.NonTotalOrderTxPerCacheInboundInvocationHandler]
(remote-thread--p2-t18) ISPN000071: Caught exception when handling command
DistributedExecuteCommand [cache=Cache 'sessions'@transactions-repository-1-2cbrv,
keys=[], callable=ClusterEventCallable{identifier=b345211e-fbd7-4305-b3a6-6979301e0360,
events=[ClusterEvent {type=CACHE_ENTRY_CREATED, cache=Cache
'sessions'@transactions-repository-1-2cbrv, key=[B@8c75820, value=[B@76856353,
oldValue=null, transaction=RecoveryAwareGlobalTransaction{xid=< 131077, 29, 36,
0000000000-1-1-84170374-96-629488-44-62370001349,
0000000000-1-1-84170374-96-629488-44-62370001400000000 >, internalId=562954248388609}
GlobalTx:transactions-repository-1-cwk6f:1, retryCommand=false,
origin=transactions-repository-1-cwk6f}]}]: org.infinispan.commons.CacheListenerException:
ISPN000280: Caught exception [java.lang.ClassCastException] while invoking method [public
void
org.infinispan.server.hotrod.ClientListenerRegistry$BaseClientEventSender.onCacheEvent(org.infinispan.notifications.cachelistener.event.CacheEntryEvent)]
on listener instance:
org.infinispan.server.hotrod.ClientListenerRegistry$StatelessClientEventSender@7b97a57
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:401)
[transactions-repository-1-2cbrv] at
org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:20)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.invoke(AbstractListenerImpl.java:419)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1512)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1508)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invokeNoChecks(CacheNotifierImpl.java:1503)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyClusterListeners(CacheNotifierImpl.java:711)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.cachelistener.cluster.ClusterEventCallable.call(ClusterEventCallable.java:49)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.cachelistener.cluster.ClusterEventCallable.call(ClusterEventCallable.java:25)
[transactions-repository-1-2cbrv] at
org.infinispan.commands.read.DistributedExecuteCommand.invokeAsync(DistributedExecuteCommand.java:99)
[transactions-repository-1-2cbrv] at
org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokeCommand(BasePerCacheInboundInvocationHandler.java:90)
[transactions-repository-1-2cbrv] at
org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.invoke(BaseBlockingRunnable.java:90)
[transactions-repository-1-2cbrv] at
org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.runAsync(BaseBlockingRunnable.java:68)
[transactions-repository-1-2cbrv] at
org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:40)
[transactions-repository-1-2cbrv] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[transactions-repository-1-2cbrv] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[transactions-repository-1-2cbrv] at java.lang.Thread.run(Thread.java:745)
[transactions-repository-1-2cbrv] Caused by: java.lang.ClassCastException:
org.infinispan.container.versioning.SimpleClusteredVersion cannot be cast to
org.infinispan.container.versioning.NumericVersion
[transactions-repository-1-2cbrv] at
org.infinispan.server.hotrod.ClientListenerRegistry$BaseClientEventSender.onCacheEvent(ClientListenerRegistry.java:363)
[transactions-repository-1-2cbrv] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
[transactions-repository-1-2cbrv] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[transactions-repository-1-2cbrv] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[transactions-repository-1-2cbrv] at java.lang.reflect.Method.invoke(Method.java:498)
[transactions-repository-1-2cbrv] at
org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:396)
[transactions-repository-1-2cbrv] ... 16 more
[transactions-repository-1-2cbrv]
{code}
This didn't happen in {{CR2}} release, so there must be something that changed since
then. I also noticed that this sometimes leads to exceptions in the Hot Rod client.