private void open() throws MavenIndexException {
    try {
      try {
        doOpen();
      }
      catch (Exception e) {
        if (e instanceof ProcessCanceledException) {
          MavenLog.LOG.error("PCE should not be thrown", new Attachment("pce", e));
        }
        final boolean versionUpdated = e.getCause() instanceof VersionUpdatedException;
        if (!versionUpdated) MavenLog.LOG.warn(e);

        try {
          doOpen();
        }
        catch (Exception e2) {
          throw new MavenIndexException("Cannot open index " + myDir.getPath(), e2);
        }
        markAsBroken();
      }
    }
    finally {
      boolean isCentral = isForCentral();
      MavenIndexUsageCollector.INDEX_OPENED.log(
        myKind == RepositoryKind.LOCAL,
        isCentral,
        myKind == RepositoryKind.REMOTE && !isCentral);
      save();
    }
  }
private void open()