[cdi-dev] [JBoss JIRA] (CDI-519) Instance.destroy() cannot be used for dependent bean instances not created by the same Instance object

Sven Linstaedt (JIRA) issues at jboss.org
Tue Sep 8 08:22:00 EDT 2015


    [ https://issues.jboss.org/browse/CDI-519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13106296#comment-13106296 ] 

Sven Linstaedt commented on CDI-519:
------------------------------------

{quote}
In your example if we go for 1, there will be no solution to destroy the instance you requested thru CDI.
{quote}

I would expect {{CDI}} as an {{Instance}} implementation to be dependent scoped and therefore live as long as {{CDI.current()}} returns the same instance. The later point is afaik not defined, but from my point of view, this {{Instance}}'s lifecycle is bound to the {{BeanManager}}'s one, as CDI.current() is available as long as the associated BeanManager is, which is the case at least for Weld as Martin stated.

> Instance.destroy() cannot be used for dependent bean instances not created by the same Instance object
> ------------------------------------------------------------------------------------------------------
>
>                 Key: CDI-519
>                 URL: https://issues.jboss.org/browse/CDI-519
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>    Affects Versions: 1.2.Final
>            Reporter: Martin Kouba
>             Fix For: 2.0 (discussion)
>
>
> 5.6.1. The Instance interface:
> {quote}
> The method destroy() instructs the container to destroy the instance. The bean instance passed to destroy() should be *a dependent scoped bean instance*, or...
> {quote}
> I think this should be more obvious. E.g. this wouldn't work correctly even though it doesn't violate the spec:
> {code:java}
> @Dependent
> class Bar {
> }
> class Foo {
>   @Inject
>   Instance<Bar> instance;
>   void ping() {
>     instance.destroy(CDI.current().select(Bar.class).get());
>   }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the cdi-dev mailing list