diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java | 59 |
1 files changed, 24 insertions, 35 deletions
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java index 3f84e0d70f..acf0b462c9 100644 --- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java +++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java @@ -69,24 +69,26 @@ public class CommitTransactionRequest extends CDOClientRequestWithMonitoring<Com private static long sleepMillisForTesting = 0L; - private final int commitNumber; + private CDOIDProvider idProvider; // CDOTransaction - private final String commitComment; + private int commitNumber; - private final CDOCommitData commitData; + private String commitComment; - private final Collection<CDOLob<?>> lobs; + private boolean releaseLocks; - private final Collection<CDOLockState> locksOnNewObjects; + private CDOCommitData commitData; - private final Collection<CDOID> idsToUnlock; + private Collection<CDOLob<?>> lobs; - private final int viewID; + private Collection<CDOLockState> locksOnNewObjects; + + private int viewID; /** * Is <code>null</code> in {@link CommitDelegationRequest}. */ - private final InternalCDOTransaction transaction; + private InternalCDOTransaction transaction; private boolean clearResourcePathCache; @@ -98,23 +100,20 @@ public class CommitTransactionRequest extends CDOClientRequestWithMonitoring<Com public CommitTransactionRequest(CDOClientProtocol protocol, short signalID, InternalCDOCommitContext context) { super(protocol, signalID); - transaction = context.getTransaction(); + transaction = context.getTransaction(); CommitToken commitToken = transaction.getCommitToken(); if (commitToken != null) { commitNumber = commitToken.getCommitNumber(); } - else - { - commitNumber = 0; - } commitComment = context.getCommitComment(); + releaseLocks = context.isAutoReleaseLocks(); + idProvider = context.getTransaction(); commitData = context.getCommitData(); lobs = context.getLobs(); locksOnNewObjects = context.getLocksOnNewObjects(); - idsToUnlock = context.getIDsToUnlock(); viewID = context.getViewID(); } @@ -128,7 +127,7 @@ public class CommitTransactionRequest extends CDOClientRequestWithMonitoring<Com @Override protected CDOIDProvider getIDProvider() { - return transaction; + return idProvider; } @Override @@ -151,43 +150,33 @@ public class CommitTransactionRequest extends CDOClientRequestWithMonitoring<Com List<CDOIDAndVersion> detachedObjects = commitData.getDetachedObjects(); out.writeLong(getLastUpdateTime()); + out.writeBoolean(releaseLocks); out.writeInt(commitNumber); out.writeString(commitComment); - out.writeInt(locksOnNewObjects.size()); - out.writeInt(idsToUnlock.size()); out.writeInt(newPackageUnits.size()); + out.writeInt(locksOnNewObjects.size()); out.writeInt(newObjects.size()); out.writeInt(changedObjects.size()); out.writeInt(detachedObjects.size()); if (TRACER.isEnabled()) { - TRACER.format("Writing {0} locks on new objects", locksOnNewObjects.size()); //$NON-NLS-1$ - } - - for (CDOLockState lockState : locksOnNewObjects) - { - out.writeCDOLockState(lockState); - } - - if (TRACER.isEnabled()) - { - TRACER.format("Writing {0} unlocks on changed objects", idsToUnlock.size()); //$NON-NLS-1$ + TRACER.format("Writing {0} new package units", newPackageUnits.size()); //$NON-NLS-1$ } - for (CDOID id : idsToUnlock) + for (CDOPackageUnit newPackageUnit : newPackageUnits) { - out.writeCDOID(id); + out.writeCDOPackageUnit(newPackageUnit, true); } if (TRACER.isEnabled()) { - TRACER.format("Writing {0} new package units", newPackageUnits.size()); //$NON-NLS-1$ + TRACER.format("Writing {0} locks on new objects", locksOnNewObjects.size()); //$NON-NLS-1$ } - for (CDOPackageUnit newPackageUnit : newPackageUnits) + for (CDOLockState lockState : locksOnNewObjects) { - out.writeCDOPackageUnit(newPackageUnit, true); + out.writeCDOLockState(lockState); } if (TRACER.isEnabled()) @@ -330,7 +319,7 @@ public class CommitTransactionRequest extends CDOClientRequestWithMonitoring<Com } CommitTransactionResult result = new CommitTransactionResult(); - result.setIDProvider(transaction); + result.setIDProvider(idProvider); result.setClearResourcePathCache(clearResourcePathCache); result.setRollbackReason(in.readByte()); result.setRollbackMessage(in.readString()); @@ -356,7 +345,7 @@ public class CommitTransactionRequest extends CDOClientRequestWithMonitoring<Com protected CommitTransactionResult confirmingResult(CDODataInput in) throws IOException { CommitTransactionResult result = new CommitTransactionResult(); - result.setIDProvider(transaction); + result.setIDProvider(idProvider); result.setClearResourcePathCache(clearResourcePathCache); result.setBranchPoint(in.readCDOBranchPoint()); result.setPreviousTimeStamp(in.readLong()); |