diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LockStateIndication.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LockStateIndication.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LockStateIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LockStateIndication.java index 2f55b71de3..364789d8c5 100644 --- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LockStateIndication.java +++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LockStateIndication.java @@ -54,15 +54,26 @@ public class LockStateIndication extends CDOServerReadIndication existingLockStates = new ArrayList<CDOLockState>(); int n = in.readInt(); - for (int i = 0; i < n; i++) + if (n == 0) { - Object key = indicatingCDOID(in, view.getBranch()); - LockState<Object, IView> lockState = lockManager.getLockState(key); - if (lockState != null) + Collection<LockState<Object, IView>> lockStates = lockManager.getLockStates(); + for (LockState<Object, IView> lockState : lockStates) { existingLockStates.add(CDOLockUtil.createLockState(lockState)); } } + else + { + for (int i = 0; i < n; i++) + { + Object key = indicatingCDOID(in, view.getBranch()); + LockState<Object, IView> lockState = lockManager.getLockState(key); + if (lockState != null) + { + existingLockStates.add(CDOLockUtil.createLockState(lockState)); + } + } + } } private Object indicatingCDOID(CDODataInput in, CDOBranch viewedBranch) throws IOException |