code: protected void readCompressedBlocks(int blocks) throws IOException {
  
          int bytesSoFar    = 0;
          int requiredBytes = 512 * blocks;
  
          // This method works with individual bytes!
          int i;
  
          while (bytesSoFar < requiredBytes) {
              i = readStream.read(readBuffer, bytesSoFar,
                                  requiredBytes - bytesSoFar);
  
              if (i < 0) {
                  // A VoltDB extension to disable tagging eof as an error.
                  return;
                  /* disable 3 lines ...
                  throw new EOFException(
                      RB.singleton.getString(
                          RB.DECOMPRESS_RANOUT, bytesSoFar, requiredBytes));
                  ... disabled 3 lines */
                  // End of VoltDB extension
              }
  
              bytesRead  += i;
              bytesSoFar += i;
          }
      }
docs: Work-around for the problem that compressed InputReaders don't fill
  the read buffer before returning.
  
  Has visibility 'protected' so that subclasses may override with
  different algorithms, or use different algorithms for different
  compression stream.