From 05ccacfa5f85193dfa1443d1484b61325f642aee Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Mon, 13 Feb 2017 16:12:42 +0700 Subject: [PATCH] StreamApiMigration: check for label not pointing to the statement (Fix for EA-96734 - NPE: TerminalBlock.extractOperation) --- .../codeInspection/streamMigration/TerminalBlock.java | 3 ++- .../streamApiMigration/beforeIncompleteLabel.java | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeIncompleteLabel.java diff --git a/java/java-impl/src/com/intellij/codeInspection/streamMigration/TerminalBlock.java b/java/java-impl/src/com/intellij/codeInspection/streamMigration/TerminalBlock.java index 546d95a8795e..326102070a43 100644 --- a/java/java-impl/src/com/intellij/codeInspection/streamMigration/TerminalBlock.java +++ b/java/java-impl/src/com/intellij/codeInspection/streamMigration/TerminalBlock.java @@ -59,7 +59,8 @@ class TerminalBlock { if(statements.length == 1 && statements[0] instanceof PsiBlockStatement) { statements = ((PsiBlockStatement)statements[0]).getCodeBlock().getStatements(); } else if(statements.length == 1 && statements[0] instanceof PsiLabeledStatement) { - statements = new PsiStatement[] {((PsiLabeledStatement)statements[0]).getStatement()}; + PsiStatement statement = ((PsiLabeledStatement)statements[0]).getStatement(); + statements = statement == null ? PsiStatement.EMPTY_ARRAY : new PsiStatement[] {statement}; } else break; } myStatements = statements; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeIncompleteLabel.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeIncompleteLabel.java new file mode 100644 index 000000000000..59552d348464 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/beforeIncompleteLabel.java @@ -0,0 +1,11 @@ +// "Fix all 'Loop can be collapsed with Stream API' problems in file" "false" + +import java.util.List; + +public class Main { + void test(List list) { + for(String l : list) { + TEST: + } + } +} \ No newline at end of file