diff --git a/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java b/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java index be8a38e44767..9d19f4ed25c4 100644 --- a/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java +++ b/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java @@ -151,7 +151,7 @@ public class SeverityRegistrar implements Comparator { } else { //enforce include all known - List list = getAllSeverities(); + List list = getSortedSeverities(orderMap); for (HighlightSeverity stdSeverity : knownSeverities) { if (!list.contains(stdSeverity)) { for (int oIdx = 0; oIdx < list.size(); oIdx++) { @@ -200,9 +200,14 @@ public class SeverityRegistrar implements Comparator { @NotNull public List getAllSeverities() { - return Arrays.stream(getOrderMap().keys()) + return getSortedSeverities(getOrderMap()); + } + + @NotNull + private List getSortedSeverities(OrderMap map) { + return Arrays.stream(map.keys()) .map(o -> (HighlightSeverity)o) - .sorted(this) + .sorted((o1, o2) -> compare(o1, o2, map)) .collect(Collectors.toList()); } @@ -264,7 +269,12 @@ public class SeverityRegistrar implements Comparator { @Override public int compare(@NotNull HighlightSeverity s1, @NotNull HighlightSeverity s2) { - OrderMap orderMap = getOrderMap(); + return compare(s1, s2, getOrderMap()); + } + + private int compare(@NotNull HighlightSeverity s1, + @NotNull HighlightSeverity s2, + @NotNull OrderMap orderMap) { int o1 = orderMap.getOrder(s1); int o2 = orderMap.getOrder(s2); return o1 - o2;