Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-07-10 06:44:39 +0000
committerEike Stepper2012-07-10 06:44:39 +0000
commitf0ba5f19b6842e4dbf21b3f5fa1cc75ab7aee0ea (patch)
tree66d0f1eba1c7ceb5b06d0427f24170af56344a0f
parent9faff3b08057af0ac5d2a01d309d46e0fbcf4932 (diff)
downloadcdo-f0ba5f19b6842e4dbf21b3f5fa1cc75ab7aee0ea.tar.gz
cdo-f0ba5f19b6842e4dbf21b3f5fa1cc75ab7aee0ea.tar.xz
cdo-f0ba5f19b6842e4dbf21b3f5fa1cc75ab7aee0ea.zip
[383602] Branch with base after the last finished commit can be created
https://bugs.eclipse.org/bugs/show_bug.cgi?id=383602
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java14
2 files changed, 15 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
index aec0598956..7c51efcc4b 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
@@ -368,11 +368,11 @@ public class Repository extends Container<Object> implements InternalRepository
throw new IllegalStateException("Branching is not supported by " + this);
}
- long lastFinishedTimeStamp = timeStampAuthority.getLastFinishedTimeStamp();
+ long timeStamp = getTimeStamp();
long baseTimeStamp = branchInfo.getBaseTimeStamp();
- if (baseTimeStamp == CDOBranchPoint.UNSPECIFIED_DATE || baseTimeStamp > lastFinishedTimeStamp)
+ if (baseTimeStamp == CDOBranchPoint.UNSPECIFIED_DATE || baseTimeStamp > timeStamp)
{
- baseTimeStamp = lastFinishedTimeStamp;
+ baseTimeStamp = timeStamp;
branchInfo = new BranchInfo(branchInfo.getName(), branchInfo.getBaseBranchID(), baseTimeStamp);
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java
index eb8d6a691e..055b0f755f 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java
@@ -194,7 +194,7 @@ public class RevisionManagerTest extends AbstractCDOTest
private InternalCDORevision[] createBranch(CDOBranch baseBranch, long baseTimeStamp, long offset, long... durations)
{
- CDOBranch branch = baseBranch.createBranch("branch" + ++branchID, baseTimeStamp);
+ CDOBranch branch = doCreateBranch(baseBranch, baseTimeStamp);
return fillBranch(branch, offset, durations);
}
@@ -209,6 +209,16 @@ public class RevisionManagerTest extends AbstractCDOTest
{
CDOBranch baseBranch = revision.getBranch();
long baseTimeStamp = getMiddleOfValidity(revision);
+ return doCreateBranch(baseBranch, baseTimeStamp);
+ }
+
+ private CDOBranch doCreateBranch(CDOBranch baseBranch, long baseTimeStamp)
+ {
+ while (repository.getTimeStamp() < baseTimeStamp)
+ {
+ sleep(1);
+ }
+
return baseBranch.createBranch("branch" + ++branchID, baseTimeStamp);
}
@@ -218,7 +228,7 @@ public class RevisionManagerTest extends AbstractCDOTest
long revised = revision.getRevised();
if (revised == CDOBranchPoint.UNSPECIFIED_DATE)
{
- revised = timeStamp + 10000;
+ revised = timeStamp + 100;
}
return timeStamp / 2 + revised / 2;

Back to the top