[
https://issues.jboss.org/browse/SEAMTRANSACTION-7?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12644614#comment-12644614
]
ratking commented on SEAMTRANSACTION-7:
---------------------------------------
The following is an excerpt from "JSR-000318 Enterprise JavaBeans 3.1 Proposed
Final Draft Specification".
(http://download.oracle.com/otndocs/jcp/ejb-3.1-pfd-oth-JSpec/)
section 4.6.1 (page 95)
The UserTransaction interface is unavailable to enterprise beans with
container-managed transaction demarcation.
section 16.12 (page 473)
The container must not make the UserTransaction interface available to the
enterprise beans that are not allowed to use this interface. The container
should throw javax.naming.NameNotFoundException if an instance of an enterprise
bean that is not allowed to use the UserTransactioninterface attempts to look
up the interface in JNDI using the JNDI APIs.
> DefaultSeamTransaction should catch NamingException instead of
> NameNotFoundException
> ------------------------------------------------------------------------------------
>
> Key: SEAMTRANSACTION-7
> URL: https://issues.jboss.org/browse/SEAMTRANSACTION-7
> Project: Seam Transaction
> Issue Type: Bug
> Affects Versions: 3.1.0.Beta4
> Environment: Seam 3.1.0.beta4
> GlassFish 3.1.1/3.1.2.b10
> Weld 1.1.3.Final/1.1.4-SNAPSHOT(build: 2011-11-22)
> JDK 1.6.0_29
> Windows XP SP3
> Reporter: ratking
> Assignee: Stuart Douglas
>
> When use SMPC(Seam Managed Persistence Context) within a session
> bean(stateless or stateful),
> NamingException was thrown from DefaultSeamTransaction line 123 and line 143.
> This issue cause the sentence from line 144 to line 154 never been invoked.
> DefaultSeamTransaction should catch NamingException instead of
> NameNotFoundException (need modify at line 143).
> When use SMPC(Seam Managed Persistence Context) within a pojo bean, no
> exception was thrown.
> In addition, the case that SMPC can't use within session bean should be
> announced in the Seam Reference Documentation.
> In other word, I found that SMPC is incompatible with SessionBean in
> GlassFish.
> =============
> Caused by: java.lang.RuntimeException: javax.naming.NamingException: Lookup
> failed for 'java:comp/UserTransaction' in
> SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
>
> java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is
> javax.naming.NameNotFoundException: Lookup of java:comp/UserTransaction not
> allowed for Container managed Transaction beans]
> at
> org.jboss.seam.transaction.DefaultSeamTransaction.getSeamTransaction(DefaultSeamTransaction.java:123)
> at
> org.jboss.seam.transaction.DefaultSeamTransaction.isActive(DefaultSeamTransaction.java:52)
> at
> org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.joinTransaction(ManagedPersistenceContextProxyHandler.java:113)
> at
> org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.invoke(ManagedPersistenceContextProxyHandler.java:102)
> at $Proxy832.createQuery(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:44)
> at
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:105)
> at
> org.jboss.weld.proxies.EntityManager$FullTextEntityManager$ManagedPersistenceContext$-633155436$Proxy$_$$_WeldClientProxy.createQuery(EntityManager$FullTextEntityManager$ManagedPersistenceContext$-633155436$Proxy$_$$_WeldClientProxy.java)
> at
> com.hantsylabs.seam3sandbox.view.PostHome.getDataModel(PostHome.java:34)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
> at
> org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
> at
> com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5382)
> at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
> at
> com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
> at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
> at
> org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:42)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)
> at
> com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
> at
> com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370)
> at
> com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5354)
> at
> com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5342)
> at
> com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)
> ... 84 more
> Caused by: javax.naming.NamingException: Lookup failed for
> 'java:comp/UserTransaction' in
> SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
>
> java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
> java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is
> javax.naming.NameNotFoundException: Lookup of java:comp/UserTransaction not
> allowed for Container managed Transaction beans]
> at
> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)
> at
> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
> at javax.naming.InitialContext.lookup(InitialContext.java:392)
> at javax.naming.InitialContext.lookup(InitialContext.java:392)
> at
> org.jboss.seam.transaction.DefaultSeamTransaction.getUserTransaction(DefaultSeamTransaction.java:142)
> at
> org.jboss.seam.transaction.DefaultSeamTransaction.createUTTransaction(DefaultSeamTransaction.java:136)
> at
> org.jboss.seam.transaction.DefaultSeamTransaction.getSeamTransaction(DefaultSeamTransaction.java:113)
> ... 117 more
> Caused by: javax.naming.NameNotFoundException: Lookup of
> java:comp/UserTransaction not allowed for Container managed Transaction beans
> at
> com.sun.ejb.containers.BaseContainer.checkUserTransactionLookup(BaseContainer.java:838)
> at
> com.sun.ejb.EjbInvocation.userTransactionLookupAllowed(EjbInvocation.java:427)
> at
> com.sun.enterprise.transaction.TransactionNamingProxy.checkUserTransactionLookupAllowed(TransactionNamingProxy.java:162)
> at
> com.sun.enterprise.transaction.TransactionNamingProxy.handle(TransactionNamingProxy.java:135)
> at
> com.sun.enterprise.naming.impl.NamedNamingObjectManager.tryNamedProxies(NamedNamingObjectManager.java:89)
> at
> com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:174)
> at
> com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:498)
> ... 123 more
--
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
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues