Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-7993

Functional commands don't support Data convertions

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 9.2.0.Final
    • None
    • Core
    • None

      Functional commands don't support encoding

      For example, in this test

      public class ClusteredCacheTest extends MultipleCacheManagersTest {
      
      public void testFunctionalMap() throws Exception {
            prepareTestData();
      
            FunctionalMapImpl functionalMap = FunctionalMapImpl.create(this.cache2.getAdvancedCache());
            FunctionalMap.ReadWriteMap<String, String> readWriteMap = ReadWriteMapImpl.create(functionalMap);
      
            readWriteMap.eval("k", view -> {
               view.set("v");
               return null;
            }).join();
      
            assertEquals("v", cache2.get("k"));
         }
      }
      

      Returns this exception when the StorageType is OFF_HEAP

      17:27:22,296 ERROR (remote-thread-ClusteredCacheTest-NodeA-p2-t6) [InvocationContextInterceptor] ISPN000136: Error executing command ReadWriteKeyCommand, writing keys [k]
      java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
      	at org.infinispan.container.offheap.OffHeapDataContainer.put(OffHeapDataContainer.java:38)
      	at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:134)
      	at org.infinispan.statetransfer.CommitManager.commitEntry(CommitManager.java:141)
      	at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:101)
      	at org.infinispan.interceptors.locking.ClusteringDependentLogic$ReplicationLogic.commitSingleEntry(ClusteringDependentLogic.java:435)
      	at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:183)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:604)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:825)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:581)17:27:22,310 ERROR (jgroups-4,ClusteredCacheTest-NodeB-5393) [InvocationContextInterceptor] ISPN000136: Error executing command ReadWriteKeyCommand, writing keys [k]
      org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ClusteredCacheTest-NodeA-49952, see cause for remote stack trace
      	at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:44)
      	at org.infinispan.remoting.transport.jgroups.JGroupsTransport.checkRsp(JGroupsTransport.java:920)
      	at org.infinispan.remoting.transport.jgroups.JGroupsTransport.lambda$invokeRemotelyAsync$4(JGroupsTransport.java:689)
      	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
      	at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
      	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
      	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
      	at org.infinispan.remoting.transport.jgroups.RspListFuture.requestDone(RspListFuture.java:53)
      	at org.infinispan.remoting.transport.jgroups.RspListFuture.accept(RspListFuture.java:48)
      java.util.concurrent.CompletionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ClusteredCacheTest-NodeA-49952, see cause for remote stack trace
      
      	at java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375)
      	at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
      	at org.infinispan.query.blackbox.ClusteredCacheTest.testFunctionalMap(ClusteredCacheTest.java:886)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
      	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
      	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
      	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
      	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
      	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
      	at org.testng.TestRunner.privateRun(TestRunner.java:767)
      	at org.testng.TestRunner.run(TestRunner.java:617)
      	at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
      	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
      	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
      	at org.testng.SuiteRunner.run(SuiteRunner.java:254)
      	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
      	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
      	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
      	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
      	at org.testng.TestNG.run(TestNG.java:1057)
      	at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
      	at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:127)
      Caused by: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ClusteredCacheTest-NodeA-49952, see cause for remote stack trace
      	at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:44)
      	at org.infinispan.remoting.transport.jgroups.JGroupsTransport.checkRsp(JGroupsTransport.java:920)
      	at org.infinispan.remoting.transport.jgroups.JGroupsTransport.lambda$invokeRemotelyAsync$4(JGroupsTransport.java:689)
      	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
      	at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
      	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
      	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
      	at org.infinispan.remoting.transport.jgroups.RspListFuture.requestDone(RspListFuture.java:53)
      	at org.infinispan.remoting.transport.jgroups.RspListFuture.accept(RspListFuture.java:48)
      	at org.infinispan.remoting.transport.jgroups.RspListFuture.accept(RspListFuture.java:19)
      	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
      	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
      	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
      	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
      	at org.jgroups.blocks.GroupRequest.receiveResponse(GroupRequest.java:106)
      	at org.infinispan.remoting.transport.jgroups.CustomRequestCorrelator.handleResponse(CustomRequestCorrelator.java:50)
      	at org.jgroups.blocks.RequestCorrelator.dispatch(RequestCorrelator.java:363)
      	at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:307)
      	at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:579)
      	at org.jgroups.JChannel.up(JChannel.java:816)
      	at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:893)
      	at org.jgroups.protocols.RSVP.up(RSVP.java:163)
      	at org.jgroups.protocols.FlowControl.up(FlowControl.java:345)
      	at org.jgroups.protocols.tom.TOA.up(TOA.java:112)
      	at org.jgroups.protocols.pbcast.GMS.up(GMS.java:867)
      	at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:240)
      	at org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1059)
      	at org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:785)
      	at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:438)
      	at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:598)
      	at org.jgroups.protocols.Discovery.up(Discovery.java:262)
      	at org.jgroups.protocols.TP.passMessageUp(TP.java:1204)
      	at org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:87)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
      	at org.infinispan.container.offheap.OffHeapDataContainer.put(OffHeapDataContainer.java:38)
      	at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:134)
      	at org.infinispan.statetransfer.CommitManager.commitEntry(CommitManager.java:141)
      	at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:101)
      	at org.infinispan.interceptors.locking.ClusteringDependentLogic$ReplicationLogic.commitSingleEntry(ClusteringDependentLogic.java:435)
      	at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:183)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:604)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:825)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:581)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.applyChanges(EntryWrappingInterceptor.java:637)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.lambda$setSkipRemoteGetsAndInvokeNextForDataCommand$8(EntryWrappingInterceptor.java:693)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:109)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:690)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitReadWriteKeyCommand(EntryWrappingInterceptor.java:497)
      	at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:58)
      	at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:127)
      	at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:38)
      	at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitReadWriteKeyCommand(AbstractLockingInterceptor.java:200)
      	at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:58)
      	at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:326)
      	at org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:264)
      	at org.infinispan.statetransfer.StateTransferInterceptor.visitReadWriteKeyCommand(StateTransferInterceptor.java:174)
      	at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:58)
      	at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:55)
      	at org.infinispan.interceptors.DDAsyncInterceptor.visitReadWriteKeyCommand(DDAsyncInterceptor.java:214)
      	at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:127)
      	at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:97)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:60)
      	at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:55)
      	at org.infinispan.interceptors.DDAsyncInterceptor.visitReadWriteKeyCommand(DDAsyncInterceptor.java:214)
      	at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
      	at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:51)
      	at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invokeAsync(AsyncInterceptorChainImpl.java:234)
      	at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommandAsync(BaseRpcInvokingCommand.java:63)
      	at org.infinispan.commands.remote.SingleRpcCommand.invokeAsync(SingleRpcCommand.java:57)
      	at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokeCommand(BasePerCacheInboundInvocationHandler.java:101)
      	at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.invoke(BaseBlockingRunnable.java:99)
      	at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.runAsync(BaseBlockingRunnable.java:71)
      	at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:40)
      	... 3 more
      
      
      

              karestig@redhat.com Katia Aresti
              karestig@redhat.com Katia Aresti
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: