]
Pete Muir resolved CDI-230.
---------------------------
Assignee: Pete Muir
Resolution: Rejected
We will address via a FAQ/stackoverflow.
Clarify that some Scope constellations for producer fields result in
non portable behaviour
-------------------------------------------------------------------------------------------
Key: CDI-230
URL:
https://issues.jboss.org/browse/CDI-230
Project: CDI Specification Issues
Issue Type: Clarification
Components: Beans
Affects Versions: 1.1.EDR1
Reporter: Mark Struberg
Assignee: Pete Muir
Fix For: 1.1 (Proposed)
We should add something like the following to the producer-field paragraph:
"When a producer field produces a bean with a 'shorter' Lifecycle than the
scope of the class the producer field is defined in, non-portable behaviour
results."
An example:
{code}
@ApplicationScoped
public class ContainerBean {
@Produces @RequestScoped
Something something = new Something(1, 2, 3);
void throwAway(@Disposes Something sthg) {
sthg.destroyMe();
}
}
{code}
The problem is that each request will take 'something' from the
@ApplicationScoped ContainerBean. Thus all requests share the same contextual instance!
Afer the first request ends, the disposal method 'throwAway' will destroy the
information inside the variable 'something' and leaves it in a broken state for
all other requests -> bang...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: