Uploaded image for project: 'EJB 3.0'
  1. EJB 3.0
  2. EJBTHREE-2094

Unmarshalling of param fails with ClassNotFoundException during invocation on a Singleton bean packaged in an isolated deployment

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: EJB3_1 1.0.7
    • Fix Version/s: EJB3_1 1.0.8
    • Component/s: singleton
    • Labels:
      None

      Description

      Invocation on a simple singleton bean:

      public class SomeSingletonBean
      {

      public void doSomething(SomeCustomClass param)

      { ... }

      }

      fails with ClassNotFoundException for SomeCustomClass like below:

      java.lang.RuntimeException: java.lang.ClassNotFoundException: de.xxx.persistence.entity.core.Company (no security manager: RMI class loader disabled)
      at org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:318)
      at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.dynamicInvoke(AOPBasedSingletonContainer.java:331)
      at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
      at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
      at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
      at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:897)
      at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:768)
      at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:721)
      at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548)
      at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)
      Caused by: java.lang.ClassNotFoundException: de.xxx.persistence.entity.core.Company (no security manager: RMI class loader disabled)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:375)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
      at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
      at org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91)
      at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
      at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
      at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
      at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
      at org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:309)
      at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.dynamicInvoke(AOPBasedSingletonContainer.java:331)
      at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
      at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
      at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
      at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:897)
      at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:768)
      at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:721)
      at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548)
      at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)
      at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:213)
      at org.jboss.remoting.Client.invoke(Client.java:1927)
      at org.jboss.remoting.Client.invoke(Client.java:770)
      at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
      at $Proxy6.invoke(Unknown Source)
      at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:188)
      at $Proxy5.get(Unknown Source)
      at de.xxx.test.CoreServicesRemoteTest.testCompanyCreate(CoreServicesRemoteTest.java:39)
      at de.xxx.test.CoreServicesRemoteTest.main(CoreServicesRemoteTest.java:50)
      at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
      at $Proxy6.invoke(Unknown Source)
      at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:188)
      at $Proxy5.get(Unknown Source)
      at de.xxx.test.CoreServicesRemoteTest.testCompanyCreate(CoreServicesRemoteTest.java:39)
      at de.xxx.test.CoreServicesRemoteTest.main(CoreServicesRemoteTest.java:50)

      This is because, during unmarshalling, the AOPSingletonBasedContainer.dynamicInvoke does not use the container's classloader.

      See the referenced forum thread for details.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                jaikiran Jaikiran Pai
                Reporter:
                jaikiran Jaikiran Pai
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: