code: protected int checkJournals(String status) throws IOException {
      boolean abort = false;
      int journalsAvailable = 0;
      int nonLocalJournalsAvailable = 0;
      for(JournalAndStream jas : journals) {
        if(jas.isDisabled() && jas.isRequired()) {
          abort = true;
        } else if (jas.isResourceAvailable()) {
          journalsAvailable++;
          if (jas.isRemote() || jas.isShared()) {
            nonLocalJournalsAvailable++;
          }
        }
      }
      // update metrics
      updateJournalMetrics();
      if (abort || journalsAvailable < minimumNumberOfJournals
          || nonLocalJournalsAvailable < minimumNumberOfNonLocalJournals) {
        forceJournalCheck = true;
        String message = status + " failed for too many journals, minimum: "
            + minimumNumberOfJournals + " current: " + journalsAvailable
            + ", non-local: " 
            + minimumNumberOfNonLocalJournals + " current: " + nonLocalJournalsAvailable;
        LOG.error(message);
        throw new IOException(message);
      }
      return journalsAvailable;
    }
docs: Checks if the number of journals available is not below
  minimum. Only invoked at errors.