Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/LockManager.java23
1 files changed, 13 insertions, 10 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/LockManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/LockManager.java
index 26ba1ad922..5db93a490f 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/LockManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/LockManager.java
@@ -580,8 +580,13 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
public boolean handleLockArea(LockArea area)
{
- IView view = durableViews.get(area.getDurableLockingID());
- CheckUtil.checkNull(view, "view");
+ String durableLockingID = area.getDurableLockingID();
+ IView view = durableViews.get(durableLockingID);
+ if (view == null)
+ {
+ view = new DurableView(durableLockingID);
+ durableViews.put(durableLockingID, (DurableView)view);
+ }
Collection<Object> readLocks = new ArrayList<Object>();
Collection<Object> writeLocks = new ArrayList<Object>();
@@ -638,18 +643,13 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
return grade;
}
- private IView getOrCreateView(String lockAreaID)
+ private IView getView(String lockAreaID)
{
IView view = openViews.get(lockAreaID);
if (view == null)
{
view = durableViews.get(lockAreaID);
}
- if (view == null)
- {
- view = new DurableView(lockAreaID);
- durableViews.put(lockAreaID, (DurableView)view);
- }
return view;
}
@@ -683,8 +683,11 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
else
{
accessor.updateLockArea(lockArea);
- IView view = getOrCreateView(durableLockingID);
- unlock2(view);
+ IView view = getView(durableLockingID);
+ if (view != null)
+ {
+ unlock2(view);
+ }
new DurableLockLoader().handleLockArea(lockArea);
}
}

Back to the top