@Override
  public boolean processExistingKeys(@NotNull Processor<? super Key> processor) throws IOException {
    getReadLock().lock();
    try {
      flushAppendCache();
      return myEnumerator.processAllDataObject(processor, new PersistentEnumeratorBase.DataFilter() {
        @Override
        public boolean accept(final int id) throws IOException {
          return readValueId(id) != NULL_ADDR;
        }
      });
    }
    catch (ClosedStorageException ex) {
      throw ex;
    }
    catch (IOException e) {
      markCorrupted();
      throw e;
    }
    finally {
      getReadLock().unlock();
    }
  }
@Override
  public boolean processExistingKeys(@NotNull Processor<? super Key> processor)