diff --git a/java/compiler/impl/src/com/intellij/compiler/chainsSearch/ChainSearcher.java b/java/compiler/impl/src/com/intellij/compiler/chainsSearch/ChainSearcher.java index a741b77035eb..d2afd2168294 100644 --- a/java/compiler/impl/src/com/intellij/compiler/chainsSearch/ChainSearcher.java +++ b/java/compiler/impl/src/com/intellij/compiler/chainsSearch/ChainSearcher.java @@ -48,7 +48,7 @@ public class ChainSearcher { if (methods == null) { methods = currentMethods; } else { - methods.addAll(currentMethods); + methods = unionSortedSet(currentMethods, methods); } } return new SearchInitializer(methods, context); @@ -169,4 +169,13 @@ public class ChainSearcher { result.add(newChain); } } + + private static SortedSet unionSortedSet(SortedSet s1, SortedSet s2) { + if (s1.isEmpty()) return s2; + if (s2.isEmpty()) return s1; + TreeSet result = new TreeSet<>(); + result.addAll(s1); + result.addAll(s2); + return result; + } } \ No newline at end of file