Community
Participate
Working Groups
Build Identifier: 3.0 It seems that recently an optimization has been introduced to directly create new revisions on an InvalidateTransition if the delta is available. It looks like the version increment is missing. As a test I tried to increment the version by 1 within the InvalidateTransition: CDORevisionDelta delta = (CDORevisionDelta)key; InternalCDORevision newRevision = oldRevision.copy(); >>>> newRevision.setVersion(oldRevision.getVersion() + 1); delta.apply(newRevision); As I am the only one comitting to my repository all the "Modifying old revision" exceptions are gone. Maybe it would be a good solution to undo the recently introduced optimization... Reproducible: Always
I'll have to write tests first. I suspect that the created timestamp might also be wrong in these cases...
Added tests: org.eclipse.emf.cdo.tests.ChangeSubscriptionTest.testInvalidationWithDeltas_SameBranch() org.eclipse.emf.cdo.tests.ChangeSubscriptionTest.testInvalidationWithDeltas_SubBranch() Problem fixed, all tests pass. Committed to HEAD.
Created attachment 170922 [details] Patch v1 - for future reference
Available in 3.0 GA: http://download.eclipse.org/modeling/emf/cdo/updates/3.0-releases/