private <T> T doIndexAndRecoveryTask(IndexTask<T> task, T defaultValue) {
    if (!isBroken) {
      try {
        return task.doTask();
      }
      catch (ProcessCanceledException e) {
        throw e;
      }
      catch (Exception e1) {
        MavenLog.LOG.warn(e1);

        cleanupBrokenData();
        try {
          open();
        }
        catch (MavenIndexException e2) {
          MavenLog.LOG.warn(e2);
        }
      }
    }
    markAsBroken();
    return defaultValue;
  }
private <T> T doIndexAndRecoveryTask(IndexTask<T> task, T defaultValue)