[jboss-jira] [JBoss JIRA] (AS7-4504) Interceptors break sessionContext.getBusinessObject()

Stephan Fuhrmann (JIRA) jira-events at lists.jboss.org
Mon Apr 16 13:20:18 EDT 2012


    [ https://issues.jboss.org/browse/AS7-4504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12684633#comment-12684633 ] 

Stephan Fuhrmann edited comment on AS7-4504 at 4/16/12 1:19 PM:
----------------------------------------------------------------

The EAR archive contains the following:

{code:title=XXX.ear|borderStyle=solid}
.
./XXXEJB.jar
./META-INF
./META-INF/MANIFEST.MF
./XXXView.war
./lib
./lib/lib1.jar
./lib/lib2.jar
{code}

the XXXEJB.jar contains the session beans, local interfaces and the interceptor classes.

I can't produce an archive that reproduces this problem at the moment. A simple example seems to work like expected. This means the problem is triggered by some special relation/usage pattern my ear uses.
Can you give me a hint (annotations, class relations) on what to look for?

                
      was (Author: stfu):
    The EAR archive contains the following:

.
./XXXEJB.jar
./META-INF
./META-INF/MANIFEST.MF
./XXXView.war
./lib
./lib/lib1.jar
./lib/lib2.jar

the XXXEJB.jar contains the session beans, local interfaces and the interceptor classes.

I can't produce an archive that reproduces this problem at the moment. A simple example seems to work like expected. This means the problem is triggered by some special relation/usage pattern my ear uses.
Can you give me a hint (annotations, class relations) on what to look for?

                  
> Interceptors break sessionContext.getBusinessObject()
> -----------------------------------------------------
>
>                 Key: AS7-4504
>                 URL: https://issues.jboss.org/browse/AS7-4504
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: EJB
>    Affects Versions: 7.1.1.Final
>         Environment: Debian Linux 6.0.4, 
> java version "1.7.0_02"
> Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
> Java HotSpot(TM) Client VM (build 22.0-b10, mixed mode)
>            Reporter: Stephan Fuhrmann
>            Assignee: jaikiran pai
>              Labels: classcastexception, interceptor, interceptors, sessionContext
>
> After introducing interceptors
> {code:title=SessionBean.java|borderStyle=solid}
> @Interceptors(TimeoutInterceptor.class)
> @Stateless
> public class SessionBean implements SessionBeanLocal {
> ...
>  @Resource private SessionContext sessionContext;
>  public void bar() {
>    ...
>  }
>  public void foo() {
>    ...
>    sessionContext.getBusinessObject(SessionBeanLocal.class).bar();
>    ...
>  }
> {code}
> The sessionContext.getBusinessObject() call throws a CCE:
> {code:title=ClassCastException|borderStyle=solid}
> java.lang.ClassCastException: Cannot cast xxx.SessionBeanLocal$$$view29 to xxx.SessionBeanLocal
>         at java.lang.Class.cast(Class.java:3005) [rt.jar:1.7.0_02]
>         at org.jboss.as.ejb3.component.EJBComponent.createViewInstanceProxy(EJBComponent.java:162) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.as.ejb3.component.EJBComponent.createViewInstanceProxy(EJBComponent.java:146) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.as.ejb3.component.session.SessionBeanComponent.getBusinessObject(SessionBeanComponent.java:68) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.as.ejb3.context.SessionContextImpl.getBusinessObject(SessionContextImpl.java:61) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at xxx.SessionBean.foo(SessionBean.java:136) [XXXEJB.jar:]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_02]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_02]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_02]
>         at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_02]
>         at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:333) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:192) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:43) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:173) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
>         at org.jboss.as.ejb3.component.interceptors.AsyncVoidInterceptorFactory$Task.run(AsyncVoidInterceptorFactory.java:75) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_02]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_02]
>         at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_02]
>         at org.jboss.threads.JBossThread.run(JBossThread.java:122)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list