[
https://issues.jboss.org/browse/CDI-519?page=com.atlassian.jira.plugin.sy...
]
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)