[infinispan-issues] [JBoss JIRA] Created: (ISPN-637) MarshalledValue.equals(...) causing ClassNotFoundException during remote invalidation handling
Paul Ferraro (JIRA)
jira-events at lists.jboss.org
Thu Sep 9 15:10:49 EDT 2010
MarshalledValue.equals(...) causing ClassNotFoundException during remote invalidation handling
----------------------------------------------------------------------------------------------
Key: ISPN-637
URL: https://jira.jboss.org/browse/ISPN-637
Project: Infinispan
Issue Type: Bug
Components: Marshalling
Affects Versions: 4.1.0.Final
Reporter: Paul Ferraro
Assignee: Manik Surtani
Using lazy deserialization with application specific cache keys, remote handling of a cache invalidation operation triggers MarshalledValue.equals(...) on the cache key, triggering deserialization and causes a ClassNotFoundException in my environment, due to the class not being found in the context classloader of the jgroups receiver thread.
The user of the cache in this case is the 2nd level cache of an entity manager via the hibernate-infinispan cache provider. While the cache is specific to the application, the cache manager is not, and is managed via the AS, which probably accounts for the classloader issue.
2010-09-09 14:43:31,481 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (OOB-19,null) Execution error: : org.infinispan.CacheException: Unable to unmarshall value
at org.infinispan.marshall.MarshalledValue.deserialize(MarshalledValue.java:114) [:4.1.0.FINAL]
at org.infinispan.marshall.MarshalledValue.equals(MarshalledValue.java:184) [:4.1.0.FINAL]
at java.util.concurrent.ConcurrentHashMap$Segment.get(ConcurrentHashMap.java:366) [:1.6.0_20]
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:797) [:1.6.0_20]
at org.infinispan.container.DefaultDataContainer.peek(DefaultDataContainer.java:105) [:4.1.0.FINAL]
at org.infinispan.container.DefaultDataContainer.get(DefaultDataContainer.java:110) [:4.1.0.FINAL]
at org.infinispan.container.EntryFactoryImpl.wrapEntryForWriting(EntryFactoryImpl.java:156) [:4.1.0.FINAL]
at org.infinispan.container.EntryFactoryImpl.wrapEntryForWriting(EntryFactoryImpl.java:106) [:4.1.0.FINAL]
at org.infinispan.interceptors.LockingInterceptor.visitInvalidateCommand(LockingInterceptor.java:186) [:4.1.0.FINAL]
at org.infinispan.commands.write.InvalidateCommand.acceptVisitor(InvalidateCommand.java:119) [:4.1.0.FINAL]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) [:4.1.0.FINAL]
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132) [:4.1.0.FINAL]
at org.infinispan.commands.AbstractVisitor.visitInvalidateCommand(AbstractVisitor.java:117) [:4.1.0.FINAL]
at org.infinispan.commands.write.InvalidateCommand.acceptVisitor(InvalidateCommand.java:119) [:4.1.0.FINAL]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) [:4.1.0.FINAL]
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132) [:4.1.0.FINAL]
at org.infinispan.commands.AbstractVisitor.visitInvalidateCommand(AbstractVisitor.java:117) [:4.1.0.FINAL]
at org.infinispan.commands.write.InvalidateCommand.acceptVisitor(InvalidateCommand.java:119) [:4.1.0.FINAL]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) [:4.1.0.FINAL]
at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:183) [:4.1.0.FINAL]
at org.infinispan.interceptors.TxInterceptor.visitInvalidateCommand(TxInterceptor.java:157) [:4.1.0.FINAL]
at org.infinispan.commands.write.InvalidateCommand.acceptVisitor(InvalidateCommand.java:119) [:4.1.0.FINAL]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) [:4.1.0.FINAL]
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:57) [:4.1.0.FINAL]
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:38) [:4.1.0.FINAL]
at org.infinispan.commands.AbstractVisitor.visitInvalidateCommand(AbstractVisitor.java:117) [:4.1.0.FINAL]
at org.infinispan.commands.write.InvalidateCommand.acceptVisitor(InvalidateCommand.java:119) [:4.1.0.FINAL]
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:273) [:4.1.0.FINAL]
at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:42) [:4.1.0.FINAL]
at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:44) [:4.1.0.FINAL]
at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:76) [:4.1.0.FINAL]
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommand(CommandAwareRpcDispatcher.java:176) [:4.1.0.FINAL]
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:148) [:4.1.0.FINAL]
at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:575) [:2.10.0.GA]
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:486) [:2.10.0.GA]
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:362) [:2.10.0.GA]
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:771) [:2.10.0.GA]
at org.jgroups.blocks.mux.MuxUpHandler.up(MuxUpHandler.java:136) [:2.10.0.GA]
at org.jgroups.JChannel.up(JChannel.java:1453) [:2.10.0.GA]
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:887) [:2.10.0.GA]
at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:483) [:2.10.0.GA]
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:265) [:2.10.0.GA]
at org.jgroups.protocols.FRAG2.up(FRAG2.java:188) [:2.10.0.GA]
at org.jgroups.protocols.FC.up(FC.java:494) [:2.10.0.GA]
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:888) [:2.10.0.GA]
at org.jgroups.protocols.VIEW_SYNC.up(VIEW_SYNC.java:171) [:2.10.0.GA]
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234) [:2.10.0.GA]
at org.jgroups.protocols.UNICAST.up(UNICAST.java:309) [:2.10.0.GA]
at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:813) [:2.10.0.GA]
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:671) [:2.10.0.GA]
at org.jgroups.protocols.BARRIER.up(BARRIER.java:120) [:2.10.0.GA]
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132) [:2.10.0.GA]
at org.jgroups.protocols.FD.up(FD.java:266) [:2.10.0.GA]
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:270) [:2.10.0.GA]
at org.jgroups.protocols.MERGE2.up(MERGE2.java:210) [:2.10.0.GA]
at org.jgroups.protocols.Discovery.up(Discovery.java:281) [:2.10.0.GA]
at org.jgroups.protocols.PING.up(PING.java:67) [:2.10.0.GA]
at org.jgroups.stack.Protocol.up(Protocol.java:371) [:2.10.0.GA]
at org.jgroups.protocols.TP.passMessageUp(TP.java:1009) [:2.10.0.GA]
at org.jgroups.protocols.TP.access$100(TP.java:56) [:2.10.0.GA]
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1549) [:2.10.0.GA]
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1531) [:2.10.0.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [:1.6.0_20]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [:1.6.0_20]
at java.lang.Thread.run(Thread.java:636) [:1.6.0_20]
Caused by: java.lang.ClassNotFoundException: org.jboss.test.cluster.clusteredentity.embeddedid.MusicianPK from BaseClassLoader at 4dd761d0{vfs:///home/paul/jboss/as/infinispan-int/build/target/jboss-6.0.0-SNAPSHOT/server/cluster-udp-1/conf/jboss-service.xml}
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480) [jboss-classloader.jar:2.2.0.Alpha7]
at java.lang.ClassLoader.loadClass(ClassLoader.java:266) [:1.6.0_20]
at java.lang.Class.forName0(Native Method) [:1.6.0_20]
at java.lang.Class.forName(Class.java:264) [:1.6.0_20]
at org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:135) [:]
at org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:116) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:845) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1144) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1610) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1526) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1175) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) [:]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209) [:]
at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:36) [:]
at org.infinispan.marshall.jboss.GenericJBossMarshaller.objectFromObjectStream(GenericJBossMarshaller.java:162) [:4.1.0.FINAL]
at org.infinispan.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:111) [:4.1.0.FINAL]
at org.infinispan.marshall.AbstractMarshaller.objectFromByteBuffer(AbstractMarshaller.java:49) [:4.1.0.FINAL]
at org.infinispan.marshall.MarshalledValue.deserialize(MarshalledValue.java:111) [:4.1.0.FINAL]
... 64 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list