Change By: Martin Kouba (15/Oct/12 7:23 AM)
Description: Weld does not follow the Interceptors spec. See also "Multiple Callback Interceptor Methods for a Life Cycle Callback Event" chapter:
{quote}
* ...
* If a lifecycle callback interceptor method is overridden by another method (regardless of whether that method is itself a lifecycle callback interceptor method (of the same or different type)), it will not be invoked.
* ...
{quote}
Check the following use cases:
{code}
class Bar {
  @PostConstruct
  public void init() {
  }
}
class Foo extends Bar {
  @PostConstruct // Overrides Bar#init()
  public void init() {
  }
}
{code}
-> Bar#init() should not be invoked, but Foo#init() is invoked twice!

{code}
class Bar {
  @PostConstruct
  public void init() {
  }
}
class Foo extends Bar {
  // Overrides Bar#init()  
  public void init() {
  }
}
{code}
-> Neither one of init() methods should be invoked, but Foo#init() is invoked!

Right now there is no CDI TCK test for this - I will probably provide some as soon as I get familiar with the relationship of concerned specs.


Thanks to JJ Snyder for reporting the issue.
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira