@Override public void close() throws IOException { try { rbc.close(); } finally { if (!closed) { closed = true; } if (input != null) { releaseDirectByteBuffer(input); } if (uncompressedDirect != null) { releaseDirectByteBuffer(uncompressedDirect); } } }
/** * @param size */ private void allocateBuffersBasedOnSize(int size) { if (input != null) { releaseDirectByteBuffer(input); } if (uncompressedDirect != null) { releaseDirectByteBuffer(uncompressedDirect); } input = ByteBuffer.allocateDirect(size); final int maxCompressedLength = Snappy.maxCompressedLength(size); uncompressedDirect = ByteBuffer.allocateDirect(maxCompressedLength); buffer = new byte[maxCompressedLength]; }
@Override public final void close() throws IOException { if (closed) { return; } try { flush(); out.close(); } finally { closed = true; releaseDirectByteBuffer(directInputBuffer); releaseDirectByteBuffer(outputBuffer); } }