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" ) ; }
Default ffdc dump routine - always invoked