Details
-
Bug
-
Resolution: Done
-
Major
-
16.0.0.Final
-
None
Description
This is follow up issue for JBEAP-16725, which was resolved with a workaround - javax.rmi was added as a dependency of wildfly.extension.io module.
The root cause is probably inside jboss-modules.
The issue is following:
- a standalone EJB client invokes remote EJB, and passes an object as an argument;
- server (trying to use the remote object) fails with "java.lang.ClassNotFoundException: java.rmi.dgc.Lease" (stacktrace bellow).
If a short delay (Thread.sleep(100)) is introduced on the server side, before manipulating the remote object, the invocation succeeds.
java.lang.ClassNotFoundException: java.rmi.dgc.Lease from [Module "org.wildfly.extension.io" version 6.0.12.Final-redhat-00001 from local module loader @6a024a67 (finder: local module finder @7921b0a2 (roots: /tmp/jboss-eap-7.2/modules,/tmp/jboss-eap-7.2/modules/system/layers/base))] (no security manager: RMI class loader disabled) (default task-2) java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:97) (default task-2) sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:396) (default task-2) sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:186) (default task-2) java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637) (default task-2) java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264) (default task-2) sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:219) (default task-2) java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1868) (default task-2) java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751) (default task-2) java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042) (default task-2) java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573) (default task-2) java.io.ObjectInputStream.readObject(ObjectInputStream.java:431) (default task-2) sun.rmi.transport.DGCImpl_Stub.dirty(DGCImpl_Stub.java:125) (default task-2) sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.java:382) (default task-2) sun.rmi.transport.DGCClient$EndpointEntry.registerRefs(DGCClient.java:324) (default task-2) sun.rmi.transport.DGCClient.registerRefs(DGCClient.java:160) (default task-2) sun.rmi.transport.LiveRef.read(LiveRef.java:312) (default task-2) sun.rmi.server.UnicastRef.readExternal(UnicastRef.java:489) (default task-2) java.rmi.server.RemoteObject.readObject(RemoteObject.java:455) (default task-2) sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2) (default task-2) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) (default task-2) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) (default task-2) java.lang.reflect.Method.invoke(Method.java:498) (default task-2) org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callReadObject(JDKSpecific.java:179) (default task-2) org.jboss.marshalling.reflect.SerializableClass.callReadObject(SerializableClass.java:212) (default task-2) org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1746) (default task-2) org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1715) (default task-2) org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1715) (default task-2) org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1395) (default task-2) org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) (default task-2) org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) (default task-2) org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) (default task-2) org.jboss.ejb.protocol.remote.EJBServerChannel$RemotingInvocationRequest.getRequestContent(EJBServerChannel.java:813) (default task-2) org.jboss.as.ejb3.remote.AssociationImpl.receiveInvocationRequest(AssociationImpl.java:130) (default task-2) org.jboss.ejb.protocol.remote.EJBServerChannel$ReceiverImpl.handleInvocationRequest(EJBServerChannel.java:451) (default task-2) org.jboss.ejb.protocol.remote.EJBServerChannel$ReceiverImpl.handleMessage(EJBServerChannel.java:189) (default task-2) org.jboss.remoting3.remote.RemoteConnectionChannel.lambda$handleMessageData$3(RemoteConnectionChannel.java:430) (default task-2) org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:949) (default task-2) org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) (default task-2) org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985) (default task-2) org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487) (default task-2) org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378) (default task-2) java.lang.Thread.run(Thread.java:748)
Attachments
Issue Links
- is cloned by
-
JBEAP-16725 [GSS](7.2.z) java.rmi is not visible from EJBServerChannel / EJB subsystem doesn't set TCCL when deserializing request
- Verified
- is duplicated by
-
WFCORE-4450 java.rmi is not visible from EJBServerChannel
- Closed
- is incorporated by
-
JBEAP-16815 [GSS](7.2.z) EJB subsystem doesn't set TCCL when deserializing request
- Closed
- relates to
-
WFCORE-4450 java.rmi is not visible from EJBServerChannel
- Closed
-
WFLY-12026 java.rmi is not visible from wildfly.extension.io module
- Closed