Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 334659 - Reoccurring ConcurrentModificationExceptions at commits of 1 transaction at the time.
Summary: Reoccurring ConcurrentModificationExceptions at commits of 1 transaction at t...
Status: CLOSED DUPLICATE of bug 329254
Alias: None
Product: EMF
Classification: Modeling
Component: cdo.core (show other bugs)
Version: 4.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Eike Stepper CLA
QA Contact: Eike Stepper CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-18 10:28 EST by Wim Bast CLA
Modified: 2011-01-25 13:57 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wim Bast CLA 2011-01-18 10:28:37 EST
Build Identifier: 4.0

Exception:

       java.util.ConcurrentModificationException: Attempt by Transaction[43:1] to modify historical revision: Blob@OID20383 <mailto:Blob@OID20383 <mailto:Blob@OID20383>>:0v112
       org.eclipse.net4j.signal.RemoteException: java.util.ConcurrentModificationException: Attempt by Transaction[43:1] to modify historical revision: Blob@OID20383 <mailto:Blob@OID20383 <mailto:Blob@OID20383>>:0v112


       at org.eclipse.net4j.signal.RequestWithConfirmation.setRemoteException(RequestWithConfirmation.java:128)
       at org.eclipse.net4j.signal.SignalProtocol.handleRemoteException(SignalProtocol.java:423)
       at org.eclipse.net4j.signal.RemoteExceptionIndication.indicating(RemoteExceptionIndication.java:63)
       at org.eclipse.net4j.signal.Indication.doExtendedInput(Indication.java:55)
       at org.eclipse.net4j.signal.Signal.doInput(Signal.java:316)
       at org.eclipse.net4j.signal.Indication.execute(Indication.java:49)
       at org.eclipse.net4j.signal.Signal.runSync(Signal.java:241)
       at org.eclipse.net4j.signal.Signal.run(Signal.java:147)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
       at java.lang.Thread.run(Unknown Source)
       Caused by: java.util.ConcurrentModificationException: Attempt by Transaction[43:1] to modify historical revision: Blob@OID20383 <mailto:Blob@OID20383 <mailto:Blob@OID20383>>:0v112


       at org.eclipse.emf.cdo.internal.server.TransactionCommitContext.computeDirtyObject(TransactionCommitContext.java:871)
       at org.eclipse.emf.cdo.internal.server.TransactionCommitContext.computeDirtyObjects(TransactionCommitContext.java:841)
       at org.eclipse.emf.cdo.internal.server.TransactionCommitContext.write(TransactionCommitContext.java:381)
       at org.eclipse.emf.cdo.spi.server.InternalCommitContext$1.runLoop(InternalCommitContext.java:40)
       at org.eclipse.emf.cdo.spi.server.InternalCommitContext$1.runLoop(InternalCommitContext.java:1)
       at org.eclipse.net4j.util.om.monitor.ProgressDistributor.run(ProgressDistributor.java:96)
       at org.eclipse.emf.cdo.server.internal.net4j.protocol.CommitTransactionIndication.indicatingCommit(CommitTransactionIndication.java:231)
       at org.eclipse.emf.cdo.server.internal.net4j.protocol.CommitTransactionIndication.indicating(CommitTransactionIndication.java:88)
       at org.eclipse.emf.cdo.server.internal.net4j.protocol.CDOServerIndicationWithMonitoring.indicating(CDOServerIndicationWithMonitoring.java:109)
       at org.eclipse.net4j.signal.IndicationWithMonitoring.indicating(IndicationWithMonitoring.java:84)
       at org.eclipse.net4j.signal.IndicationWithResponse.doExtendedInput(IndicationWithResponse.java:90)
       at org.eclipse.net4j.signal.Signal.doInput(Signal.java:316)
       at org.eclipse.net4j.signal.IndicationWithResponse.execute(IndicationWithResponse.java:63)
       at org.eclipse.net4j.signal.IndicationWithMonitoring.execute(IndicationWithMonitoring.java:63)
       at org.eclipse.net4j.signal.Signal.runSync(Signal.java:241)
       at org.eclipse.net4j.signal.Signal.run(Signal.java:147)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:898)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:920)
       at java.lang.Thread.run(Thread.java:736)

Reproducible: Always

Steps to Reproduce:
1. Commit 2 updates to the same CDOObject within 2 transactions (nearly) at the same time. No locking is used.
2. Handle the exception by rolling back the transaction.
3. Keep both transactions open and try to make a change and commit it again.
4. ConcurrentModificationExceptions will keep occurring: Even if changes are made and committed within only 1 of the 2 transactions.
Comment 1 Eike Stepper CLA 2011-01-25 13:57:41 EST
Duplicate of bug 329254

*** This bug has been marked as a duplicate of bug 329254 ***