diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/protocol/CommitTransactionIndication.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/protocol/CommitTransactionIndication.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/protocol/CommitTransactionIndication.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/protocol/CommitTransactionIndication.java index 848fe91700..e7e8f0c543 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/protocol/CommitTransactionIndication.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/protocol/CommitTransactionIndication.java @@ -69,7 +69,7 @@ public class CommitTransactionIndication extends AbstractIndicationWithResponse { try { - TransactionTemplate transactionTemplate = ((ServerCDOProtocol) getProtocol()) + final TransactionTemplate transactionTemplate = ((ServerCDOProtocol) getProtocol()) .getTransactionTemplate(); transactionTemplate.execute(new TransactionCallbackWithoutResult() { @@ -78,8 +78,12 @@ public class CommitTransactionIndication extends AbstractIndicationWithResponse receiveObjectsToDetach(); receiveObjectsToAttach(); receiveObjectChanges(); - receiveNewResources(); + + if (optimisticControlException) + { + status.setRollbackOnly(); + } } }); } @@ -88,8 +92,11 @@ public class CommitTransactionIndication extends AbstractIndicationWithResponse error("Error while committing transaction to database", ex); } - transmitInvalidations(); - transmitRescourceChanges(); + if (!optimisticControlException) + { + transmitInvalidations(); + transmitRescourceChanges(); + } } public void respond() |