[
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.