Trace trace = phaseContext.getTrace();
if(trace!= null)
traceManager.associateTrace(trace);
ContextStatus contextStatus = contextStatusRegistry.getContextStatus(phaseContext.getRequestId());
if(contextStatus != null)
contextStatusRegistry.associateContextStatus(contextStatus);
try
{
logger.debug("Starting phase {}",name);
if(contextStatus != null)
contextStatus.startTimer(String.format("phase:%s",name));
executePhase(phaseContext);
logger.debug("Completing phase {}",name);
}
finally
{
MDC.clear();
if(trace != null)
traceManager.disassociateTrace();
if(contextStatus != null)
{
contextStatus.stopTimer(String.format("phase:%s",name));
contextStatusRegistry.disassociateContextStatus();
}
}