@Override
  public boolean processKeys(@NotNull Processor<? super Key> processor) throws IOException {
    try {
      Lock readLock = getReadLock();
      readLock.lock();
      try {
        flushAppendCache();
      }
      finally {
        readLock.unlock();
      }
      //and iterateData() was specifically made to not need lock:
      return myEnumerator.iterateData(processor);
    }
    catch (ClosedStorageException e) {
      throw e;
    }
    catch (IOException e) {
      markCorrupted();
      throw e;
    }
  }
@Override
  public boolean processKeys(@NotNull Processor<? super Key> processor)