[ 
https://issues.apache.org/jira/browse/TOMEE-2048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Svetlin Zarev updated TOMEE-2048:
---------------------------------
    Description: 
JTA 1.2 spec mandates that if a managed bean with TxType.NEVER is called from 
within a transaction, A TransactionalException with nested 
InvalidTransactionException must be thrown.

JTA 1.2 spec, section 3.7:
{code}
TxType.NEVER: If called outside a transaction context, managed bean method 
execution must then continue outside a transaction context.
If called inside a transaction context, a TransactionalException with a nested 
InvalidTransactionException must be thrown. 
{code}

But instead, TomEE throws 
{code}
11:58:36.337 [http-nio-8080-exec-7] ERROR java.lang.Throwable - 
java.rmi.RemoteException: Transactions not supported
11:58:36.339 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.core.transaction.TxNever.<init>(TxNever.java:47)
11:58:36.342 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.cdi.transactional.NeverInterceptor.getPolicy(NeverInterceptor.java:41)
11:58:36.345 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.cdi.transactional.InterceptorBase.intercept(InterceptorBase.java:66)
11:58:36.348 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.cdi.transactional.NeverInterceptor.intercept(NeverInterceptor.java:36)
11:58:36.352 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11:58:36.355 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
11:58:36.358 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
11:58:36.361 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
java.lang.reflect.Method.invoke(Method.java:606)
11:58:36.380 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:136)
11:58:36.385 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:63)
11:58:36.390 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:139)
{code}


  was:
JTA 1.2 spec mandates that if a managed bean with TxType.NEVER is called from 
within a transaction, A TransactionalException with nested 
InvalidTransactionException must be thrown:

{code}
TxType.NEVER: If called outside a transaction context, managed bean method 
execution must then continue outside a transaction context.
If called inside a transaction context, a TransactionalException with a nested 
InvalidTransactionException must be thrown
{code}

But instead, TomEE throws 
{code}
11:58:36.337 [http-nio-8080-exec-7] ERROR java.lang.Throwable - 
java.rmi.RemoteException: Transactions not supported
11:58:36.339 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.core.transaction.TxNever.<init>(TxNever.java:47)
11:58:36.342 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.cdi.transactional.NeverInterceptor.getPolicy(NeverInterceptor.java:41)
11:58:36.345 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.cdi.transactional.InterceptorBase.intercept(InterceptorBase.java:66)
11:58:36.348 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.openejb.cdi.transactional.NeverInterceptor.intercept(NeverInterceptor.java:36)
11:58:36.352 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11:58:36.355 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
11:58:36.358 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
11:58:36.361 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
java.lang.reflect.Method.invoke(Method.java:606)
11:58:36.380 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:136)
11:58:36.385 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:63)
11:58:36.390 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:139)
{code}



> JTA 1.2 compliance: TxNever called from within transaction must throw 
> TransactionalException
> --------------------------------------------------------------------------------------------
>
>                 Key: TOMEE-2048
>                 URL: https://issues.apache.org/jira/browse/TOMEE-2048
>             Project: TomEE
>          Issue Type: Bug
>            Reporter: Svetlin Zarev
>
> JTA 1.2 spec mandates that if a managed bean with TxType.NEVER is called from 
> within a transaction, A TransactionalException with nested 
> InvalidTransactionException must be thrown.
> JTA 1.2 spec, section 3.7:
> {code}
> TxType.NEVER: If called outside a transaction context, managed bean method 
> execution must then continue outside a transaction context.
> If called inside a transaction context, a TransactionalException with a 
> nested InvalidTransactionException must be thrown. 
> {code}
> But instead, TomEE throws 
> {code}
> 11:58:36.337 [http-nio-8080-exec-7] ERROR java.lang.Throwable - 
> java.rmi.RemoteException: Transactions not supported
> 11:58:36.339 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> org.apache.openejb.core.transaction.TxNever.<init>(TxNever.java:47)
> 11:58:36.342 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> org.apache.openejb.cdi.transactional.NeverInterceptor.getPolicy(NeverInterceptor.java:41)
> 11:58:36.345 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> org.apache.openejb.cdi.transactional.InterceptorBase.intercept(InterceptorBase.java:66)
> 11:58:36.348 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> org.apache.openejb.cdi.transactional.NeverInterceptor.intercept(NeverInterceptor.java:36)
> 11:58:36.352 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 11:58:36.355 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 11:58:36.358 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 11:58:36.361 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> java.lang.reflect.Method.invoke(Method.java:606)
> 11:58:36.380 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:136)
> 11:58:36.385 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:63)
> 11:58:36.390 [http-nio-8080-exec-7] ERROR java.lang.Throwable -         at 
> org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:139)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to