diff options
author | Eike Stepper | 2010-01-30 19:22:20 +0000 |
---|---|---|
committer | Eike Stepper | 2010-01-30 19:22:20 +0000 |
commit | 530544076db142cbf496d16d6a4474395d9e813e (patch) | |
tree | 0494f60b5029ff2dd5220ab706c3b141b21b4319 | |
parent | 35205a1c017f37b021aef1c7fdcbf9f8fb124eac (diff) | |
download | cdo-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
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(); |