[
https://issues.jboss.org/browse/AS7-3402?page=com.atlassian.jira.plugin.s...
]
Scott Marlow edited comment on AS7-3402 at 4/17/12 8:31 PM:
------------------------------------------------------------
Question I would like to answer. Should we eat (and log) the Hibernate exception or
squish the exception chain (and also log any squished exceptions)?
Perhaps the squished form of the exception could be represented as follows:
exception1 = javax.ejb.EJBTransactionRolledbackException("Transaction rolled
back")
exception1.cause = exception2
exception2 = javax.transaction.RollbackException("ARJUNA016053: Could not commit
transaction.")
exception2.cause = exception3
exception3 =
javax.persistence.OptimisticLockException("org.hibernate.StaleObjectStateException:
Row was updated or deleted by another transaction (or unsaved-value mapping was
incorrect):
[org.spec.jent.ejb.mfg.entity.Inventory#org.spec.jent.ejb.mfg.entity.InventoryPK@3a43e66f]")
exception3.cause = null
If this had been a long chain of SQUISHED exceptions, we could append the exception class
name + exception message together (as well as logging the original chain so the cause can
be determined).
was (Author: smarlow):
Question I would like to answer. Should we eat (and log) the Hibernate exception or
squish the exception chain (and also log any squished exceptions)?
Perhaps the squished form of the exception could be represented as follows:
exception1 = javax.ejb.EJBTransactionRolledbackException("Transaction rolled
back")
exception1.cause = exception2
exception2 = javax.transaction.RollbackException("ARJUNA016053: Could not commit
transaction.")
exception2.cause = exception3
exception3 =
javax.persistence.OptimisticLockException("org.hibernate.StaleObjectStateException:
Row was updated or deleted by another transaction (or unsaved-value mapping was
incorrect):
[org.spec.jent.ejb.mfg.entity.Inventory#org.spec.jent.ejb.mfg.entity.InventoryPK@3a43e66f]")
exception3.cause = null
If this had been a long chain of exceptions, we could append the exception class name +
exception message together (as well as logging the original chain so the cause can be
determined).
Xnio stream closed after OptimisticLockException
------------------------------------------------
Key: AS7-3402
URL:
https://issues.jboss.org/browse/AS7-3402
Project: Application Server 7
Issue Type: Bug
Components: EJB
Affects Versions: 7.1.0.CR1b
Reporter: Denis Pavlishin
Assignee: jaikiran pai
Priority: Blocker
Labels: ejb, jboss, xnio
Fix For: 7.1.2.Final-redhat1
Attachments: server.log
Sometimes (1 or 2 times a day) I get the following error, after which JBoss not accept
remote connections to the EJB module and my application shutdown.
18:24:47,114 ERROR
[org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler]
(pool-9-thread-7) Error invoking method public abstract java.util.Collection
ejbserver.session.combat.CombatSession.endCombat(java.lang.Integer) on bean named
CombatSessionBean for appname modulename EjbModule distinctname :
javax.ejb.EJBTransactionRolledbackException: Transaction rolled back
at
org.jboss.as.ejb3.tx.CMTTxInterceptor.handleEndTransactionException(CMTTxInterceptor.java:115)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:95)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:232)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at
org.jboss.as.ejb3.remote.EJBRemoteTransactionPropogatingInterceptor.processInvocation(EJBRemoteTransactionPropogatingInterceptor.java:80)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at
org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at
org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at
org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:57)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at
org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
at
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:283)
at
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$200(MethodInvocationMessageHandler.java:61)
at
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:191)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [:1.6.0_23]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [:1.6.0_23]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [:1.6.0_23]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_23]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_23]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_23]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
[jboss-threads-2.0.0.GA.jar:2.0.0.GA]
Caused by: javax.transaction.RollbackException: ARJUNA016053: Could not commit
transaction.
at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1174)
at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:119)
at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:92)
... 26 more
Caused by: javax.persistence.OptimisticLockException
at
org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:1382)
at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1303)
at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1284)
at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1290)
at
org.hibernate.ejb.AbstractEntityManagerImpl$CallbackExceptionMapperImpl.mapManagedFlushFailure(AbstractEntityManagerImpl.java:1476)
at
org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:109)
at
org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:53)
at
com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:97)
at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:274)
at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:94)
at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:159)
at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1162)
... 29 more
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another
transaction (or unsaved-value mapping was incorrect):
[ejbserver.jpa.entity.users.User#385952]
at
org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:2359)
at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3010)
at
org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2908)
at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3237)
at
org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:113)
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:265)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:187)
at
org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:323)
at
org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1081)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315)
at
org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:104)
... 35 more
18:24:47,117 ERROR
[org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler]
(pool-9-thread-7) Could not write method invocation failure for method public abstract
java.util.Collection ejbserver.session.combat.CombatSession.endCombat(java.lang.Integer)
on bean named CombatSessionBean for appname modulename EjbModule distinctname due to :
java.io.IOException: Stream is closed
at org.xnio.streams.BufferPipeOutputStream.closed(BufferPipeOutputStream.java:61)
[xnio-api-3.0.0.CR7.jar:3.0.0.CR7]
at org.xnio.streams.BufferPipeOutputStream.checkClosed(BufferPipeOutputStream.java:67)
[xnio-api-3.0.0.CR7.jar:3.0.0.CR7]
at org.xnio.streams.BufferPipeOutputStream.write(BufferPipeOutputStream.java:85)
[xnio-api-3.0.0.CR7.jar:3.0.0.CR7]
at org.jboss.remoting3.remote.OutboundMessage.write(OutboundMessage.java:161)
[jboss-remoting-3.2.0.CR8.jar:3.2.0.CR8]
at java.io.DataOutputStream.write(DataOutputStream.java:71) [:1.6.0_23]
at
org.jboss.as.ejb3.remote.protocol.versionone.AbstractMessageHandler$1.write(AbstractMessageHandler.java:183)
at java.io.FilterOutputStream.write(FilterOutputStream.java:60) [:1.6.0_23]
at java.io.FilterOutputStream.write(FilterOutputStream.java:108) [:1.6.0_23]
at org.jboss.marshalling.SimpleDataOutput.shallowFlush(SimpleDataOutput.java:328)
[jboss-marshalling-1.3.4.GA.jar:1.3.4.GA]
at org.jboss.marshalling.river.RiverMarshaller.writeString(RiverMarshaller.java:1445)
at
org.jboss.marshalling.river.RiverMarshaller.writeNewSerializableClass(RiverMarshaller.java:1356)
at
org.jboss.marshalling.river.RiverMarshaller.writeSerializableClass(RiverMarshaller.java:1339)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:877)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1057)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1013)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:879)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1057)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1013)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:879)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1057)
at
org.jboss.marshalling.river.RiverObjectOutputStream.defaultWriteObject(RiverObjectOutputStream.java:159)
at java.lang.Throwable.writeObject(Throwable.java:648) [:1.6.0_23]
at sun.reflect.GeneratedMethodAccessor479.invoke(Unknown Source) [:1.6.0_23]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[:1.6.0_23]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23]
at
org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:173)
[jboss-marshalling-1.3.4.GA.jar:1.3.4.GA]
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1001)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:992)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:992)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:879)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1057)
at
org.jboss.marshalling.river.RiverObjectOutputStream.defaultWriteObject(RiverObjectOutputStream.java:159)
at java.lang.Throwable.writeObject(Throwable.java:648) [:1.6.0_23]
at sun.reflect.GeneratedMethodAccessor479.invoke(Unknown Source) [:1.6.0_23]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[:1.6.0_23]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23]
at
org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:173)
[jboss-marshalling-1.3.4.GA.jar:1.3.4.GA]
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1001)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:992)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:992)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:992)
at
org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:992)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:879)
at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62)
[jboss-marshalling-1.3.4.GA.jar:1.3.4.GA]
at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119)
[jboss-marshalling-1.3.4.GA.jar:1.3.4.GA]
at
org.jboss.as.ejb3.remote.protocol.versionone.AbstractMessageHandler.writeException(AbstractMessageHandler.java:100)
at
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:195)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [:1.6.0_23]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [:1.6.0_23]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [:1.6.0_23]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_23]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_23]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_23]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
[jboss-threads-2.0.0.GA.jar:2.0.0.GA]
Caused by: an exception which occurred:
in field friends
in field entity
in field cause
in field cause
in object javax.ejb.EJBTransactionRolledbackException@6e2b05ea
--
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