Thank you all for your comments.
Jean-Louis,
Currently there is no exception handling in my stateless session bean.
So I tried to add an exception handling in a function which causes
OptimisticLockException in the bean.
However, any log message by logger inside the added "catch" clause does not
come out on the system console or catalina.log. But outside the "catch"
clause, for example inside "try" clause, all log message by logger come out
on the system console and catalina.log. So it seems like the exception
cannot be caught by "catch (Exception e)". Do you mean that I need to add
"em.flush()" in the catch() clause? After calling em.flush(), how can I
handle OptimisticLockException?
Bertrand,
I am sorry that I do not know how to adopt the interceptors to my
application so far. I need to investigate about this more.
Romain,
I tried getcause().getcause()..., but I was not able to get
OptimisticLockException.
The following is the stack trace.
>>>>>>>>> Stack Trace <<<<<<<<<<<<<<<<<<<<
javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back,
presum
ably because setRollbackOnly was called during a synchronization
at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(Base
EjbProxyHandler.java:345)
at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHa
ndler.java:283)
at $Proxy92.updateCar(Unknown Source)
at
org.primefaces.examples.view.TableBean.updateCar(TableBean.java:227)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHa
ndler.java:322)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invo
ke(NormalScopedBeanInterceptorHandler.java:117)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invo
ke(NormalScopedBeanInterceptorHandler.java:108)
at
org.primefaces.examples.view.TableBean_$$_javassist_6.updateCar(Table
Bean_$$_javassist_6.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
at
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:2
74)
at
org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.i
nvoke(ContextAwareTagMethodExpression.java:96)
at
org.apache.myfaces.application.ActionListenerImpl.processAction(Actio
nListenerImpl.java:68)
at javax.faces.component.UICommand.broadcast(UICommand.java:120)
at javax.faces.component.UIData.broadcast(UIData.java:1596)
at javax.faces.component.UIData.broadcast(UIData.java:1596)
at
javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1028)
at
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:286)
at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1375)
at
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:7
52)
at
org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(Invoke
ApplicationExecutor.java:38)
at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl
.java:170)
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java
:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:123)
at
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:99)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
929)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
11Processor.java:1002)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:585)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
t.java:310)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.transaction.RollbackException: Unable to commit:
transaction ma
rked for rollback
at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(Transa
ctionImpl.java:272)
at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit
(TransactionManagerImpl.java:252)
at
org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTran
saction(JtaTransactionPolicy.java:328)
at
org.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java
:75)
at
org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(Ej
bTransactionUtil.java:73)
at
org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateles
sContainer.java:257)
at
org.apache.openejb.core.stateless.StatelessContainer.invoke(Stateless
Container.java:189)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusines
sMethod(EjbObjectProxyHandler.java:253)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbO
bjectProxyHandler.java:248)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectPr
oxyHandler.java:92)
at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHa
ndler.java:279)
... 46 more
Caused by: org.apache.geronimo.transaction.manager.SetRollbackOnlyException:
set
RollbackOnly() called. See stacktrace for origin
at
org.apache.geronimo.transaction.manager.TransactionImpl.setRollbackOn
ly(TransactionImpl.java:126)
at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.setRol
lbackOnly(TransactionManagerImpl.java:243)
at
org.apache.openejb.core.TransactionSynchronizationRegistryWrapper.set
RollbackOnly(TransactionSynchronizationRegistryWrapper.java:71)
at
org.apache.openjpa.ee.RegistryManagedRuntime$TransactionManagerRegist
ryFacade.setRollbackOnly(RegistryManagedRuntime.java:128)
at
org.apache.openjpa.ee.RegistryManagedRuntime.setRollbackOnly(Registry
ManagedRuntime.java:74)
at
org.apache.openjpa.ee.AutomaticManagedRuntime.setRollbackOnly(Automat
icManagedRuntime.java:274)
at
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnlyInternal(BrokerIm
pl.java:1660)
at
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnly(BrokerImpl.java:
1640)
at
org.apache.openjpa.kernel.DelegatingBroker.setRollbackOnly(Delegating
Broker.java:981)
at
org.apache.openjpa.persistence.EntityManagerImpl.setRollbackOnly(Enti
tyManagerImpl.java:631)
at
org.apache.openjpa.persistence.PersistenceExceptions$2.translate(Pers
istenceExceptions.java:77)
at
org.apache.openjpa.kernel.BrokerImpl.translateManagedCompletionExcept
ion(BrokerImpl.java:2060)
at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java
:1994)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeComplet
ion(TransactionImpl.java:527)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeComplet
ion(TransactionImpl.java:512)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare
(TransactionImpl.java:413)
at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(Transa
ctionImpl.java:262)
... 56 more
--
View this message in context:
http://openejb.979440.n4.nabble.com/How-can-I-catch-OptimisticLockException-tp4658313p4658335.html
Sent from the OpenEJB User mailing list archive at Nabble.com.