KYLIN-2044 Fix unclosed DataInputByteBuffer in BitmapCounter#peekLength
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/a346db51 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/a346db51 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/a346db51 Branch: refs/heads/1.5.x-HBase1.x Commit: a346db5108b55acb667539a5269d1b1864ea3084 Parents: 818188d Author: lidongsjtu <lid...@apache.org> Authored: Sat Sep 24 10:30:40 2016 +0800 Committer: lidongsjtu <lid...@apache.org> Committed: Sat Sep 24 10:42:46 2016 +0800 ---------------------------------------------------------------------- .../org/apache/kylin/measure/bitmap/BitmapCounter.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/a346db51/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java index b52adde..d3b57a7 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/bitmap/BitmapCounter.java @@ -26,6 +26,7 @@ import java.io.InputStream; import java.nio.ByteBuffer; import java.util.Iterator; +import org.apache.commons.io.IOUtils; import org.roaringbitmap.buffer.MutableRoaringBitmap; /** @@ -97,8 +98,12 @@ public class BitmapCounter implements Comparable<BitmapCounter> { public void readRegisters(ByteBuffer in) throws IOException { DataInputByteBuffer input = new DataInputByteBuffer(); - input.reset(new ByteBuffer[] { in }); - bitmap.deserialize(input); + try { + input.reset(new ByteBuffer[] { in }); + bitmap.deserialize(input); + } finally { + IOUtils.closeQuietly(input); + } } @Override @@ -148,6 +153,8 @@ public class BitmapCounter implements Comparable<BitmapCounter> { bitmap.deserialize(input); } catch (IOException e) { throw new IllegalStateException(e); + } finally { + IOUtils.closeQuietly(input); } len = in.position() - mark;