Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2016-10-10 13:53:52 +0000
committerEike Stepper2016-10-10 13:53:52 +0000
commitc15fd3efd477d5336cde2ef3eee6cd40c58f59c2 (patch)
tree0816294b4795d2cb27ea31d9ee0f2f85d3b0e947 /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view
parentda400648e8fe23899619769629dabc8123490e96 (diff)
downloadcdo-c15fd3efd477d5336cde2ef3eee6cd40c58f59c2.tar.gz
cdo-c15fd3efd477d5336cde2ef3eee6cd40c58f59c2.tar.xz
cdo-c15fd3efd477d5336cde2ef3eee6cd40c58f59c2.zip
[505654] Support automatic remerging / multiple merges from the same branch
https://bugs.eclipse.org/bugs/show_bug.cgi?id=505654
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
index 9764cac2d2..75fe71646e 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
@@ -33,6 +33,8 @@ import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionCache;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionDelta;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionManager;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.transaction.CDOTransactionHandler1;
+import org.eclipse.emf.cdo.transaction.CDOTransactionHandler1.WithUndo;
import org.eclipse.emf.cdo.transaction.CDOUndoDetector;
import org.eclipse.emf.cdo.util.CDOUtil;
import org.eclipse.emf.cdo.view.CDOInvalidationPolicy;
@@ -1246,6 +1248,17 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
transaction.setDirty(false);
}
+ CDOTransactionHandler1[] handlers = transaction.getTransactionHandlers1();
+ for (int i = 0; i < handlers.length; i++)
+ {
+ CDOTransactionHandler1 handler = handlers[i];
+ if (handler instanceof WithUndo)
+ {
+ WithUndo withUndo = (WithUndo)handler;
+ withUndo.undoingObject(transaction, object, featureDelta);
+ }
+ }
+
return result;
}
}

Back to the top