-
Bug
-
Resolution: Done
-
Major
-
12.0.0.Final
-
None
jackson-core is an optional dependency in protostream, but it is required for transcoding application/x-protostream to JSON. Because the dependency is missing, the tests fail with OBJECT storage:
org.infinispan.util.concurrent.TimeoutException at org.infinispan.cloudevents.MockKafkaEventSender.completeSend(MockKafkaEventSender.java:44) at org.infinispan.cloudevents.MockKafkaEventSender.completeSend(MockKafkaEventSender.java:53) at org.infinispan.cloudevents.CacheEntryCloudEventsTest.testMultiKeyOperations(CacheEntryCloudEventsTest.java:188)
The actual reason is hidden because the test only waits for the events to be sent and times out without checking the operation result:
org.infinispan.commons.CacheListenerException: ISPN000280: Caught exception [java.lang.NoClassDefFoundError] while invoking method [public java.util.concurrent.CompletionStage org.infinispan.cloudevents.impl.EntryEventListener.handleCacheEntryEvent(org.infinispan.notifications.cachelistener.event.CacheEntryEvent)] on listener instance: org.infinispan.cloudevents.impl.EntryEventListener@7a524380 at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.lambda$invoke$1(AbstractListenerImpl.java:430) at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.invoke(AbstractListenerImpl.java:450) at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1817) at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1813) at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invokeNoChecks(CacheNotifierImpl.java:1808) at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invoke(CacheNotifierImpl.java:1781) at org.infinispan.notifications.cachelistener.CacheNotifierImpl.doNotifyCreated(CacheNotifierImpl.java:428) at org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyCacheEntryCreated(CacheNotifierImpl.java:410) at org.infinispan.notifications.cachelistener.NotifyHelper.entryCommitted(NotifyHelper.java:59) at org.infinispan.interceptors.locking.ClusteringDependentLogic$DistributionLogic.commitSingleEntry(ClusteringDependentLogic.java:539) at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:198) at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:651) at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:904) at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:631) at org.infinispan.interceptors.impl.EntryWrappingInterceptor.applyChanges(EntryWrappingInterceptor.java:687) at org.infinispan.interceptors.impl.EntryWrappingInterceptor.applyAndFixVersion(EntryWrappingInterceptor.java:758) at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25) at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:124) at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:87) at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:33) at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2137) at org.infinispan.util.concurrent.CommandAckCollector$SingleKeyCollector.markReady(CommandAckCollector.java:364) at org.infinispan.util.concurrent.CommandAckCollector$SingleKeyCollector.backupAck(CommandAckCollector.java:356) at org.infinispan.util.concurrent.CommandAckCollector.backupAck(CommandAckCollector.java:167) at org.infinispan.commands.write.BackupAckCommand.ack(BackupAckCommand.java:40) at org.infinispan.remoting.inboundhandler.TrianglePerCacheInboundInvocationHandler.handleBackupAckCommand(TrianglePerCacheInboundInvocationHandler.java:181) at org.infinispan.remoting.inboundhandler.TrianglePerCacheInboundInvocationHandler.handle(TrianglePerCacheInboundInvocationHandler.java:96) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleCacheRpcCommand(GlobalInboundInvocationHandler.java:164) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleFromCluster(GlobalInboundInvocationHandler.java:111) at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processRequest(JGroupsTransport.java:1383) at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1307) at org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:131) at org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1450) at org.jgroups.JChannel.up(JChannel.java:784) at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:913) at org.jgroups.protocols.FRAG3.up(FRAG3.java:165) at org.jgroups.protocols.FlowControl.up(FlowControl.java:351) at org.jgroups.protocols.FlowControl.up(FlowControl.java:359) at org.jgroups.protocols.tom.TOA.up(TOA.java:119) at org.jgroups.protocols.pbcast.GMS.up(GMS.java:876) at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:243) at org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1049) at org.jgroups.protocols.UNICAST3.addMessage(UNICAST3.java:772) at org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:753) at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:405) at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:592) at org.jgroups.protocols.Discovery.up(Discovery.java:300) at org.jgroups.protocols.TP.passMessageUp(TP.java:1396) at org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:87) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832) Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException at org.infinispan.protostream.ProtobufUtil.toCanonicalJSON(ProtobufUtil.java:174) at org.infinispan.protostream.ProtobufUtil.toCanonicalJSON(ProtobufUtil.java:160) at org.infinispan.encoding.ProtostreamTranscoder.toJsonCascading(ProtostreamTranscoder.java:183) at org.infinispan.encoding.ProtostreamTranscoder.transcode(ProtostreamTranscoder.java:102) at org.infinispan.cloudevents.impl.EntryEventListener.writeKey(EntryEventListener.java:165) at org.infinispan.cloudevents.impl.EntryEventListener.entryEventToKafkaMessage(EntryEventListener.java:133) at org.infinispan.cloudevents.impl.EntryEventListener.handleCacheEntryEvent(EntryEventListener.java:101) at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.lambda$invoke$1(AbstractListenerImpl.java:424) ... 54 more Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonProcessingException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 65 more