1 Reply Latest reply on Mar 6, 2012 5:37 AM by sannegrinovero

    Infinispan marshalling

    jrox

      Hello

       

      I am trying to use Infinispan in a multi machine setup with UDP as the sharing protocol. As soon as a second node joins Infinispan is trying to publish changes between the nodes by marshalling objects. This is the point where I get the following error.

      My Cache objects (Key and Value) are both java objects using an Externalizer.

       

      Thanks

       

       

      2012-03-05 16:33:16,649 - [ERROR] - InvocationContextInterceptor.handleAll(141) | ISPN000136: Execution error

      org.infinispan.CacheException: java.lang.RuntimeException: Failure to marshal argument(s)

                at org.infinispan.util.Util.rewrapAsCacheException(Util.java:524)

                at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:115)

                at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:447)

                at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:148)

                at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:169)

                at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:219)

                at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:206)

                at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:201)

                at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:184)

                at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:177)

                at org.infinispan.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:188)

                at org.infinispan.interceptors.ReplicationInterceptor.visitPutKeyValueCommand(ReplicationInterceptor.java:149)

                at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

                at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:199)

                at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:134)

                at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

                at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitPutKeyValueCommand(NonTransactionalLockingInterceptor.java:68)

                at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

                at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:130)

                at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:61)

                at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

                at org.infinispan.interceptors.StateTransferLockInterceptor.handleWithRetries(StateTransferLockInterceptor.java:207)

                at org.infinispan.interceptors.StateTransferLockInterceptor.handleWriteCommand(StateTransferLockInterceptor.java:180)

                at org.infinispan.interceptors.StateTransferLockInterceptor.visitPutKeyValueCommand(StateTransferLockInterceptor.java:151)

                at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

                at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:130)

                at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:89)

                at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:61)

                at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

                at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:345)

                at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:941)

                at org.infinispan.CacheImpl.put(CacheImpl.java:654)

                at org.infinispan.CacheImpl.put(CacheImpl.java:646)

                at org.infinispan.CacheSupport.put(CacheSupport.java:52)

                at MyClass.tJMSTransactionalInput_2Process(MyClass.java:20206)

                at MyClass.tMysqlInput_8Process(MyClass.java:2516)

                at MyClass.tMysqlInput_6Process(MyClass.java:2173)

                at MyClass.tMysqlConnection_1Process(MyClass.java:1746)

                at MyClass.tLibraryLoad_1Process(MyClass.java:1617)

                at MyClass.runJobInTOS(MyClass.java:35819)

                at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

                at java.util.concurrent.FutureTask.run(FutureTask.java:138)

                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

                at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

                at java.util.concurrent.FutureTask.run(FutureTask.java:138)

                at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

                at java.lang.Thread.run(Thread.java:662)

      Caused by: java.lang.RuntimeException: Failure to marshal argument(s)

                at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher$ReplicationTask.marshallCall(CommandAwareRpcDispatcher.java:216)

                at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher$ReplicationTask.call(CommandAwareRpcDispatcher.java:235)

                at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:111)

                ... 54 more

      Caused by: java.lang.IllegalArgumentException: Cannot instantiate externalizer for class MyClass$1SCDSK_tMySQLSCDCached_1

                at org.infinispan.marshall.jboss.SerializeWithExtFactory.getExternalizer(SerializeWithExtFactory.java:54)

                at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:844)

                at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62)

                at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119)

                at org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:84)

                at org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:69)

                at org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:57)

                at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.writeObject(ExternalizerTable.java:404)

                at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:145)

                at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62)

                at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119)

                at org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:84)

                at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.marshallParameters(CacheRpcCommandExternalizer.java:126)

                at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.writeObject(CacheRpcCommandExternalizer.java:113)

                at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.writeObject(CacheRpcCommandExternalizer.java:68)

                at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.writeObject(ExternalizerTable.java:404)

                at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:145)

                at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62)

                at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119)

                at org.infinispan.marshall.jboss.AbstractJBossMarshaller.objectToObjectStream(AbstractJBossMarshaller.java:86)

                at org.infinispan.marshall.VersionAwareMarshaller.objectToBuffer(VersionAwareMarshaller.java:86)

                at org.infinispan.marshall.AbstractMarshaller.objectToBuffer(AbstractMarshaller.java:57)

                at org.infinispan.marshall.AbstractDelegatingMarshaller.objectToBuffer(AbstractDelegatingMarshaller.java:89)

                at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectToBuffer(MarshallerAdapter.java:45)

                at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher$ReplicationTask.marshallCall(CommandAwareRpcDispatcher.java:214)

                ... 56 more

      Caused by: java.lang.InstantiationException: MyClass$1SCDSK_tMySQLSCDCached_1$SCDSKExternalizer_tMySQLSCDCached_1

                at java.lang.Class.newInstance0(Class.java:340)

                at java.lang.Class.newInstance(Class.java:308)

                at org.infinispan.marshall.jboss.SerializeWithExtFactory.getExternalizer(SerializeWithExtFactory.java:52)

                ... 80 more

      Caused by: an exception which occurred:

                in object MyClass$1SCDSK_tMySQLSCDCached_1@8b

                          -> toString = MyClass$1SCDSK_tMySQLSCDCached_1@8b

                in object org.infinispan.commands.write.PutKeyValueCommand@6e30f9ad

                          -> toString = PutKeyValueCommand{key=MyClass$1SCDSK_tMySQLSCDCached_1@8b, value=MyClass$1SCDStruct_tMySQLSCDCached_1@53781c9e, flags=null, putIfAbsent=false, lifespanMillis=-1, maxIdleTimeMillis=-1}

                in object org.infinispan.commands.remote.SingleRpcCommand@c478c7e9

                          -> toString = SingleRpcCommand{cacheName='customerCache', command=PutKeyValueCommand{key=MyClass$1SCDSK_tMySQLSCDCached_1@8b, value=MyClass$1SCDStruct_tMySQLSCDCached_1@53781c9e, flags=null, putIfAbsent=false, lifespanMillis=-1, maxIdleTimeMillis=-1

       

        • 1. Re: Infinispan marshalling
          sannegrinovero

          Looks like an exception happened when trying to invoke the constructor of your custom externalizer.

          Make sure it has a public constructor, the class is accessible, and the constructor has no arguments. Also make sure the constructor doesn't contain failing code.