Hibernate cache failure unmarshalling remote command "java.io.InvalidObjectException: Could not find a SessionFactory" in EAP 6

Solution Verified - Updated -

Issue

  • Level 2 caching configured as replicated-cache
                <replicated-cache name="entity" mode="SYNC">
                    <transaction mode="NON_XA"/>
                    <eviction strategy="LRU" max-entries="10000"/>
                    <expiration max-idle="100000"/>
                </replicated-cache>
  • One or more entities with an @Embeddable / @EmbeddedId are already cached in a running server
@Embeddable
public class EventId implements java.io.Serializable {
        private String id;
...
        public boolean equals(Object o) {
                if (o instanceof EventId) {
                        return id.equals(EventId.class.cast(o).id);
                } else {
                        return false;
                }
        }

        public int hashCode() {
                return id.hashCode();
        }
}

@Entity
public class Event {
        @EmbeddedId
        private EventId id;
...
}
  • When a new server is started and joins the cluster, "Problems unmarshalling remote command from byte buffer: java.io.InvalidObjectException: Could not find a SessionFactory" is reported while replicating entities with @Embeddable ids
... WARN  [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] ... Problems unmarshalling remote command from byte buffer: java.io.InvalidObjectException: Could not find a SessionFactory [uuid=7f3079b0-fd41-4407-b888-7559d1ad96ff,name=jboss.eap-1.0-SNAPSHOT.jar#jboss-eap-hibernate]
        at org.hibernate.internal.SessionFactoryImpl.locateSessionFactoryOnDeserialization(SessionFactoryImpl.java:1809) [hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
        at org.hibernate.internal.SessionFactoryImpl.readResolve(SessionFactoryImpl.java:1789) [hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
        ...
        at org.jboss.marshalling.reflect.SerializableClass.callReadResolve(SerializableClass.java:413)
        ...
        at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1712)
        at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1628)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1269)
        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:41)
        at org.infinispan.container.entries.TransientCacheEntry$Externalizer.readObject(TransientCacheEntry.java:177)
        at org.infinispan.container.entries.TransientCacheEntry$Externalizer.readObject(TransientCacheEntry.java:166)
        at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
        at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
        at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:167)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
        at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
        at org.infinispan.marshall.exts.ArrayListExternalizer.readObject(ArrayListExternalizer.java:57)
        at org.infinispan.marshall.exts.ArrayListExternalizer.readObject(ArrayListExternalizer.java:45)
        at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
        at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
        at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:167)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
        at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
        at org.infinispan.statetransfer.StateChunk$Externalizer.readObject(StateChunk.java:111)
        at org.infinispan.statetransfer.StateChunk$Externalizer.readObject(StateChunk.java:88)
        at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
        at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
        at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:167)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
        at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
        at org.infinispan.marshall.exts.ArrayListExternalizer.readObject(ArrayListExternalizer.java:57)
        at org.infinispan.marshall.exts.ArrayListExternalizer.readObject(ArrayListExternalizer.java:45)
        at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
        at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
        at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:167)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
        at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
        at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readParameters(ReplicableCommandExternalizer.java:130)
        at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:158)
        at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:73)
        at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
        at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
        at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:167)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
        at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
        at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
        at org.infinispan.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:163)
        at org.infinispan.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:121)
        at org.infinispan.marshall.AbstractDelegatingMarshaller.objectFromByteBuffer(AbstractDelegatingMarshaller.java:104)
        at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectFromBuffer(MarshallerAdapter.java:50)
        at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:215)
        at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:484)
        at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:391)
        at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:249)
        at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:600)
        at org.jgroups.blocks.mux.MuxUpHandler.up(MuxUpHandler.java:130)
        at org.jgroups.JChannel.up(JChannel.java:707)
        at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1025)
        at org.jgroups.protocols.RSVP.up(RSVP.java:172)
        at org.jgroups.protocols.FRAG2.up(FRAG2.java:181)
        at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
        at org.jgroups.protocols.FlowControl.up(FlowControl.java:400)
        at org.jgroups.protocols.pbcast.GMS.up(GMS.java:896)
        at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:245)
        at org.jgroups.protocols.UNICAST2.handleDataReceived(UNICAST2.java:766)
        at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:420)
        at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:645)
        at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:147)
        at org.jgroups.protocols.FD.up(FD.java:253)
        at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:288)
        at org.jgroups.protocols.MERGE3.up(MERGE3.java:290)
        at org.jgroups.protocols.Discovery.up(Discovery.java:359)
        at org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2607)
        at org.jgroups.protocols.TP.passMessageUp(TP.java:1260)
        at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1822)
        at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1795)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
        at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
Caused by: an exception which occurred:
        in object of type org.hibernate.internal.SessionFactoryImpl
                -> classloader hierarchy:
                -> type classloader = ModuleClassLoader for Module "org.hibernate:main" from local module loader @2c19e15c (finder: local module finder @571a75a2 (roots: /opt/jboss-eap-6.3.0/modules,/opt/jboss-eap-6.3.0/modules/system/layers/base))
                -> parent classloader = sun.misc.Launcher$AppClassLoader@425224ee
                ->...file:/opt/jboss-eap-6.3.0/jboss-modules.jar
                -> parent classloader = sun.misc.Launcher$ExtClassLoader@1ef6a746
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunpkcs11.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/dnsns.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunjce_provider.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/localedata.jar
        in field factory
        in object of type org.hibernate.type.TypeFactory$TypeScopeImpl
                -> classloader hierarchy:
                -> type classloader = ModuleClassLoader for Module "org.hibernate:main" from local module loader @2c19e15c (finder: local module finder @571a75a2 (roots: /opt/jboss-eap-6.3.0/modules,/opt/jboss-eap-6.3.0/modules/system/layers/base))
                -> parent classloader = sun.misc.Launcher$AppClassLoader@425224ee
                ->...file:/opt/jboss-eap-6.3.0/jboss-modules.jar
                -> parent classloader = sun.misc.Launcher$ExtClassLoader@1ef6a746
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunpkcs11.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/dnsns.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunjce_provider.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/localedata.jar
        in field typeScope
        in object of type org.hibernate.type.ComponentType
                -> classloader hierarchy:
                -> type classloader = ModuleClassLoader for Module "org.hibernate:main" from local module loader @2c19e15c (finder: local module finder @571a75a2 (roots: /opt/jboss-eap-6.3.0/modules,/opt/jboss-eap-6.3.0/modules/system/layers/base))
                -> parent classloader = sun.misc.Launcher$AppClassLoader@425224ee
                ->...file:/opt/jboss-eap-6.3.0/jboss-modules.jar
                -> parent classloader = sun.misc.Launcher$ExtClassLoader@1ef6a746
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunpkcs11.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/dnsns.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunjce_provider.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/localedata.jar
        in field type
        in object of type org.hibernate.cache.spi.CacheKey
                -> classloader hierarchy:
                -> type classloader = ModuleClassLoader for Module "org.hibernate:main" from local module loader @2c19e15c (finder: local module finder @571a75a2 (roots: /opt/jboss-eap-6.3.0/modules,/opt/jboss-eap-6.3.0/modules/system/layers/base))
                -> parent classloader = sun.misc.Launcher$AppClassLoader@425224ee
                ->...file:/opt/jboss-eap-6.3.0/jboss-modules.jar
                -> parent classloader = sun.misc.Launcher$ExtClassLoader@1ef6a746
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunpkcs11.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/dnsns.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/sunjce_provider.jar
                ->...file:/opt/jdk1.6.0_45/jre/lib/ext/localedata.jar

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP) 6
  • Hibernate 4
  • Infinispan

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content