diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java index f4e0f25ac52f..0222be70ea43 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java @@ -281,7 +281,8 @@ public class LocalCanBeFinal extends BaseJavaBatchLocalInspectionTool { } private boolean shouldBeIgnored(PsiVariable psiVariable) { - if (psiVariable.hasModifierProperty(PsiModifier.FINAL)) return true; + PsiModifierList modifierList = psiVariable.getModifierList(); + if (modifierList == null || modifierList.hasExplicitModifier(PsiModifier.FINAL)) return true; if (psiVariable instanceof PsiLocalVariable) { return !REPORT_VARIABLES; } diff --git a/java/java-tests/testData/inspection/localCanBeFinal/CatchParameter/src/CatchParameter.java b/java/java-tests/testData/inspection/localCanBeFinal/CatchParameter/src/CatchParameter.java index 06185510844b..fe96bd84ef54 100644 --- a/java/java-tests/testData/inspection/localCanBeFinal/CatchParameter/src/CatchParameter.java +++ b/java/java-tests/testData/inspection/localCanBeFinal/CatchParameter/src/CatchParameter.java @@ -3,8 +3,8 @@ import java.io.*; class CatchParameter { void m() { - try (InputStream in = new FileInputStream("filename")) { // don't warn about 'in' because it is implicitly final - } catch (FileNotFoundException | RuntimeException e) { // don't warn about 'e' because it is implicitly final + try (final InputStream in = new FileInputStream("filename")) { + } catch (final FileNotFoundException | RuntimeException e) { } catch (IOException e) { throw new RuntimeException(e); }