Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockStateImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockStateImpl.java51
1 files changed, 27 insertions, 24 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockStateImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockStateImpl.java
index 3520709d0a..e3d5e33661 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockStateImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/lock/CDOLockStateImpl.java
@@ -58,12 +58,18 @@ public class CDOLockStateImpl implements InternalCDOLockState
private boolean isReadLocked(CDOLockOwner by, boolean others)
{
- if (readLockOwners.size() == 0)
+ int n = readLockOwners.size();
+ if (n == 0)
{
return false;
}
- return readLockOwners.contains(by) ^ others;
+ if (!others)
+ {
+ return readLockOwners.contains(by);
+ }
+
+ return true;
}
private boolean isWriteLocked(CDOLockOwner by, boolean others)
@@ -91,6 +97,16 @@ public class CDOLockStateImpl implements InternalCDOLockState
return Collections.unmodifiableSet(readLockOwners);
}
+ public void addReadLockOwner(CDOLockOwner lockOwner)
+ {
+ readLockOwners.add(lockOwner);
+ }
+
+ public boolean removeReadLockOwner(CDOLockOwner lockOwner)
+ {
+ return readLockOwners.remove(lockOwner);
+ }
+
public CDOLockOwner getWriteLockOwner()
{
return writeLockOwner;
@@ -119,12 +135,12 @@ public class CDOLockStateImpl implements InternalCDOLockState
@Override
public String toString()
{
- StringBuilder builder = new StringBuilder("CDOLockState[lockedObject=");
+ StringBuilder builder = new StringBuilder("CDOLockState\nlockedObject=");
builder.append(lockedObject);
+ builder.append("\nreadLockOwners=");
if (readLockOwners.size() > 0)
{
- builder.append(", read=");
boolean first = true;
for (CDOLockOwner lockOwner : readLockOwners)
{
@@ -142,30 +158,17 @@ public class CDOLockStateImpl implements InternalCDOLockState
builder.deleteCharAt(builder.length() - 1);
}
-
- if (writeLockOwner != null)
+ else
{
- builder.append(", write=");
- builder.append(writeLockOwner);
+ builder.append("NONE");
}
- if (writeOptionOwner != null)
- {
- builder.append(", option=");
- builder.append(writeOptionOwner);
- }
+ builder.append("\nwriteLockOwner=");
+ builder.append(writeLockOwner != null ? writeLockOwner : "NONE");
- builder.append(']');
- return builder.toString();
- }
+ builder.append("\nwriteOptionOwner=");
+ builder.append(writeOptionOwner != null ? writeOptionOwner : "NONE");
- public void addReadLockOwner(CDOLockOwner lockOwner)
- {
- readLockOwners.add(lockOwner);
- }
-
- public boolean removeReadLockOwner(CDOLockOwner lockOwner)
- {
- return readLockOwners.remove(lockOwner);
+ return builder.toString();
}
}

Back to the top