[weld-dev] Dependent Scoped bean aquired by CDI.current() is not destroyed
mkouba at redhat.com
Wed Aug 9 07:21:29 EDT 2017
FYI I've created https://issues.jboss.org/browse/WELD-2413
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?
> Dne 9.8.2017 v 11:52 Benjamin Confino napsal(a):
>> 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.
>> 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
>> weld-dev mailing list
>> weld-dev at lists.jboss.org
Senior Software Engineer
Red Hat, Czech Republic
More information about the weld-dev