[jboss-jira] [JBoss JIRA] Created: (EJBTHREE-1361) Ensure SFSB interceptors are deserialized before invoking callbacks

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Wed May 14 15:42:53 EDT 2008


Ensure SFSB interceptors are deserialized before invoking callbacks
-------------------------------------------------------------------

                 Key: EJBTHREE-1361
                 URL: http://jira.jboss.com/jira/browse/EJBTHREE-1361
             Project: EJB 3.0
          Issue Type: Bug
          Components: core
    Affects Versions: AS 5.0.0.Beta4
            Reporter: Brian Stansberry
         Assigned To: Brian Stansberry
             Fix For: AS 5.0.0.CR1


The way lifecycle callbacks (e.g. PostReplicate, PostActivate) are invoked has changed from 4.x, which the result that StatefulBeanContext.extractBeanAndInterceptors() isn't always called before an attempts is made to invoke the callbacks.  Result is failures like this:

java.lang.IllegalArgumentException: No interceptor found for class org.jboss.ejb3.test.ejbthree921.ExplicitFailoverInterceptor in org.jboss.ejb3.stateful.StatefulBeanContext at 363d37
	at org.jboss.ejb3.BaseContext.getInterceptor(BaseContext.java:146)
	at org.jboss.ejb3.interceptors.aop.LifecycleCallbacks.createLifecycleCallbackInterceptors(LifecycleCallbacks.java:56)
	at org.jboss.ejb3.EJBContainer.invokeCallback(EJBContainer.java:1021)
	at org.jboss.ejb3.stateful.StatefulContainer.invokePostActivate(StatefulContainer.java:560)
	at org.jboss.ejb3.stateful.StatefulBeanContext.postReplicate(StatefulBeanContext.java:586)
	at org.jboss.ejb3.cache.tree.StatefulTreeCache.get(StatefulTreeCache.java:198)
	at org.jboss.ejb3.cache.tree.StatefulTreeCache.get(StatefulTreeCache.java:163)
	at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:59)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
	at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.remoting.ReplicantsManagerInterceptor.invoke(ReplicantsManagerInterceptor.java:51)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:157)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:485)
	at org.jboss.ejb3.session.ClassProxyHack._dynamicInvoke(ClassProxyHack.java:52)
	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:850)
	at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:727)
	at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:672)
	at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:495)
	at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:207)

Fix is to ensure extractBeanAndInterceptors() is called before asking the container to invoke the callbacks.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list