[cdi-dev] @PostConstruct on inherited class

JJ Snyder j.j.snyder at oracle.com
Fri Oct 12 10:19:24 EDT 2012


Martin,
I'm using GlassFish and I tested it with Weld 1.1.4.Final and 
1.1.9.Final and both give the same results.

I'll create some variations of the method hierarchy and see what I get.

Maybe my test app is laid out incorrectly...Can you send me the test app 
that you used where it works and I'll run it in my env?

JJ

On 10/12/2012 10:05 AM, Martin Kouba wrote:
> Hi JJ,
>
> I believe Y.init() should be invoked and only once. It works for me on 
> AS7 and Weld 1.1.5. What container do you use?
>
> See also Interceptors 1.1 spec, chapter "Multiple Callback Interceptor 
> Methods for a Life Cycle Callback Event":
> "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."
>
> By the way if X.init() wasn't overriden, it would be invoked first 
> (see the same chapter in spec).
>
> Martin
>
> Dne 11.10.2012 22:53, JJ Snyder napsal(a):
>> I'm investigating an issue dealing with @PostConstruct...
>> Suppose I have the following 2 classes:
>>
>> public class X {
>>     @PostConstruct
>>     public void init() {
>>     }
>> }
>>
>> public class Y extends X {
>>     @PostConstruct
>>     public void init() {
>>     }
>> }
>>
>> and then in some other class I inject Y:
>> public class Other {
>>     @Inject Y y;
>>
>>     public void foo() {
>>     y.doSomething();
>> }
>>
>> According to the specs it's legal to have @PostConstruct defined on both
>> X and Y.  Also because Y defines init() it does not inherit X's init()
>> method (section 4.2). So when an instance of Y is created which init()
>> methods should be called for the @PostConstruct?  What I am observing is
>> that Y's init() method is called twice.  Is this correct?  I can't find
>> any examples or any documentation that talks about this specific case.
>>
>> thanks,
>> JJ
>> _______________________________________________
>> cdi-dev mailing list
>> cdi-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/cdi-dev
>>


More information about the cdi-dev mailing list