diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java index 60c15c4154..98a224d0b6 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java @@ -18,6 +18,7 @@ import org.eclipse.emf.cdo.common.commit.CDOChangeSet; import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDUtil; +import org.eclipse.emf.cdo.common.id.CDOWithID; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; import org.eclipse.emf.cdo.common.util.CDOCommonUtil; import org.eclipse.emf.cdo.internal.common.commit.CDOChangeSetDataImpl; @@ -339,7 +340,18 @@ public final class CDORevisionUtil private static InternalCDORevision getParentRevision(InternalCDORevision revision, CDORevisionProvider provider) { - CDOID parentID = (CDOID)revision.getContainerID(); + CDOID parentID; + + Object containerID = revision.getContainerID(); + if (containerID instanceof CDOWithID) + { + parentID = ((CDOWithID)containerID).cdoID(); + } + else + { + parentID = (CDOID)containerID; + } + if (CDOIDUtil.isNull(parentID)) { parentID = revision.getResourceID(); |