[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