diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java index e33708022203..e309cb000352 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java @@ -1019,6 +1019,15 @@ public void testReaderWithLruCombinedBlockCache() throws Exception { testReaderCombinedCache("LRU"); } + /** + * Tet case for HBASE-27995 + */ + @Test + public void testReaderWithAdaptiveLruCombinedBlockCacheWithHardCapacityLimit() throws Exception { + conf.setDouble(LruAdaptiveBlockCache.LRU_HARD_CAPACITY_LIMIT_FACTOR_CONFIG_NAME, -0.4921875); + testReaderWithAdaptiveLruCombinedBlockCache(); + } + private void testReaderCombinedCache(final String l1CachePolicy) throws Exception { int bufCount = 1024; int blockSize = 64 * 1024; @@ -1049,7 +1058,9 @@ private void testReaderCombinedCache(final String l1CachePolicy) throws Exceptio Assert.assertFalse(hfb.isSharedMem()); } } finally { - cachedBlock.release(); + if (null != cachedBlock) { + cachedBlock.release(); + } } block.release(); // return back the ByteBuffer back to allocator. }