tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Donatas Ciuksys (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TOMEE-509) Injected extended EntityManager is not registered (cannot be used for DB operations)
Date Thu, 01 Nov 2012 13:25:13 GMT

    [ https://issues.apache.org/jira/browse/TOMEE-509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13488685#comment-13488685
] 

Donatas Ciuksys commented on TOMEE-509:
---------------------------------------

I have asked EJB experts for their opinion:
http://java.net/projects/ejb-spec/lists/users/archive/2012-11/message/0

                
> Injected extended EntityManager is not registered (cannot be used for DB operations)
> ------------------------------------------------------------------------------------
>
>                 Key: TOMEE-509
>                 URL: https://issues.apache.org/jira/browse/TOMEE-509
>             Project: TomEE
>          Issue Type: Bug
>    Affects Versions: 1.5.0, 1.5.1
>         Environment: Windows 7 x64; jdk1.7.0_09 32 bit; apache-tomee-1.5.1-20121026.064316-51-webprofile.zip
>            Reporter: Donatas Ciuksys
>            Priority: Critical
>
> 1. Create class EntityManagerProducer:
> @SessionScoped
> @Stateful
> public class EntityManagerProducer implements Serializable {
>     
>     @PersistenceContext(type=PersistenceContextType.EXTENDED)
>     private EntityManager em;
>     
>     @Produces
>     public EntityManager getEntityManager() {
>         return em;
>     }
> }
> 2. Create injection client:
> @Named
> public class A {
>     
>     @Inject
>     private EntityManager em;
>     public String getDelegateClassName() {
>         return em.getDelegate().getClass().getCanonicalName();
>     }
>     
> }
> 3. Create JSF page and try to call getDelegateClassName():
>     <h:body>
>         EntityManager is open: #{a.delegateClassName}
>     </h:body>
> 4. Deploy (successful) and run the application - observe error message (printed in browser):
> An Error Occurred:
> InternalError: an entity manager should already be registered for this extended persistence
unit
> viewId=/index.xhtml
> location=D:\dev\proj\templates\InjectionDemo\build\web\index.xhtml
> phaseId=RENDER_RESPONSE(6)
> Caused by:
> java.lang.IllegalStateException - InternalError: an entity manager should already be
registered for this extended persistence unit
> at org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:99)
> - Stack Trace
> java.lang.IllegalStateException: InternalError: an entity manager should already be registered
for this extended persistence unit
> 	at org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:99)
> 	at org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:80)
> 	at org.apache.openejb.persistence.JtaEntityManager.getDelegate(JtaEntityManager.java:114)
> 	at org.apache.openejb.persistence.JtaEntityManager.getDelegate(JtaEntityManager.java:53)
> 	at beans.A.getDelegateClassName(A.java:19)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ...

--
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

Mime
View raw message