From 3fc2ff700a092cd2614529a43f00bda6be081bda Mon Sep 17 00:00:00 2001 From: Mikhail Bautin Date: Sat, 15 Dec 2012 14:56:54 -0800 Subject: [PATCH] HIVE-3809: Decompressors should only be returned to the pool once --- ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java index afa982c..2e8adf2 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java @@ -548,7 +548,11 @@ public class RCFile { } if (codec != null) { IOUtils.closeStream(decompressBuffer); - CodecPool.returnDecompressor(valDecompressor); + if (valDecompressor != null) { + // Make sure we only return valDecompressor once. + CodecPool.returnDecompressor(valDecompressor); + valDecompressor = null; + } } } @@ -1757,7 +1761,11 @@ public class RCFile { currentValue.close(); if (decompress) { IOUtils.closeStream(keyDecompressedData); - CodecPool.returnDecompressor(keyDecompressor); + if (keyDecompressor != null) { + // Make sure we only return keyDecompressor once. + CodecPool.returnDecompressor(keyDecompressor); + keyDecompressor = null; + } } } -- 1.8.0