@ FFDCIgnore ( PrivilegedActionException . class ) private void log ( String sourceId , String probeId , Throwable th , Object callerThis , Object [ ] objectArray ) { IncidentImpl incident = getIncident ( sourceId , probeId , th , callerThis , objectArray ) ; incident . log ( th , callerThis , objectArray ) ; if ( System . getSecurityManager ( ) == null ) { logSummary ( ffdcSummaryPolicy == FFDCSummaryPolicy . IMMEDIATE ) ; } else { AccessController . doPrivileged ( new PrivilegedAction < Void > ( ) { @ Override public Void run ( ) { logSummary ( ffdcSummaryPolicy == FFDCSummaryPolicy . IMMEDIATE ) ; return null ; } } ) ; } for ( IncidentForwarder forwarder : FFDC . getIncidentForwarders ( ) ) { forwarder . process ( incident , th ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) Tr . debug ( tc , "FFDC exception: " + th ) ; }
Log a problem to the global incident stream ( creating it if necessary