@Override
 public void seek(long pos) throws IOException {
   // necessary in case offset != 0 and pos < 0, but pos >= -offset
   if (pos < 0L) {
     throw new IllegalArgumentException("Seeking to negative position: " + this);
   }
   super.seek(pos + offset);
 }
  @Override
  public final ByteBufferIndexInput clone() {
    final ByteBufferIndexInput clone = buildSlice((String) null, 0L, this.length);
    try {
      clone.seek(getFilePointer());
    } catch (IOException ioe) {
      throw new AssertionError(ioe);
    }

    return clone;
  }