diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java index bd14524..0270bb4 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java @@ -292,7 +292,9 @@ public class LruBlockCache implements BlockCache, HeapSize { public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf, boolean inMemory) { CachedBlock cb = map.get(cacheKey); if(cb != null) { - throw new RuntimeException("Cached an already cached block"); + String msg = "Cached an already cached block: " + cacheKey + " cb:" + cb.getCacheKey(); + LOG.warn(msg); + assert false : msg; } cb = new CachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory); long newSize = updateSizeMetrics(cb, false); diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java index 174a773..dbe03c4 100644 --- hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java +++ hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java @@ -123,8 +123,9 @@ public class TestLruBlockCache { try { cache.cacheBlock(block.cacheKey, block); assertTrue("Cache should not allow re-caching a block", false); - } catch(RuntimeException re) { + } catch(AssertionError re) { // expected + assertTrue(re.getMessage().contains("Cached an already cached block")); } } diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestIdLock.java hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestIdLock.java index bbf4bba..9951cd0 100644 --- hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestIdLock.java +++ hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestIdLock.java @@ -19,6 +19,8 @@ package org.apache.hadoop.hbase.util; +import static org.junit.Assert.assertTrue; + import java.util.Map; import java.util.Random; import java.util.concurrent.Callable; @@ -27,12 +29,10 @@ import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - -import static org.junit.Assert.*; - import org.apache.hadoop.hbase.MediumTests; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -105,6 +105,7 @@ public class TestIdLock { idLock.assertMapEmpty(); } finally { exec.shutdown(); + exec.awaitTermination(5000, TimeUnit.MILLISECONDS); } }