code: private ByteBuffer getChunk(final int chunkIdx) throws IOException, InterruptedException {
          ByteBuffer chunk = chunkCache[chunkIdx];
          if (chunk == null) {
              final ByteBuffer byteBufferDup = zipFileSlice.physicalZipFile.getByteBuffer(chunkIdx).duplicate();
              chunk = chunkCache[chunkIdx] = byteBufferDup;
          }
          return chunk;
      }
docs: Get the 2GB chunk of the zipfile with the given chunk index.
  
  @param chunkIdx
  the chunk index
  @return the chunk
  @throws IOException
  if an I/O exception occurs.
  @throws InterruptedException
  if the thread was interrupted.