[jboss-jira] [JBoss JIRA] Updated: (EJBTHREE-1361) Ensure SFSB interceptors are deserialized before invoking callbacks
Brian Stansberry (JIRA)
jira-events at lists.jboss.org
Wed May 14 15:45:26 EDT 2008
[ http://jira.jboss.com/jira/browse/EJBTHREE-1361?page=all ]
Brian Stansberry updated EJBTHREE-1361:
---------------------------------------
Description:
The way lifecycle callbacks (e.g. PostReplicate, PostActivate) are invoked has changed from 4.x, with the result that StatefulBeanContext.extractBeanAndInterceptors() isn't always called before an attempt 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.
was:
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.
> 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, with the result that StatefulBeanContext.extractBeanAndInterceptors() isn't always called before an attempt 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