diff options
13 files changed, 185 insertions, 14 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java index 3e80d8a572..9ba4196914 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java @@ -11,14 +11,16 @@ package org.eclipse.emf.cdo.internal.common.branch; import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.branch.CDOBranchVersion; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import java.text.MessageFormat; /** * @author Eike Stepper */ -public class CDOBranchVersionImpl implements CDOBranchVersion +public class CDOBranchVersionImpl implements CDOBranchVersion, CDOBranchAdjustable { private CDOBranch branch; @@ -30,6 +32,14 @@ public class CDOBranchVersionImpl implements CDOBranchVersion this.version = version; } + public void adjustBranches(CDOBranchManager newBranchManager) + { + if (branch != null) + { + branch = newBranchManager.getBranch(branch.getID()); + } + } + public CDOBranch getBranch() { return branch; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockChangeInfoImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockChangeInfoImpl.java index 2f4d798e80..a114e9fd64 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockChangeInfoImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockChangeInfoImpl.java @@ -4,26 +4,28 @@ * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: * Caspar De Groot - initial API and implementation */ package org.eclipse.emf.cdo.internal.common.lock; import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo; import org.eclipse.emf.cdo.common.lock.CDOLockOwner; import org.eclipse.emf.cdo.common.lock.CDOLockState; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType; /** * @author Caspar De Groot */ -public class CDOLockChangeInfoImpl implements CDOLockChangeInfo +public class CDOLockChangeInfoImpl implements CDOLockChangeInfo, CDOBranchAdjustable { - private final CDOBranchPoint branchPoint; + private CDOBranchPoint branchPoint; private final CDOLockOwner lockOwner; @@ -48,7 +50,6 @@ public class CDOLockChangeInfoImpl implements CDOLockChangeInfo public CDOLockChangeInfoImpl() { - branchPoint = null; lockOwner = null; lockStates = null; operation = null; @@ -56,6 +57,19 @@ public class CDOLockChangeInfoImpl implements CDOLockChangeInfo isInvalidateAll = true; } + public void adjustBranches(CDOBranchManager newBranchManager) + { + if (branchPoint != null) + { + CDOBranch branch = branchPoint.getBranch(); + if (branch != null) + { + branch = newBranchManager.getBranch(branch.getID()); + branchPoint = branch.getPoint(branchPoint.getTimeStamp()); + } + } + } + public CDOBranch getBranch() { return branchPoint == null ? null : branchPoint.getBranch(); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java index 3ff303a413..c5a19deade 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java @@ -11,8 +11,10 @@ package org.eclipse.emf.cdo.internal.common.revision; import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.revision.CDOIDAndBranch; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import org.eclipse.net4j.util.CheckUtil; @@ -21,7 +23,7 @@ import java.text.MessageFormat; /** * @author Eike Stepper */ -public class CDOIDAndBranchImpl implements CDOIDAndBranch +public class CDOIDAndBranchImpl implements CDOIDAndBranch, CDOBranchAdjustable { private CDOID id; @@ -46,6 +48,12 @@ public class CDOIDAndBranchImpl implements CDOIDAndBranch return branch; } + public void adjustBranches(CDOBranchManager newBranchManager) + { + branch = newBranchManager.getBranch(branch.getID()); + CheckUtil.checkArg(branch, "branch"); + } + @Override public boolean equals(Object obj) { diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java index 0016b9c401..d33ba02f8a 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java @@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.internal.common.revision.delta; import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDUtil; import org.eclipse.emf.cdo.common.id.CDOWithID; @@ -34,6 +35,7 @@ import org.eclipse.emf.cdo.common.revision.delta.CDOSetFeatureDelta; import org.eclipse.emf.cdo.common.revision.delta.CDOUnsetFeatureDelta; import org.eclipse.emf.cdo.common.util.PartialCollectionLoadingNotSupportedException; import org.eclipse.emf.cdo.internal.common.revision.CDOListImpl; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import org.eclipse.emf.cdo.spi.common.revision.CDOReferenceAdjuster; import org.eclipse.emf.cdo.spi.common.revision.InternalCDOFeatureDelta; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; @@ -329,6 +331,19 @@ public class CDORevisionDeltaImpl implements InternalCDORevisionDelta return changed; } + public void adjustBranches(CDOBranchManager newBranchManager) + { + if (branch != null) + { + branch = newBranchManager.getBranch(branch.getID()); + } + + if (target instanceof CDOBranchAdjustable) + { + ((CDOBranchAdjustable)target).adjustBranches(newBranchManager); + } + } + public void accept(CDOFeatureDeltaVisitor visitor) { accept(visitor, Predicates.<EStructuralFeature> alwaysTrue()); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/branch/CDOBranchAdjustable.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/branch/CDOBranchAdjustable.java new file mode 100644 index 0000000000..ef2d8b39ad --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/branch/CDOBranchAdjustable.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.spi.common.branch; + +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; + +/** + * @author Eike Stepper + * @since 4.3 + */ +public interface CDOBranchAdjustable +{ + public void adjustBranches(CDOBranchManager newBranchManager); +} diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java index a2331491f6..c37c1e6278 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java @@ -13,6 +13,8 @@ */ package org.eclipse.emf.cdo.spi.common.revision; +import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDProvider; @@ -831,6 +833,22 @@ public abstract class BaseCDORevision extends AbstractCDORevision return changed; } + /** + * @since 4.3 + */ + public void adjustBranches(CDOBranchManager newBranchManager) + { + if (branchPoint != null) + { + CDOBranch branch = branchPoint.getBranch(); + if (branch != null) + { + branch = newBranchManager.getBranch(branch.getID()); + branchPoint = branch.getPoint(branchPoint.getTimeStamp()); + } + } + } + public Object getValue(EStructuralFeature feature) { checkReadable(feature); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java index 454624dd0e..126cb91a7b 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java @@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.spi.common.revision; import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDProvider; @@ -71,6 +72,14 @@ public abstract class DelegatingCDORevision implements InternalCDORevision return getDelegate().adjustReferences(referenceAdjuster); } + /** + * @since 4.3 + */ + public void adjustBranches(CDOBranchManager newBranchManager) + { + getDelegate().adjustBranches(newBranchManager); + } + public long getTimeStamp() { return getDelegate().getTimeStamp(); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java index fad67927b3..70dcbd085b 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java @@ -21,6 +21,7 @@ import org.eclipse.emf.cdo.common.revision.CDOList; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.CDORevisionData; import org.eclipse.emf.cdo.common.security.CDOPermission; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.emf.cdo.spi.common.model.InternalCDOClassInfo; @@ -37,7 +38,7 @@ import java.util.List; * @noextend This interface is not intended to be extended by clients. * @noimplement This interface is not intended to be implemented by clients. */ -public interface InternalCDORevision extends CDORevision, CDORevisionData, CDOReferenceAdjustable +public interface InternalCDORevision extends CDORevision, CDORevisionData, CDOReferenceAdjustable, CDOBranchAdjustable { /** * @since 4.2 diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionDelta.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionDelta.java index 6cd5d560d6..4cbe718e25 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionDelta.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionDelta.java @@ -15,6 +15,7 @@ import org.eclipse.emf.cdo.common.revision.CDORevisable; import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta; import org.eclipse.emf.cdo.common.revision.delta.CDOOriginSizeProvider; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import org.eclipse.emf.ecore.EStructuralFeature; @@ -28,7 +29,7 @@ import java.util.Map; * @noextend This interface is not intended to be extended by clients. * @since 2.0 */ -public interface InternalCDORevisionDelta extends CDORevisionDelta, CDOReferenceAdjustable +public interface InternalCDORevisionDelta extends CDORevisionDelta, CDOReferenceAdjustable, CDOBranchAdjustable { /** * @since 3.0 diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java index 5a6948f013..72cf9c15b6 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java @@ -10,6 +10,7 @@ */ package org.eclipse.emf.cdo.spi.common.revision; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDProvider; @@ -294,6 +295,14 @@ public class StubCDORevision extends AbstractCDORevision } /** + * @since 4.3 + */ + public void adjustBranches(CDOBranchManager newBranchManager) + { + throw new UnsupportedOperationException(getExceptionMessage()); + } + + /** * @since 4.2 */ public EStructuralFeature[] clearValues() diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java index 5d742926f5..2350d4fa48 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java @@ -40,6 +40,7 @@ import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionManager; import org.eclipse.emf.cdo.spi.server.ISessionProtocol; +import org.eclipse.emf.cdo.spi.server.InternalRepository; import org.eclipse.emf.cdo.spi.server.InternalSession; import org.eclipse.emf.cdo.spi.server.InternalSessionManager; import org.eclipse.emf.cdo.spi.server.InternalTransaction; @@ -534,7 +535,16 @@ public class Session extends Container<IView> implements InternalSession @Override public String toString() { - String name = manager.getRepository().getName(); + String name = "unknown"; + if (manager != null) + { + InternalRepository repository = manager.getRepository(); + if (repository != null) + { + name = repository.getName(); + } + } + if (userID != null && userID.length() != 0) { name = userID + "@" + name; diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java index 02523c58a8..2e139d7b67 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java @@ -28,6 +28,7 @@ import org.eclipse.emf.cdo.session.CDOSessionConfiguration; import org.eclipse.emf.cdo.session.CDOSessionConfigurationFactory; import org.eclipse.emf.cdo.session.CDOSessionInvalidationEvent; import org.eclipse.emf.cdo.session.CDOSessionLocksChangedEvent; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionCache; import org.eclipse.emf.cdo.spi.server.InternalRepositorySynchronizer; import org.eclipse.emf.cdo.spi.server.InternalSynchronizableRepository; @@ -399,7 +400,6 @@ public class RepositorySynchronizer extends PriorityQueueRunner implements Inter try { CDOSessionConfiguration masterConfiguration = remoteSessionConfigurationFactory.createSessionConfiguration(); - masterConfiguration.setBranchManager(localRepository.getBranchManager()); masterConfiguration.setPassiveUpdateMode(PassiveUpdateMode.ADDITIONS); masterConfiguration.setLockNotificationMode(LockNotificationMode.ALWAYS); @@ -715,6 +715,12 @@ public class RepositorySynchronizer extends PriorityQueueRunner implements Inter try { StoreThreadLocal.setSession(localRepository.getReplicatorSession()); + + if (lockChangeInfo instanceof CDOBranchAdjustable) + { + ((CDOBranchAdjustable)lockChangeInfo).adjustBranches(localRepository.getBranchManager()); + } + localRepository.handleLockChangeInfo(lockChangeInfo); } finally diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java index 240f59b4de..da7470e160 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java @@ -39,6 +39,7 @@ import org.eclipse.emf.cdo.common.revision.CDORevisionKey; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; import org.eclipse.emf.cdo.common.util.CDOCommonUtil; import org.eclipse.emf.cdo.common.util.CDOException; +import org.eclipse.emf.cdo.internal.common.commit.DelegatingCommitInfo; import org.eclipse.emf.cdo.internal.common.revision.AbstractCDORevisionCache; import org.eclipse.emf.cdo.internal.server.Repository; import org.eclipse.emf.cdo.internal.server.TransactionCommitContext; @@ -46,6 +47,7 @@ import org.eclipse.emf.cdo.server.IStoreAccessor; import org.eclipse.emf.cdo.server.IStoreAccessor.CommitContext; import org.eclipse.emf.cdo.server.ITransaction; import org.eclipse.emf.cdo.server.StoreThreadLocal; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchAdjustable; import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranchManager; import org.eclipse.emf.cdo.spi.common.commit.CDOChangeKindCache; @@ -265,7 +267,7 @@ public abstract class SynchronizableRepository extends Repository.Default implem setLastReplicatedBranchID(branchID); } - public void handleCommitInfo(CDOCommitInfo commitInfo) + public void handleCommitInfo(final CDOCommitInfo commitInfo) { CDOBranch branch = commitInfo.getBranch(); if (branch.isLocal()) @@ -273,11 +275,57 @@ public abstract class SynchronizableRepository extends Repository.Default implem return; } - long timeStamp = commitInfo.getTimeStamp(); - CDOBranchPoint head = branch.getHead(); + // Convert branches from remoteSession to localRepository + InternalCDOBranchManager newBranchManager = getBranchManager(); + + for (CDOIDAndVersion key : commitInfo.getNewObjects()) + { + if (key instanceof CDOBranchAdjustable) + { + CDOBranchAdjustable branchAdjustable = (CDOBranchAdjustable)key; + branchAdjustable.adjustBranches(newBranchManager); + } + } + + for (CDORevisionKey key : commitInfo.getChangedObjects()) + { + if (key instanceof CDOBranchAdjustable) + { + CDOBranchAdjustable branchAdjustable = (CDOBranchAdjustable)key; + branchAdjustable.adjustBranches(newBranchManager); + } + } + + for (CDOIDAndVersion key : commitInfo.getDetachedObjects()) + { + if (key instanceof CDOBranchAdjustable) + { + CDOBranchAdjustable branchAdjustable = (CDOBranchAdjustable)key; + branchAdjustable.adjustBranches(newBranchManager); + } + } + + final InternalCDOBranch newBranch = newBranchManager.getBranch(branch.getID()); + CDOCommitInfo newCommitInfo = new DelegatingCommitInfo() + { + @Override + protected CDOCommitInfo getDelegate() + { + return commitInfo; + } + + @Override + public CDOBranch getBranch() + { + return newBranch; + } + }; + + long timeStamp = newCommitInfo.getTimeStamp(); + CDOBranchPoint head = newBranch.getHead(); InternalTransaction transaction = replicatorSession.openTransaction(++lastTransactionID, head); - ReplicatorCommitContext commitContext = new ReplicatorCommitContext(transaction, commitInfo); + ReplicatorCommitContext commitContext = new ReplicatorCommitContext(transaction, newCommitInfo); commitContext.preWrite(); boolean success = false; |