@Override
  public void close() throws IOException {
    if (storage.isOpen()) {
      int ourPid = owningProcessId;
      int currentOwnerPid = tryReleaseExclusiveAccess(ourPid);

      force();
      storage.close();

      headerPage = null;

      if (currentOwnerPid != NULL_OWNER_PID) {
        throw new IOException(
          "Storage is exclusively owned by another process[pid: " + currentOwnerPid + ", our pid: " + ourPid + "]");
      }
    }
  }
@Override
  public void close()