in agent/src/jetbrains/buildServer/xmlReportPlugin/XmlReportPlugin.java [240:271]
private void finishProcessing(@NotNull final ProcessingContext processingContext, boolean fullFinish) {
Thread monitor = processingContext.monitorThread;
if (!isStarted(monitor) && isRulesEmpty(processingContext)) return;
if (!isStarted(monitor)) {
// process all rules even if we do not have build steps
processAllRules(processingContext);
}
processingContext.finished = true;
try {
monitor = processingContext.monitorThread;
processingContext.monitorThread = null;
if (isStarted(monitor)) {
monitor.join();
}
for (RulesContext rulesContext : processingContext.rulesContexts) {
rulesContext.waitRuntimeParsing();
rulesContext.clearRuntimeParseTasks();
final MonitorRulesCommand monitorRules = rulesContext.getMonitorRulesCommand();
if (monitorRules != null) monitorRules.run();
if (fullFinish) rulesContext.finish();
else rulesContext.waitRuntimeParsing();
if (fullFinish && !myQuietMode) logStatistics(rulesContext);
}
} catch (Exception e) {
LoggingUtils.logError("Exception occurred while finishing rules monitoring", e, getBuild().getBuildLogger(), false);
}
}