Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java15
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()

Back to the top