ClassNotFoundException happens when putting a custom object with jboss-marshalling in RHDG 8.x embedded module on JBoss EAP

Solution Unverified - Updated -

Issue

We installed RHDG 8 embedded modules on JBoss EAP and configiured our application with using jboss-marshalling:

<cache-container name="embedded-container">
    ... 
    <serialization marshaller="org.infinispan.jboss.marshalling.commons.GenericJBossMarshaller">
        <white-list>
            <class>com.example.ExampleObject,com.example.TestObject</class>
            <regex>com.example.*,foo.bar.*</regex>
        </white-list>
    </serialization>
    ... 
</cache-container>

When putting a custom object, it fails with the following ClassNotFoundException. This issue happen even if the custom object com.example.ExampleObject is correctly specified to the <white-list> setting.

ERROR [org.infinispan.interceptors.impl.InvocationContextInterceptor] (jgroups-19,t420-14040) ISPN000136: Error executing command VersionedPrepareCommand on Cache 'test1', writing keys [k1615376093772]: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from t420-25019, see cause for remote stack trace
    at org.infinispan.remoting.transport.ResponseCollectors.wrapRemoteException(ResponseCollectors.java:25)
    at org.infinispan.remoting.transport.impl.MapResponseCollector.addException(MapResponseCollector.java:64)
    at org.infinispan.remoting.transport.impl.MapResponseCollector$IgnoreLeavers.addException(MapResponseCollector.java:102)
    at org.infinispan.remoting.transport.ValidResponseCollector.addResponse(ValidResponseCollector.java:29)
    at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:93)
    at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1402)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1305)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:131)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1445)
    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:343)
    at org.jgroups.protocols.FlowControl.up(FlowControl.java:343)
    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.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132)
    at org.jgroups.protocols.FailureDetection.up(FailureDetection.java:186)
    at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:254)
    at org.jgroups.protocols.MERGE3.up(MERGE3.java:281)
    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.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.infinispan.commons.marshall.MarshallingException: java.lang.ClassNotFoundException: com.example.ExampleObject from [Module "org.infinispan:rhdg-8.1" from local module loader @ff5b51f (finder: local module finder @25bbe1b6 (roots: /path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/layers/base,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/add-ons/rhdg))]
    at org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:227)
    at org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:42)
    at org.infinispan.marshall.core.GlobalMarshaller.readWithExternalizer(GlobalMarshaller.java:728)
    at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:709)
    at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan.marshall.core.BytesObjectInput.readObject(BytesObjectInput.java:32)
    at org.infinispan.remoting.responses.ExceptionResponse$Externalizer.readObject(ExceptionResponse.java:49)
    at org.infinispan.remoting.responses.ExceptionResponse$Externalizer.readObject(ExceptionResponse.java:41)
    at org.infinispan.marshall.core.GlobalMarshaller.readWithExternalizer(GlobalMarshaller.java:728)
    at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:709)
    at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan.marshall.core.GlobalMarshaller.objectFromObjectInput(GlobalMarshaller.java:192)
    at org.infinispan.marshall.core.GlobalMarshaller.objectFromByteBuffer(GlobalMarshaller.java:221)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1394)
    ... 25 more
Caused by: java.lang.ClassNotFoundException: com.example.ExampleObject from [Module "org.infinispan:rhdg-8.1" from local module loader @ff5b51f (finder: local module finder @25bbe1b6 (roots: /path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/layers/base,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/add-ons/rhdg))]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.infinispan.marshall.exts.ThrowableExternalizer.readGenericThrowable(ThrowableExternalizer.java:282)
    at org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:259)
    at org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:42)
    at org.infinispan.marshall.core.GlobalMarshaller.readWithExternalizer(GlobalMarshaller.java:728)
    at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:709)
    at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan.marshall.core.BytesObjectInput.readObject(BytesObjectInput.java:32)
    at org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:226)
    ... 38 more
ERROR [org.infinispan.CLUSTER] (jgroups-15,t420-25019) ISPN000474: Error processing request 7@t420-14040: org.infinispan.commons.marshall.MarshallingException: java.lang.ClassNotFoundException: com.example.ExampleObject from [Module "org.infinispan:rhdg-8.1" from local module loader @ff5b51f (finder: local module finder @25bbe1b6 (roots: /path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/layers/base,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/add-ons/rhdg))]
    at org.infinispan.marshall.protostream.impl.MarshallableUserObject$Marshaller.readFrom(MarshallableUserObject.java:141)
    at org.infinispan.marshall.protostream.impl.MarshallableUserObject$Marshaller.readFrom(MarshallableUserObject.java:102)
    at org.infinispan.protostream.impl.RawProtobufMarshallerDelegate.unmarshall(RawProtobufMarshallerDelegate.java:37)
    at org.infinispan.protostream.WrappedMessage.readMessage(WrappedMessage.java:390)
    at org.infinispan.protostream.ProtobufUtil.fromWrappedByteArray(ProtobufUtil.java:161)
    at org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectFromByteBuffer(PersistenceMarshallerImpl.java:155)
    at org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectFromByteBuffer(PersistenceMarshallerImpl.java:150)
    at org.infinispan.marshall.core.GlobalMarshaller.readUnknown(GlobalMarshaller.java:906)
    at org.infinispan.marshall.core.GlobalMarshaller.readUnknown(GlobalMarshaller.java:891)
    at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:715)
    at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan.marshall.core.BytesObjectInput.readObject(BytesObjectInput.java:32)
    at org.infinispan.commons.marshall.MarshallUtil.unmarshallMap(MarshallUtil.java:86)
    at org.infinispan.commands.write.PutMapCommand.readFrom(PutMapCommand.java:128)
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readCommandParameters(ReplicableCommandExternalizer.java:114)
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:103)
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:65)
    at org.infinispan.marshall.core.GlobalMarshaller.readWithExternalizer(GlobalMarshaller.java:728)
    at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:709)
    at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan.marshall.core.BytesObjectInput.readObject(BytesObjectInput.java:32)
    at org.infinispan.commons.marshall.MarshallUtil.unmarshallArray(MarshallUtil.java:214)
    at org.infinispan.commands.tx.PrepareCommand.readFrom(PrepareCommand.java:237)
    at org.infinispan.commands.tx.VersionedPrepareCommand.readFrom(VersionedPrepareCommand.java:62)
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readCommandParameters(ReplicableCommandExternalizer.java:114)
    at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:154)
    at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:81)
    at org.infinispan.marshall.core.GlobalMarshaller.readWithExternalizer(GlobalMarshaller.java:728)
    at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:709)
    at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan.marshall.core.GlobalMarshaller.objectFromObjectInput(GlobalMarshaller.java:192)
    at org.infinispan.marshall.core.GlobalMarshaller.objectFromByteBuffer(GlobalMarshaller.java:221)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processRequest(JGroupsTransport.java:1362)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1302)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:131)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1445)
    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:359)
    at org.jgroups.protocols.FlowControl.up(FlowControl.java:351)
    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.up(UNICAST3.java:392)
    at org.jgroups.protocols.pbcast.NAKACK2.deliver(NAKACK2.java:931)
    at org.jgroups.protocols.pbcast.NAKACK2.handleMessage(NAKACK2.java:821)
    at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:602)
    at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132)
    at org.jgroups.protocols.FailureDetection.up(FailureDetection.java:186)
    at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:254)
    at org.jgroups.protocols.MERGE3.up(MERGE3.java:281)
    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.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.example.ExampleObject from [Module "org.infinispan:rhdg-8.1" from local module loader @ff5b51f (finder: local module finder @25bbe1b6 (roots: /path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/layers/base,/path/to/jboss-eap-7.3.5-rhdg-8.1.1-module/modules/system/add-ons/rhdg))]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:129)
    at org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:110)
    at org.infinispan.jboss.marshalling.commons.CheckedClassResolver.resolveClass(CheckedClassResolver.java:31)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:1033)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1366)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:283)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:216)
    at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
    at org.infinispan.jboss.marshalling.commons.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:138)
    at org.infinispan.jboss.marshalling.commons.AbstractJBossMarshaller.objectFromByteBuffer(AbstractJBossMarshaller.java:116)
    at org.infinispan.commons.marshall.AbstractMarshaller.objectFromByteBuffer(AbstractMarshaller.java:82)
    at org.infinispan.marshall.protostream.impl.MarshallableUserObject$Marshaller.readFrom(MarshallableUserObject.java:138)
    ... 56 more

Environment

  • Red Hat Data Grid 8.x

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