@Override
    public void processEntries(@NotNull EntriesProcessor processor) throws StorageException {
      try {
        boolean isCheckCanceledNeeded = isCheckCanceledNeeded();

        final int bufferSize = DEFAULT_FULL_SCAN_BUFFER_BYTES;
        final ByteBuffer buffer = ByteBuffer.allocate(bufferSize);
        for (int i = 0; i < myElementsCount; ) {
          if (isCheckCanceledNeeded) {
            ProgressManager.checkCanceled();
          }
          buffer.clear();
          while (buffer.position() < bufferSize) {
            int cur = myFileChannel.read(buffer, offsetInFile(i) + buffer.position());
            if (cur == -1) break; // EOF
          }
          buffer.flip();
          if (buffer.limit() % ELEMENT_BYTES != 0) {
            throw new StorageException("forward index is corrupted");
          }
          while (buffer.position() < buffer.limit()) {
            processor.process(i, buffer.getShort());
            i++;
          }
        }
      }
      catch (IOException e) {
        throw closeWithException(new StorageException(e));
      }
    }
@Override
    public void processEntries(@NotNull EntriesProcessor processor)