@Override
 protected void doClose() throws IOException {
   byte[] buf = uncompressed;
   if (buf != null) {
     uncompressed = null;
     recycler.releaseOutputBuffer(buf);
   }
   encoder.close();
 }
 @Override
 protected void compress(byte[] data, int offset, int len, IndexOutput out) throws IOException {
   encoder.encodeAndWriteChunk(data, offset, len, new OutputStreamIndexOutput(out));
 }