diff options
author | Eike Stepper | 2013-05-30 18:09:18 +0000 |
---|---|---|
committer | Eike Stepper | 2013-05-30 18:09:18 +0000 |
commit | b95a129e0800f82512efb166628d8ae357b3c113 (patch) | |
tree | 3889780e49b1644cc82dbf79961339672ee2bb16 | |
parent | 23b1b7dcd93da143bd4143cd4dc99e1f15b75713 (diff) | |
download | cdo-b95a129e0800f82512efb166628d8ae357b3c113.tar.gz cdo-b95a129e0800f82512efb166628d8ae357b3c113.tar.xz cdo-b95a129e0800f82512efb166628d8ae357b3c113.zip |
Enhance the way revisions are provided
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java index e8a7a3d566..ac21fd8521 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java @@ -59,6 +59,7 @@ import org.eclipse.emf.cdo.spi.common.revision.CDOIDMapper; import org.eclipse.emf.cdo.spi.common.revision.CDOReferenceAdjuster; import org.eclipse.emf.cdo.spi.common.revision.DetachedCDORevision; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; +import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionCache; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionDelta; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionManager; import org.eclipse.emf.cdo.spi.common.revision.StubCDORevision; @@ -109,8 +110,6 @@ public class TransactionCommitContext implements InternalCommitContext private InternalRepository repository; - private InternalCDORevisionManager revisionManager; - private InternalLockManager lockManager; private InternalCDOPackageRegistry repositoryPackageRegistry; @@ -187,7 +186,6 @@ public class TransactionCommitContext implements InternalCommitContext branch = transaction.getBranch(); repository = transaction.getRepository(); - revisionManager = repository.getRevisionManager(); lockManager = repository.getLockingManager(); serializingCommits = repository.isSerializingCommits(); ensuringReferentialIntegrity = repository.isEnsuringReferentialIntegrity(); @@ -901,9 +899,7 @@ public class TransactionCommitContext implements InternalCommitContext { for (CDOID id : lockedTargets) { - InternalCDORevision revision = // - revisionManager.getRevision(id, transaction, CDORevision.UNCHUNKED, CDORevision.DEPTH_NONE, true); - + CDORevision revision = transaction.getRevision(id); if (revision == null || revision instanceof DetachedCDORevision) { throw new IllegalStateException("Object " + id @@ -1103,10 +1099,10 @@ public class TransactionCommitContext implements InternalCommitContext try { - oldRevision = revisionManager.getRevisionByVersion(id, delta, CDORevision.UNCHUNKED, true); + oldRevision = (InternalCDORevision)transaction.getRevision(id); if (oldRevision != null) { - if (oldRevision.getBranch() == branch && oldRevision.isHistorical()) + if (oldRevision.getBranch() != delta.getBranch() || oldRevision.getVersion() != delta.getVersion()) { oldRevision = null; } @@ -1319,6 +1315,8 @@ public class TransactionCommitContext implements InternalCommitContext try { monitor.begin(revisions.length); + InternalCDORevisionManager revisionManager = repository.getRevisionManager(); + for (CDORevision revision : revisions) { if (revision != null) @@ -1367,12 +1365,14 @@ public class TransactionCommitContext implements InternalCommitContext try { monitor.begin(size); + InternalCDORevisionCache cache = repository.getRevisionManager().getCache(); + for (int i = 0; i < size; i++) { CDOID id = detachedObjects[i]; // Remember the cached revision that must be revised after successful commit through updateInfraStructure - cachedDetachedRevisions[i] = (InternalCDORevision)revisionManager.getCache().getRevision(id, transaction); + cachedDetachedRevisions[i] = (InternalCDORevision)cache.getRevision(id, transaction); monitor.worked(); } } |