[ 
https://issues.apache.org/jira/browse/OWB-456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Covener resolved OWB-456.
------------------------------

      Assignee: Eric Covener  (was: Gurkan Erdogdu)
    Resolution: Fixed

Thanks Rohit -- committed in r1002180.

> When multiple interceptors  are defined for a bean OWB does NOT correctly  
> remove the overriden base Interceptors 
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: OWB-456
>                 URL: https://issues.apache.org/jira/browse/OWB-456
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Interceptor and Decorators
>    Affects Versions: 1.0.0-alpha-3
>         Environment: Windows Server 2003 
>            Reporter: Rohit Dilip Kelapure
>            Assignee: Eric Covener
>             Fix For: 1.0.0-GA, 1.0.0-alpha-4
>
>         Attachments: OWB-456.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> EJB 3.0 spec. mandates that 
> - If a bean class has superclasses, any AroundInvoke methods defined on those 
> superclasses are invoked, most general superclass first.
> - If an AroundInvoke method is overridden by another method (regardless of 
> whether that method is itself an AroundInvoke method), it will not be invoked 
> In some cases OWB does not remove the overriden parent interceptor from the 
> Interceptor stack of a bean leading to TCK failures like these ... 
> @Test
>    @SpecAssertions({
>       @SpecAssertion(section = "1", id = "i"),
>       @SpecAssertion(section = "3", id= "b"),
>       @SpecAssertion(section = "3.1", id= "c"),
>       @SpecAssertion(section = "3.1", id= "d"),
>       @SpecAssertion(section = "3.1", id= "e"),
>       @SpecAssertion(section = "3.1", id= "f"),
>       @SpecAssertion(section = "3.1", id= "g"),
>       @SpecAssertion(section = "8", id = "e")
>    })
>    public void testInvocationOrder() {
>       ...
>       assert !Interceptor1.isOverridenMethodCalled();  // Error here
>    }
> Error:
> java.lang.AssertionError
>       at 
> org.jboss.jsr299.tck.interceptors.tests.aroundInvoke.order.InvocationOrderTest.testInvocationOrder(InvocationOrderTest.java:43)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> In this case
> @Interceptors( { Interceptor1.class, Interceptor3.class })
> class Tram extends RailVehicle  {
> }
> Inspite of Interceptor1 overriding OverridenInterceptor we see  
> OverridenInterceptor.intercept being called.
> org.jboss.jsr299.tck.interceptors.tests.aroundInvoke.order.InvocationOrderTest
>  is the failing TCK test.       

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to