[exo-jcr-commits] exo-jcr SVN: r1390 - jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cache.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Jan 14 09:28:23 EST 2010
Author: sergiykarpenko
Date: 2010-01-14 09:28:22 -0500 (Thu, 14 Jan 2010)
New Revision: 1390
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cache/CacheableLockManager.java
Log:
EXOJCR-332: CacheableLockManager fixes
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cache/CacheableLockManager.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cache/CacheableLockManager.java 2010-01-14 13:56:17 UTC (rev 1389)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cache/CacheableLockManager.java 2010-01-14 14:28:22 UTC (rev 1390)
@@ -115,6 +115,8 @@
public static final String TOKENS = "$TOKENS";
+ public static final String LOCKS = "$LOCKS";
+
/**
* Logger
*/
@@ -163,7 +165,7 @@
/**
* Lock persister instance.
*/
- private final LockPersister persister;
+ //private final LockPersister persister;
private BufferedJBossCache cache;
@@ -188,7 +190,7 @@
{
super(dataManager, config, null);
this.dataManager = dataManager;
- this.persister = persister;
+ //this.persister = persister;
if (config.getLockManager() != null)
{
lockTimeOut =
@@ -198,11 +200,11 @@
lockTimeOut = DEFAULT_LOCK_TIMEOUT;
lockTokenHolders = new HashMap<String, Set<String>>();
+ pendingLockTokens = new HashMap<String, String>();
+ pendingLocks = new HashMap<String, LockData>();
//locks = new HashMap<String, LockData>();
//tokensMap = new HashMap<String, LockData>();
- pendingLockTokens = new HashMap<String, String>();
- pendingLocks = new HashMap<String, LockData>();
dataManager.addItemPersistenceListener(this);
@@ -245,7 +247,6 @@
lockTokenHolders.put(sessionId, new HashSet<String>());
}
lockTokenHolders.get(sessionId).add(lt);
-
}
/*
@@ -638,7 +639,7 @@
private boolean lockExist(String nodeId)
{
- return cache.getRoot().hasChild(Fqn.fromString(nodeId));
+ return lockRoot.hasChild(Fqn.fromString(nodeId));
}
/*
@@ -649,7 +650,7 @@
*/
public synchronized void removeLockToken(String sessionId, String lt)
{
- if (lockTokenHolders.containsKey(sessionId))
+ if (lockTokenHolders.containsKey(sessionId) && lockTokenHolders.get(sessionId).contains(lt))
{
lockTokenHolders.get(sessionId).remove(lt);
}
@@ -663,17 +664,16 @@
{
cache.start();
tokenRoot = cache.getRoot().addChild(Fqn.fromString(TOKENS));
-
+ lockRoot = cache.getRoot().addChild(Fqn.fromString(LOCKS));
lockRemover = new LockRemover(this);
}
// Quick method. We need to reconstruct
// TODO was synchronized
- private List<LockData> getLockList()
+ protected List<LockData> getLockList()
{
+ Set<Node<Serializable, Object>> lockSet = lockRoot.getChildren();
- Set<Node<Serializable, Object>> lockSet = cache.getRoot().getChildren();
-
List<LockData> locksData = new ArrayList<LockData>();
for (Node<Serializable, Object> node : lockSet)
{
@@ -917,7 +917,7 @@
if (lData != null)
{
//tokensMap.remove(lData.getLockToken(sessionId));
- tokenRoot.removeChild(lData.getToken());
+ tokenRoot.removeChild(Fqn.fromString(lData.getToken()));
lockRoot.removeChild(Fqn.fromString(nodeIdentifier));
}
}
@@ -988,7 +988,7 @@
@ManagedDescription("The number of active locks")
public int getNumLocks()
{
- return cache.getRoot().getChildrenNames().size();
+ return lockRoot.getChildrenNames().size();
}
@Managed
@@ -1013,6 +1013,6 @@
*/
public void refresh(LockData newLockData)
{
- lockRoot.addChild(Fqn.fromString(newLockData.getNodeIdentifier()));
+ lockRoot.addChild(Fqn.fromString(newLockData.getNodeIdentifier()));
}
}
More information about the exo-jcr-commits
mailing list