Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/LockManager.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/LockManager.java45
1 files changed, 24 insertions, 21 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 5db93a490f..421c51de87 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
@@ -352,7 +352,7 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
protected void doActivate() throws Exception
{
super.doActivate();
- loadDurableLocks();
+ loadLocks();
getRepository().getSessionManager().addListener(sessionManagerListener);
}
@@ -391,7 +391,13 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
throw new IllegalStateException("Store does not implement " + DurableLocking2.class.getSimpleName());
}
- private void loadDurableLocks()
+ public void reloadLocks()
+ {
+ DurableLockLoader handler = new DurableLockLoader();
+ getLockAreas(null, handler);
+ }
+
+ private void loadLocks()
{
InternalStore store = repository.getStore();
IStoreAccessor reader = null;
@@ -402,9 +408,7 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
if (reader instanceof DurableLocking)
{
StoreThreadLocal.setAccessor(reader);
-
- DurableLockLoader handler = new DurableLockLoader();
- getLockAreas(null, handler);
+ reloadLocks();
}
}
finally
@@ -578,10 +582,24 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
{
}
+ private IView getView(String lockAreaID)
+ {
+ IView view = openViews.get(lockAreaID);
+ if (view == null)
+ {
+ view = durableViews.get(lockAreaID);
+ }
+ return view;
+ }
+
public boolean handleLockArea(LockArea area)
{
String durableLockingID = area.getDurableLockingID();
- IView view = durableViews.get(durableLockingID);
+ IView view = getView(durableLockingID);
+ if (view != null)
+ {
+ unlock2(view);
+ }
if (view == null)
{
view = new DurableView(durableLockingID);
@@ -643,16 +661,6 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
return grade;
}
- private IView getView(String lockAreaID)
- {
- IView view = openViews.get(lockAreaID);
- if (view == null)
- {
- view = durableViews.get(lockAreaID);
- }
- return view;
- }
-
private LockArea getLockAreaNoEx(String durableLockingID)
{
try
@@ -683,11 +691,6 @@ public class LockManager extends RWOLockManager<Object, IView> implements Intern
else
{
accessor.updateLockArea(lockArea);
- IView view = getView(durableLockingID);
- if (view != null)
- {
- unlock2(view);
- }
new DurableLockLoader().handleLockArea(lockArea);
}
}

Back to the top