Issue Type: Bug Bug
Affects Versions: 2.0.0.Alpha3, 1.1.5.Final
Assignee: Unassigned
Created: 15/Oct/12 6:47 AM
Description:

Weld does not follow the Interceptors spec. See also "Multiple Callback Interceptor Methods for a Life Cycle Callback Event" chapter:

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

Check the following use cases:

class Bar {
  @PostConstruct
  public void init() {
  }
}
class Foo extends Bar {
  @PostConstruct // Overrides Bar#init()
  public void init() {
  }
}

-> Bar#init() should not be invoked, but Foo#init() is invoked twice!

class Bar {
  @PostConstruct
  public void init() {
  }
}
class Foo extends Bar {
  // Overrides Bar#init()  
  public void init() {
  }
}

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

Project: Weld
Priority: Major Major
Reporter: Martin Kouba
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