Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2010-01-30 19:22:20 +0000
committerEike Stepper2010-01-30 19:22:20 +0000
commit530544076db142cbf496d16d6a4474395d9e813e (patch)
tree0494f60b5029ff2dd5220ab706c3b141b21b4319
parent35205a1c017f37b021aef1c7fdcbf9f8fb124eac (diff)
downloadcdo-530544076db142cbf496d16d6a4474395d9e813e.tar.gz
cdo-530544076db142cbf496d16d6a4474395d9e813e.tar.xz
cdo-530544076db142cbf496d16d6a4474395d9e813e.zip
[270716] Provide support for branching
https://bugs.eclipse.org/bugs/show_bug.cgi?id=270716
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BranchingTest.java19
2 files changed, 29 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java
index 20030fa8a1..3fd408ac45 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java
@@ -161,6 +161,16 @@ public abstract class RevisionInfo
if (synthetic != null)
{
revisionManager.addRevision(synthetic);
+ if (synthetic instanceof PointerCDORevision)
+ {
+ PointerCDORevision pointer = (PointerCDORevision)synthetic;
+ CDOBranchVersion target = pointer.getTarget();
+ if (target != result && target instanceof InternalCDORevision)
+ {
+ revisionManager.addRevision((CDORevision)target);
+ }
+ }
+
if (synthetics != null)
{
synthetics[i] = synthetic;
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BranchingTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BranchingTest.java
index 74bad4c6aa..5132dd4c5a 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BranchingTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BranchingTest.java
@@ -18,6 +18,7 @@ import org.eclipse.emf.cdo.common.commit.CDOCommit;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.revision.CDORevisionUtil;
import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.internal.common.revision.cache.branch.BranchRevisionCache;
import org.eclipse.emf.cdo.internal.server.mem.MEMStore;
import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IStore;
@@ -28,12 +29,14 @@ import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.util.DanglingReferenceException;
import org.eclipse.emf.cdo.view.CDOView;
+import org.eclipse.net4j.util.ReflectUtil;
import org.eclipse.net4j.util.event.IEvent;
import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.transaction.TransactionException;
import org.eclipse.emf.spi.cdo.InternalCDOSession;
+import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
@@ -53,6 +56,22 @@ public class BranchingTest extends AbstractCDOTest
return testProperties;
}
+ @Override
+ protected void doSetUp() throws Exception
+ {
+ super.doSetUp();
+ Field disableGC = ReflectUtil.getField(BranchRevisionCache.class, "disableGC");
+ ReflectUtil.setValue(disableGC, null, true);
+ }
+
+ @Override
+ protected void doTearDown() throws Exception
+ {
+ Field disableGC = ReflectUtil.getField(BranchRevisionCache.class, "disableGC");
+ ReflectUtil.setValue(disableGC, null, false);
+ super.doTearDown();
+ }
+
protected CDOSession openSession1()
{
session1 = openModel1Session();

Back to the top