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

Antoine Sabot-Durand (JIRA) issues at jboss.org
Wed Apr 29 11:26:45 EDT 2015


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

Antoine Sabot-Durand commented on CDI-519:
------------------------------------------

what do you suggest?

# to forbid this or,
# to explicitly state that {{Instance<T>}} can be used to destroy any dependent scoped bean instance of T.

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

> 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
>
> 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.3.15#6346)


More information about the cdi-dev mailing list