Author: tv
Date: Wed Aug 10 17:59:37 2011
New Revision: 1156278

URL: http://svn.apache.org/viewvc?rev=1156278&view=rev
Log:
Make sure lock is released (reported by FindBugs)

Modified:
    
commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/AbstractDiskCache.java

Modified: 
commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/AbstractDiskCache.java
URL: 
http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/AbstractDiskCache.java?rev=1156278&r1=1156277&r2=1156278&view=diff
==============================================================================
--- 
commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/AbstractDiskCache.java
 (original)
+++ 
commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/AbstractDiskCache.java
 Wed Aug 10 17:59:37 2011
@@ -143,9 +143,23 @@ public abstract class AbstractDiskCache
         // removeall
         removeAllLock.writeLock().lock();
 
-        if ( purgatory != null )
+        try
         {
-            synchronized ( purgatory )
+            if ( purgatory != null )
+            {
+                synchronized ( purgatory )
+                {
+                    if ( diskCacheAttributes.getMaxPurgatorySize() >= 0 )
+                    {
+                        purgatory = new LRUMapJCS<Serializable, 
PurgatoryElement>( diskCacheAttributes.getMaxPurgatorySize() );
+                    }
+                    else
+                    {
+                        purgatory = new HashMap<Serializable, 
PurgatoryElement>();
+                    }
+                }
+            }
+            else
             {
                 if ( diskCacheAttributes.getMaxPurgatorySize() >= 0 )
                 {
@@ -157,19 +171,10 @@ public abstract class AbstractDiskCache
                 }
             }
         }
-        else
+        finally
         {
-            if ( diskCacheAttributes.getMaxPurgatorySize() >= 0 )
-            {
-                purgatory = new LRUMapJCS<Serializable, PurgatoryElement>( 
diskCacheAttributes.getMaxPurgatorySize() );
-            }
-            else
-            {
-                purgatory = new HashMap<Serializable, PurgatoryElement>();
-            }
+            removeAllLock.writeLock().unlock();
         }
-
-        removeAllLock.writeLock().unlock();
     }
 
     // ------------------------------------------------------- interface ICache


Reply via email to