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

SessionContext.getBusinessObject() on no-interface bean fails

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Critical
    • Resolution: Done
    • Affects Version/s: EJB3_1 1.0.7, depchain-1.0.0-alpha-4
    • Fix Version/s: depchain-1.0.0-alpha-43
    • Component/s: core
    • Labels:
      None

      Description

      It is not possible to get a refrence to the instance of a "no-interface" bean with the SessionContext.getBusinessObject(Class<T>) call as is possible for "local" and "remote" interfaces. It results in a exeption: "java.lang.IllegalStateException: Cannot find BusinessObject for interface: ...". This happens with both stateless and stateful beans.

      Example bean:

      @Stateless
      public class TestBean {

      @Resource
      protected SessionContext session;

      public TestBean() {
      }

      public void Test() {
      try

      { TestBean testBean = (TestBean) session.getBusinessObject(this.getClass()); }

      catch(Exception e)

      { e.printStackTrace(); }

      }
      }

      Backtrace:
      15:25:09,719 ERROR [STDERR] java.lang.IllegalStateException: Cannot find BusinessObject for interface: com.test.TestBean
      15:25:09,719 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.getBusinessObject(StatelessContainer.java:556)
      15:25:09,719 ERROR [STDERR] at org.jboss.ejb3.session.SessionContextDelegateBase.getBusinessObject(SessionContextDelegateBase.java:70)
      15:25:09,719 ERROR [STDERR] at com.test.TestBean.Test(TestBean.java:19)
      15:25:09,719 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      15:25:09,719 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      15:25:09,720 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      15:25:09,720 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)
      15:25:09,720 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
      15:25:09,720 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
      15:25:09,720 ERROR [STDERR] at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:72)
      15:25:09,720 ERROR [STDERR] at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76)
      15:25:09,720 ERROR [STDERR] at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62)
      15:25:09,720 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      15:25:09,720 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      15:25:09,721 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      15:25:09,721 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)
      15:25:09,721 ERROR [STDERR] at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
      15:25:09,721 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,721 ERROR [STDERR] at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
      15:25:09,721 ERROR [STDERR] at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_2535725.invoke(InvocationContextInterceptor_z_fillMethod_2535725.java)
      15:25:09,721 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,721 ERROR [STDERR] at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
      15:25:09,721 ERROR [STDERR] at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_2535725.invoke(InvocationContextInterceptor_z_setup_2535725.java)
      15:25:09,722 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,722 ERROR [STDERR] at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
      15:25:09,722 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,722 ERROR [STDERR] at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
      15:25:09,722 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,722 ERROR [STDERR] at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
      15:25:09,722 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,722 ERROR [STDERR] at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
      15:25:09,722 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,723 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
      15:25:09,723 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,723 ERROR [STDERR] at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
      15:25:09,723 ERROR [STDERR] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:194)
      15:25:09,723 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,723 ERROR [STDERR] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
      15:25:09,723 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,723 ERROR [STDERR] at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
      15:25:09,724 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,724 ERROR [STDERR] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186)
      15:25:09,724 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,724 ERROR [STDERR] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
      15:25:09,724 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,724 ERROR [STDERR] at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
      15:25:09,724 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,724 ERROR [STDERR] at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47)
      15:25:09,724 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,725 ERROR [STDERR] at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
      15:25:09,725 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,725 ERROR [STDERR] at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterceptor.java:86)
      15:25:09,725 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
      15:25:09,725 ERROR [STDERR] at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:193)
      15:25:09,725 ERROR [STDERR] at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:109)
      15:25:09,725 ERROR [STDERR] at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler.invoke(NoInterfaceViewInvocationHandler.java:148)
      15:25:09,725 ERROR [STDERR] at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invoke(JavassistInvocationHandlerAdapter.java:71)
      15:25:09,725 ERROR [STDERR] at com.test.TestBean_$$javassist_3.Test(TestBean$$_javassist_3.java)
      ...

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            wolfc Carlo de Wolf added a comment -

            I'll create a plug-point in core which brings the problem to AS level. Within AS I'll create an implementation that takes care of the lot.

            Show
            wolfc Carlo de Wolf added a comment - I'll create a plug-point in core which brings the problem to AS level. Within AS I'll create an implementation that takes care of the lot.
            Hide
            wolfc Carlo de Wolf added a comment -

            ejb3-heks provides an implementation for the plug-point.

            Show
            wolfc Carlo de Wolf added a comment - ejb3-heks provides an implementation for the plug-point.

              People

              • Assignee:
                wolfc Carlo de Wolf
                Reporter:
                wiebren Wiebren Braakman
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Development