[weld-dev] Dependent Scoped bean aquired by CDI.current() is not destroyed

Martin Kouba mkouba at redhat.com
Wed Aug 9 07:21:29 EDT 2017


FYI I've created https://issues.jboss.org/browse/WELD-2413

Martin

Dne 9.8.2017 v 12:41 Martin Kouba napsal(a):
> Hi Benjamin,
> 
> the lifecycle of @Dependent instances created through 
> javax.enterprise.inject.spi.CDI is not well defined. So it's always 
> better to destroy such instances when not needed. However, it would make 
> sense to destroy such instances during shutdown.
> 
> I believe this works in Weld SE. What environment/runtime do you use?
> 
> Martin
> 
> Dne 9.8.2017 v 11:52 Benjamin Confino napsal(a):
>> Hello
>>
>> I have a servlet that acquires two instances of a dependent scoped 
>> bean. The first is aquired by @Inject Instance<CdiBean> the second is 
>> acquired via CDI.current().select(CdiBean.class).get().
>>
>> I can see that the first instance's @PreDestroy is called when I shut 
>> down the application. However @PreDestroy is not called on the 
>> instance acquired CDI.current. Here is the source:
>>
>>
>>
>> My question is, is this behaviour intentional? And if it is, can you 
>> please link me to the appropriate part of the spec that says when we 
>> should expect a @Dependent bean created by CDI.current to be 
>> destroyed? I have a customer concerned about this causing a potential 
>> memory leak.
>>
>> Regards
>> Benjamin
>> Unless stated otherwise above:
>> IBM United Kingdom Limited - Registered in England and Wales with 
>> number 741598.
>> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
>> 3AU
>>
>>
>> _______________________________________________
>> weld-dev mailing list
>> weld-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/weld-dev
>>
> 

-- 
Martin Kouba
Senior Software Engineer
Red Hat, Czech Republic


More information about the weld-dev mailing list