code: private void logSummary(final List<IncidentImpl> incidents) {
          if (incidents.isEmpty())
              return;
  
          // summaryFile can be replaced so hold on to a local copy
          File outFile = summaryFile;
  
          if (outFile == null) {
              outFile = summaryFile = createNewSummaryFile();
          }
  
          // outFile can still be null, the create above can still fail
          if (outFile != null) {
              synchronized (outFile) {
                  OutputStream os = null;
                  try {
                      os = createSummaryStream(outFile);
                      new IncidentSummaryLogger().logIncidentSummary(os, incidents);
                  } catch (FileNotFoundException e) {
                      // This is FFDC not being able to find itself... we're in bad
                      // shape if this doesn't work.. 
                      e.printStackTrace();
                  } catch (IOException e) {
                  } finally {
                      LoggingFileUtils.tryToClose(os);
                  }
              }
          }
      }
docs: Update the log summary. Triggered by logging of an exception/incident
  via {@link #logSummary(boolean)}, or by daily log rolling {@link #rollLogs()}
  
  @param incidents Thread-safe list that should be used to write summary contents