-
Bug
-
Resolution: Done
-
Major
-
1.1.5.Final, 2.0.0.Alpha3
-
None
-
None
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.
Thanks to JJ Snyder for reporting the issue.
- relates to
-
WELD-1322 @PostConstruct not executed in superclass since 2.0.0.Beta1
- Resolved