private void doClose() throws IOException {
    myEnumerator.lockStorageWrite();
    try {
      try {
        try {
          if (myAppendCacheFlusher != null) {
            myAppendCacheFlusher.stop();
          }
          flushAppendCache();
        }
        catch (RuntimeException ex) {
          Throwable cause = ex.getCause();
          if (cause instanceof IOException) throw (IOException)cause;
          throw ex;
        }
      }
      finally {
        final PersistentHashMapValueStorage valueStorage = myValueStorage;
        try {
          if (valueStorage != null) {
            valueStorage.dispose();
          }
        }
        finally {
          myEnumerator.close();
        }
      }
    }
    finally {
      myEnumerator.unlockStorageWrite();
    }
  }
private void doClose()