code: public void ffdcDumpDefault(Throwable t, IncidentStream is, Object callerThis, Object[] objs, String sourceId) {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "ffdcDumpDefault");
  
      // First trace the Throwable, so that we can actually spot the exception in the trace
      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "FFDC for " + t);
      // Trace the first line of the stacktrace too, as it'll help debugging
      if (t != null) {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "  at... " + t.getStackTrace()[0]);
      }
  
      // Capture the Messaging Engine Name and other default information
      super.captureDefaultInformation(is);
  
      // The objs parm may contain one request or several. Each call to dumpUsefulStuff()
      // deals with a single request. If it contains several requests, each entry
      // in objs is itself an Object[]. If not, the first entry is just an Object.
      if (objs != null && objs.length > 0) {
        if (objs[0] instanceof Object[]) {
          for (int i = 0; i < objs.length; i++) {
            // Belt & braces - we don't want FFDC to fail because someone inserted something invalid
            if (objs[i] instanceof Object[]) dumpUsefulStuff(is, (Object[])objs[i]);
          }
        }
        else {
          dumpUsefulStuff(is, objs);
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "ffdcDumpDefault");
    }
docs: Default ffdc dump routine - always invoked