You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2015/04/01 17:18:52 UTC

svn commit: r1670668 - /commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCache.java

Author: tv
Date: Wed Apr  1 15:18:51 2015
New Revision: 1670668

URL: http://svn.apache.org/r1670668
Log:
Fix JCS-144: BlockDiskCache hangs on SEVERE: Region [TMS] Failure getting from disk--IOException

Modified:
    commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCache.java

Modified: commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCache.java?rev=1670668&r1=1670667&r2=1670668&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCache.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCache.java Wed Apr  1 15:18:51 2015
@@ -327,15 +327,21 @@ public class BlockDiskCache<K, V>
         }
 
         ICacheElement<K, V> object = null;
-        storageLock.readLock().lock();
+
 
         try
         {
-            int[] ded = this.keyStore.get( key );
-            if ( ded != null )
-            {
-                object = this.dataFile.read( ded );
+            storageLock.readLock().lock();
+            try {
+                int[] ded = this.keyStore.get( key );
+                if ( ded != null )
+                {
+                    object = this.dataFile.read( ded );
+                }
+            } finally {
+                storageLock.readLock().unlock();
             }
+
         }
         catch ( IOException ioe )
         {
@@ -346,11 +352,6 @@ public class BlockDiskCache<K, V>
         {
             log.error( logCacheName + "Failure getting from disk, key = " + key, e );
         }
-        finally
-        {
-            storageLock.readLock().unlock();
-        }
-
         return object;
     }