diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java index 50002ab531..0763632639 100644 --- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java +++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java @@ -238,24 +238,27 @@ public class LoadRevisionsIndication extends CDOServerReadIndication { if (feature.isMany()) { - MoveableList<Object> list = revision.getList(feature); - int toIndex = Math.min(loadRevisionCollectionChunkSize, list.size()) - 1; - for (int i = 0; i <= toIndex; i++) + MoveableList<Object> list = revision.getListOrNull(feature); + if (list != null) { - Object value = list.get(i); - if (value instanceof CDOID) + int toIndex = Math.min(loadRevisionCollectionChunkSize, list.size()) - 1; + for (int i = 0; i <= toIndex; i++) { - CDOID id = (CDOID)value; - if (!CDOIDUtil.isNull(id) && !revisions.contains(id)) + Object value = list.get(i); + if (value instanceof CDOID) { - RevisionInfo info = getRevisionInfo(id); - InternalCDORevision containedRevision = info.getResult(); - if (containedRevision != null) + CDOID id = (CDOID)value; + if (!CDOIDUtil.isNull(id) && !revisions.contains(id)) { - additionalRevisionInfos.add(info); - revisions.add(containedRevision.getID()); - additionalRevisions.add(containedRevision); - collectRevisions(containedRevision, revisions, additionalRevisionInfos, additionalRevisions, visitedFetchRules); + RevisionInfo info = getRevisionInfo(id); + InternalCDORevision containedRevision = info.getResult(); + if (containedRevision != null) + { + additionalRevisionInfos.add(info); + revisions.add(containedRevision.getID()); + additionalRevisions.add(containedRevision); + collectRevisions(containedRevision, revisions, additionalRevisionInfos, additionalRevisions, visitedFetchRules); + } } } } |