You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2011/08/31 05:05:05 UTC

svn commit: r1163476 - in /hbase/trunk: CHANGES.txt src/test/java/org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java

Author: tedyu
Date: Wed Aug 31 03:05:05 2011
New Revision: 1163476

URL: http://svn.apache.org/viewvc?rev=1163476&view=rev
Log:
HBASE-4307  race condition in CacheTestUtils (Li Pi)

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1163476&r1=1163475&r2=1163476&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Aug 31 03:05:05 2011
@@ -227,6 +227,7 @@ Release 0.91.0 - Unreleased
    HBASE-4290  HLogSplitter doesn't mark its MonitoredTask as complete in
                non-distributed case (todd)
    HBASE-4303  HRegionInfo.toString has bad quoting (todd)
+   HBASE-4307  race condition in CacheTestUtils (Li Pi)
 
   IMPROVEMENTS
    HBASE-3290  Max Compaction Size (Nicolas Spiegelberg via Stack)  

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java?rev=1163476&r1=1163475&r2=1163476&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java Wed Aug 31 03:05:05 2011
@@ -56,7 +56,12 @@ public class CacheTestUtils {
         @Override
         public void doAnAction() throws Exception {
           if (!blocksToTest.isEmpty()) {
-            HFileBlockPair ourBlock = blocksToTest.remove();
+            HFileBlockPair ourBlock = blocksToTest.poll();
+            //if we run out of blocks to test, then we should stop the tests.
+            if(ourBlock == null){
+              ctx.stop();
+              return;
+            }
             toBeTested.cacheBlock(ourBlock.blockName, ourBlock.block);
             Cacheable retrievedBlock = toBeTested.getBlock(ourBlock.blockName,
                 false);