Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionRequest.java')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionRequest.java79
1 files changed, 43 insertions, 36 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionRequest.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionRequest.java
index 3ce55f051c..1a48f1f554 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionRequest.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionRequest.java
@@ -67,6 +67,49 @@ public class CommitTransactionRequest extends CDOClientRequest<CommitTransaction
writeDirtyObjects(out);
}
+ @Override
+ protected CommitTransactionResult confirming(ExtendedDataInputStream in) throws IOException
+ {
+ boolean success = in.readBoolean();
+ if (!success)
+ {
+ String rollbackMessage = in.readString();
+ return new CommitTransactionResult(rollbackMessage);
+ }
+
+ long timeStamp = in.readLong();
+ CommitTransactionResult result = new CommitTransactionResult(timeStamp);
+
+ List<CDOPackage> newPackages = transaction.getNewPackages();
+ for (CDOPackage newPackage : newPackages)
+ {
+ CDOIDRange oldRange = newPackage.getMetaIDRange();
+ CDOIDRange newRange = CDOIDRangeImpl.read(in);
+ ((CDOPackageImpl)newPackage).setMetaIDRange(newRange);
+ for (long i = 0; i < oldRange.getCount(); i++)
+ {
+ CDOID oldID = oldRange.get(i);
+ CDOID newID = newRange.get(i);
+ transaction.getSession().remapMetaInstance(oldID, newID);
+ result.addIDMapping(oldID, newID);
+ }
+ }
+
+ for (;;)
+ {
+ CDOID oldID = CDOIDImpl.read(in);
+ if (oldID.isNull())
+ {
+ break;
+ }
+
+ CDOID newID = CDOIDImpl.read(in);
+ result.addIDMapping(oldID, newID);
+ }
+
+ return result;
+ }
+
private void writeNewPackages(ExtendedDataOutputStream out) throws IOException
{
List<CDOPackage> newPackages = transaction.getNewPackages();
@@ -125,40 +168,4 @@ public class CommitTransactionRequest extends CDOClientRequest<CommitTransaction
revision.write(out, transaction, CDORevision.UNCHUNKED);
}
}
-
- @Override
- protected CommitTransactionResult confirming(ExtendedDataInputStream in) throws IOException
- {
- long timeStamp = in.readLong();
- CommitTransactionResult result = new CommitTransactionResult(timeStamp);
-
- List<CDOPackage> newPackages = transaction.getNewPackages();
- for (CDOPackage newPackage : newPackages)
- {
- CDOIDRange oldRange = newPackage.getMetaIDRange();
- CDOIDRange newRange = CDOIDRangeImpl.read(in);
- ((CDOPackageImpl)newPackage).setMetaIDRange(newRange);
- for (long i = 0; i < oldRange.getCount(); i++)
- {
- CDOID oldID = oldRange.get(i);
- CDOID newID = newRange.get(i);
- transaction.getSession().remapMetaInstance(oldID, newID);
- result.addIDMapping(oldID, newID);
- }
- }
-
- for (;;)
- {
- CDOID oldID = CDOIDImpl.read(in);
- if (oldID.isNull())
- {
- break;
- }
-
- CDOID newID = CDOIDImpl.read(in);
- result.addIDMapping(oldID, newID);
- }
-
- return result;
- }
}

Back to the top