Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2013-02-21 07:57:11 +0000
committerEike Stepper2013-02-21 07:57:11 +0000
commitccc143cdbf937af334cb50a69582bb3f8899758e (patch)
tree978fb585501a9a86d4e98e03030bea7b3536eacc /plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java
parentcf49b7c79567c2428ecfca6d42867eda592cefca (diff)
downloadcdo-ccc143cdbf937af334cb50a69582bb3f8899758e.tar.gz
cdo-ccc143cdbf937af334cb50a69582bb3f8899758e.tar.xz
cdo-ccc143cdbf937af334cb50a69582bb3f8899758e.zip
[400892] Intern all CDOIDs
https://bugs.eclipse.org/bugs/show_bug.cgi?id=400892
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java
index 8c4b34780e..a39247c3ec 100644
--- a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java
+++ b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java
@@ -204,6 +204,7 @@ public class CDOWorkspaceImpl extends Notifier implements InternalCDOWorkspace
public boolean handleRevision(CDORevision revision)
{
InternalCDORevision rev = (InternalCDORevision)revision;
+ adjustRevisionBranch(rev);
accessor.rawStore(rev, monitor);
long commitTime = revision.getTimeStamp();
@@ -617,6 +618,7 @@ public class CDOWorkspaceImpl extends Notifier implements InternalCDOWorkspace
accessor.rawDelete(id, localRevision.getVersion(), localBranch, eClass, new Monitor());
localRevision.setVersion(remoteRevision.getVersion());
+ adjustRevisionBranch(localRevision);
accessor.rawStore(localRevision, new Monitor());
}
}
@@ -630,6 +632,17 @@ public class CDOWorkspaceImpl extends Notifier implements InternalCDOWorkspace
}
}
+ private void adjustRevisionBranch(InternalCDORevision revision)
+ {
+ InternalCDOBranchManager branchManager = localRepository.getBranchManager();
+ InternalCDOBranch branch = revision.getBranch();
+ if (branch.getBranchManager() != branchManager)
+ {
+ branch = branchManager.getBranch(branch.getID());
+ revision.setBranchPoint(branch.getPoint(revision.getTimeStamp()));
+ }
+ }
+
/**
* @deprecated Attaching new objects is only supported for IDGenerationLocation.CLIENT
*/

Back to the top