Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java19
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

Back to the top