From 25d0004b85491a78f7c46295fa486cafc88c23ae Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Tue, 5 Jul 2016 17:37:05 +0300 Subject: [PATCH] Java inspection: In batch mode avoid indicating the problem twice with "Split Try Statement with Multiple Resources" inspection, test added (IDEA-157727) --- .../SplitTryWithMultipleResourcesInspection.java | 2 +- .../try_multiple_resource/AtFinalKeyword.after.java | 10 ++++++++++ .../try_multiple_resource/AtFinalKeyword.java | 8 ++++++++ .../SplitTryWithMultipleResourcesFixTest.java | 4 ++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.after.java create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.java diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/exceptions/SplitTryWithMultipleResourcesInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/exceptions/SplitTryWithMultipleResourcesInspection.java index 8c41d5ae6178..61de687454b6 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/exceptions/SplitTryWithMultipleResourcesInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/exceptions/SplitTryWithMultipleResourcesInspection.java @@ -112,7 +112,7 @@ public class SplitTryWithMultipleResourcesInspection extends BaseInspection { @Override public void visitKeyword(PsiKeyword keyword) { super.visitKeyword(keyword); - if (isOnTheFly() && isAcceptable(keyword)) { + if (isOnTheFly() && keyword.getTokenType() == JavaTokenType.TRY_KEYWORD && isAcceptable(keyword)) { registerError(keyword); } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.after.java new file mode 100644 index 000000000000..3be295fcda9a --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.after.java @@ -0,0 +1,10 @@ +import java.io.*; +class AtFinalKeyword { + void foo(File file1, File file2) throws IOException { + try (final FileInputStream in = new FileInputStream(file1)) { + try (FileOutputStream out = new FileOutputStream(file2)) { + System.out.println(in + ", " + out); + } + } + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.java new file mode 100644 index 000000000000..9ea30e6a506e --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/exceptions/try_multiple_resource/AtFinalKeyword.java @@ -0,0 +1,8 @@ +import java.io.*; +class AtFinalKeyword { + void foo(File file1, File file2) throws IOException { + try (final FileInputStream in = new FileInputStream(file1); FileOutputStream out = new FileOutputStream(file2)) { + System.out.println(in + ", " + out); + } + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/exceptions/SplitTryWithMultipleResourcesFixTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/exceptions/SplitTryWithMultipleResourcesFixTest.java index e2cd4ce0e393..06dc41ed65ab 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/exceptions/SplitTryWithMultipleResourcesFixTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/exceptions/SplitTryWithMultipleResourcesFixTest.java @@ -47,6 +47,10 @@ public class SplitTryWithMultipleResourcesFixTest extends IGQuickFixesTestCase { doTest(); } + public void testAtFinalKeyword() { + doTest(); + } + public void testAtCodeBlock() { assertQuickfixNotAvailable(); }