[
https://issues.jboss.org/browse/JBAS-7218?page=com.atlassian.jira.plugin....
]
henk de boer commented on JBAS-7218:
------------------------------------
I tested this again with JBoss AS 7.1.2.Final-redhat-1, and now it works :)
E.g. executing the following code from within a Servlet, given the setup as described in
the forum reference now returns 2 distinct instances:
{code}
EntityManager entityManagerx = (EntityManager) new
InitialContext().lookup("java:comp/env/persistence/test");
EntityManager entityManagery = (EntityManager) new
InitialContext().lookup("java:comp/env/persistence/test");
{code}
ENC EM injection erroneously happens only once for web modules
--------------------------------------------------------------
Key: JBAS-7218
URL:
https://issues.jboss.org/browse/JBAS-7218
Project: Application Server 3 4 5 and 6
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: JBossAS-5.1.0.GA
Environment: Observed problem on Mac OS X 10.5.7 and Debian Lenny 64 bits using
JDK 6
Reporter: henk de boer
Assignee: Scott Marlow
Using a persistence-context-ref element in the web.xml of a web module, it appears that
this causes an EntityManager instance to be injected only once into the ENC of this
component.
However, the EJB 3.0 spec states in section 16.2.1:
"In general, lookups of objects in the JNDI java: namespace are required to return a
new instance of the requested object every time."
So the observed behavior seems to violate the spec. In addition, this is particularly
troublesome since an EntityManager is explicitly not thread-safe. Using the same EM
instance for simultaneous requests therefor doesn't work.
Of course there are several other methods to obtain an EM reference, for instance binding
an EM factory directly to JNDI and using that to obtain the reference.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira