Take care of the tunnels ;)
On Sun, Feb 12, 2012 at 4:38 PM, Romain Manni-Bucau <rmannibu...@gmail.com> wrote: > created the issue: https://issues.apache.org/jira/browse/OPENEJB-1771 > > currently trying to commit a fix from the train :p > > - Romain > > > 2012/2/11 Romain Manni-Bucau <rmannibu...@gmail.com> > >> it sounds like a bug, >> >> thanks for the report, >> >> we'll have a deeper look ASAP >> >> - Romain >> >> >> >> 2012/2/11 Romain Manni-Bucau <rmannibu...@gmail.com> >> >>> Hi, >>> >>> can you have a look at >>> http://svn.apache.org/repos/asf/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/interceptors/InterceptorBindingEjbTest.java >>> to >>> reproduce it please? >>> >>> - Romain >>> >>> >>> >>> 2012/2/11 og0815 <oliver.guent...@gg-net.de> >>> >>>> Hi everybody, >>>> >>>> again I'm not 100% sure if I'm getting the spec right or found some bug. >>>> >>>> Assume the following code. >>>> >>>> @Inherited >>>> @InterceptorBinding >>>> @Retention(RUNTIME) >>>> @Target({METHOD, TYPE}) >>>> public @interface MarkInterception { >>>> } >>>> >>>> --- >>>> >>>> @Interceptor >>>> @MarkInterception >>>> public class MarkedInterceptor { >>>> >>>> @AroundInvoke >>>> public Object manageTransaction(InvocationContext invocationContext) >>>> throws Exception { >>>> System.out.println("Beginning Interceptor " + invocationContext); >>>> Object o = invocationContext.proceed(); >>>> System.out.println("Ending Interceptor " + invocationContext); >>>> return o; >>>> } >>>> } >>>> >>>> --- >>>> >>>> @Stateless >>>> public class BeanOne { >>>> >>>> @MarkInterception >>>> public void something() { >>>> System.out.println("BeanOne.something"); >>>> } >>>> >>>> } >>>> >>>> --- >>>> >>>> @Stateless >>>> public class BeanTwo { >>>> >>>> @Inject >>>> private BeanOne one; >>>> >>>> public void callOne() { >>>> one.something(); >>>> } >>>> } >>>> >>>> --- >>>> >>>> Now if I call BeanTwo.callOne in a client I get the following expected >>>> output: >>>> >>>> Beginning Interceptor InvocationContext(operation=BUSINESS, >>>> target=BeanOne, >>>> method=something) >>>> BeanOne.something >>>> Ending Interceptor InvocationContext(operation=BUSINESS, target=BeanOne, >>>> method=something) >>>> >>>> But, if I change the BeanTwo like this >>>> >>>> @Stateless >>>> public class BeanTwo { >>>> >>>> @Inject >>>> private BeanOne one; >>>> >>>> @MarkInterception >>>> public void doNothing() { >>>> >>>> } >>>> >>>> public void callOne() { >>>> one.something(); >>>> } >>>> >>>> } >>>> >>>> the following happens: >>>> >>>> Beginning Interceptor InvocationContext(operation=BUSINESS, >>>> target=BeanTwo, >>>> method=callOne) >>>> Beginning Interceptor InvocationContext(operation=BUSINESS, >>>> target=BeanOne, >>>> method=something) >>>> BeanOne.something >>>> Ending Interceptor InvocationContext(operation=BUSINESS, target=BeanOne, >>>> method=something) >>>> Ending Interceptor InvocationContext(operation=BUSINESS, target=BeanTwo, >>>> method=callOne) >>>> >>>> Which means that also the callOne is now Intercepted. From my >>>> understanding >>>> the Interceptor annotation at method level should only intercept the >>>> selected method but in this case it looks like it has become a >>>> interceptor >>>> for all methods. >>>> >>>> Again am I doing something weird or is this a bug ? >>>> >>>> Thanks, >>>> Olli >>>> >>>> >>>> -- >>>> View this message in context: >>>> http://openejb.979440.n4.nabble.com/Wrong-CDI-Interception-in-OpenEJB-tp4378502p4378502.html >>>> Sent from the OpenEJB Dev mailing list archive at Nabble.com. >>>> >>> >>> >>