Mark Struberg created CDI-230:
---------------------------------
Summary: 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
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:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira