OptimisticLockException [message #685308] |
Fri, 17 June 2011 04:36  |
Eclipse User |
|
|
|
I'm a bit confused and could use some pointers on where to look. Just now one of my users has gotten this exception:
javax.persistence.OptimisticLockException: Exception [EclipseLink-5010] (Eclipse
Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptio
ns.OptimisticLockException
Exception Description: The object [nl.reinders.bm.Batch@1e91f89&Batchnr=865505]
cannot be merged because it has changed or been deleted since it was last read.
Class> nl.reinders.bm.Batch
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.mergeInternal(
EntityManagerImpl.java:416)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.merge(EntityMa
nagerImpl.java:391)
at nl.knowledgeplaza.util.jpa.EntityManagerExtender.executeDelayedAction
s(EntityManagerExtender.java:187)
at nl.knowledgeplaza.util.jpa.EntityTransactionExtender.invoke(EntityTra
nsactionExtender.java:82)
at $Proxy7.commit(Unknown Source)
at org.tbee.swing.jpa.JpaObjectNavigatorModel$1.call(JpaObjectNavigatorM
odel.java:954)
at org.tbee.swing.jpa.JpaObjectNavigatorModel.doSave(JpaObjectNavigatorM
odel.java:966)
at org.tbee.swing.jpa.JpaObjectNavigatorModel.doSave(JpaObjectNavigatorM
odel.java:907)
at org.tbee.swing.jpa.JpaObjectNavigatorBar$3.actionPerformed(JpaObjectN
avigatorBar.java:171)
....
==== cause:
Local Exception Stack:
Exception [EclipseLink-5010] (Eclipse Persistence Services - 2.0.2.v20100323-r68
72): org.eclipse.persistence.exceptions.OptimisticLockException
Exception Description: The object [nl.reinders.bm.Batch@1e91f89&Batchnr=865505]
cannot be merged because it has changed or been deleted since it was last read.
Class> nl.reinders.bm.Batch
at org.eclipse.persistence.exceptions.OptimisticLockException.objectChan
gedSinceLastMerge(OptimisticLockException.java:145)
at org.eclipse.persistence.internal.sessions.MergeManager.mergeChangesOf
CloneIntoWorkingCopy(MergeManager.java:490)
at org.eclipse.persistence.internal.sessions.MergeManager.mergeChanges(M
ergeManager.java:267)
at org.eclipse.persistence.mappings.CollectionMapping.mergeIntoObject(Co
llectionMapping.java:1404)
at org.eclipse.persistence.internal.descriptors.ObjectBuilder.mergeIntoO
bject(ObjectBuilder.java:2678)
at org.eclipse.persistence.internal.sessions.MergeManager.mergeChangesOf
CloneIntoWorkingCopy(MergeManager.java:506)
at org.eclipse.persistence.internal.sessions.MergeManager.mergeChanges(M
ergeManager.java:267)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWi
thReferences(UnitOfWorkImpl.java:3523)
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.m
ergeCloneWithReferences(RepeatableWriteUnitOfWork.java:301)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWi
thReferences(UnitOfWorkImpl.java:3483)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.mergeInternal(
EntityManagerImpl.java:414)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.merge(EntityMa
nagerImpl.java:391)
....
On the batch entity there are Eclipse native events active that update two fields (dwhmodified and dwhby) that hold the timestamp and user of the latest modification.
If I look at these two values:
dwhmodified dwhby
2011-05-18 10:57:02 53
I see that the modified date is almost a month old.
Question: Is it possible that a version of a entity is increased without triggering the insert or update events?
It turns out that this entity should not be involved in this mutation at all, so I need to figure out how and what is done to it. Unfortunately this is one of those once-a-day problems.
Tom
|
|
|
|
|
Powered by
FUDForum. Page generated in 1.33950 seconds