inspection toolwindow: InspectionTree#getSelectedDescriptors() fix non-terminated...
authorDmitry Batkovich <dmitry.batkovich@jetbrains.com>
Tue, 7 Jun 2016 16:35:23 +0000 (19:35 +0300)
committerDmitry Batkovich <dmitry.batkovich@jetbrains.com>
Tue, 7 Jun 2016 16:35:48 +0000 (19:35 +0300)
platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionTree.java

index 86079192cf9d0aa2461a84d517528be428b2f829..7dc6467af43f76b49450d0fa535e1bf19b046fee 100644 (file)
@@ -52,8 +52,6 @@ import javax.swing.tree.ExpandVetoException;
 import javax.swing.tree.TreeNode;
 import javax.swing.tree.TreePath;
 import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 public class InspectionTree extends Tree {
   private static final Logger LOG = Logger.getInstance(InspectionTree.class);
@@ -273,14 +271,17 @@ public class InspectionTree extends Tree {
           }
         }
       } else {
-        Stream<CommonProblemDescriptor> descriptorStream = siblings.stream().map(ProblemDescriptionNode::getDescriptor);
-        if (sortedByPosition) {
-          descriptorStream = descriptorStream.sorted(DESCRIPTOR_COMPARATOR);
-        }
-        descriptorStream = descriptorStream.filter(descriptors::add);
-        if (readOnlyFilesSink != null) {
-          checkDescriptorsFileIsWritable(descriptorStream.collect(Collectors.toList()), readOnlyFilesSink);
+        Collection<CommonProblemDescriptor> currentDescriptors = sortedByPosition ? new TreeSet<>(DESCRIPTOR_COMPARATOR) : new ArrayList<>();
+        for (ProblemDescriptionNode sibling : siblings) {
+          final CommonProblemDescriptor descriptor = sibling.getDescriptor();
+          if (descriptor != null) {
+            if (readOnlyFilesSink != null) {
+              checkDescriptorFileIsWritable(descriptor, readOnlyFilesSink);
+            }
+            currentDescriptors.add(descriptor);
+          }
         }
+        descriptors.addAll(currentDescriptors);
       }
     }