in server/src/jetbrains/buildServer/swabra/serverHealth/SwabraFrequentCleanCheckoutReport.java [95:117]
public void report(@NotNull final HealthStatusScope scope, @NotNull final HealthStatusItemConsumer resultConsumer) {
final List<List<SwabraSettingsGroup>> result =
new SwabraClashingConfigurationsDetector(myWatcher, myProjectManager).getClashingConfigurationsGroups(scope.getBuildTypes());
for (List<SwabraSettingsGroup> group : result) {
if(group.isEmpty()) continue;
group = new ArrayList<SwabraSettingsGroup>(group);
Collections.sort(group, new Comparator<SwabraSettingsGroup>() {
public int compare(final SwabraSettingsGroup o1, final SwabraSettingsGroup o2) {
return o1.getBuildTypes().size() - o2.getBuildTypes().size();
}
});
final HealthStatusItem item =
new HealthStatusItem(signature(group), myCategory, Collections.<String, Object>singletonMap(SWABRA_CLASHING_BUILD_TYPES, group));
for(SBuildType affectedBuildType: getBuildTypes(group)) {
resultConsumer.consumeForBuildType(affectedBuildType, item);
}
}
}