diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java index 2bc5b0471..f26767c65 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java @@ -138,7 +138,11 @@ public class FinalLocalVariableCheck extends Check || (TokenTypes.BOR_ASSIGN == parentType) || (TokenTypes.BAND_ASSIGN == parentType)) { - removeVariable(aAST); + // TODO: is there better way to check is aAST + // in left part of assignment? + if (aAST.getParent().getFirstChild() == aAST) { + removeVariable(aAST); + } } break; diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputFinalLocalVariable.java b/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputFinalLocalVariable.java index 22be5656c..c6beff979 100644 --- a/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputFinalLocalVariable.java +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputFinalLocalVariable.java @@ -141,3 +141,18 @@ class Blah return null; } } + +class test_1241722 +{ + private Object o_; + + public void doSomething(Object _o) + { + System.out.println(_o); + } + + public void doSomething2(Object _o1) + { + o_ = _o1; + } +} diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheckTest.java index 3e8ded82f..63613d2a7 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheckTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheckTest.java @@ -43,6 +43,8 @@ public class FinalLocalVariableCheckTest final String[] expected = { "45:28: Variable 'aArg' should be declared final.", + "149:36: Variable '_o' should be declared final.", + "154:37: Variable '_o1' should be declared final.", }; verify(checkConfig, getPath("coding/InputFinalLocalVariable.java"), expected); } diff --git a/src/xdocs/releasenotes.xml b/src/xdocs/releasenotes.xml index 4b2aa7f8e..1e4b667bd 100755 --- a/src/xdocs/releasenotes.xml +++ b/src/xdocs/releasenotes.xml @@ -61,7 +61,8 @@
  • Fixed problem with cache file (patch 1012389) thanks to Dave Wood.
  • -
  • Fixed example for FinalLocalVariable (bug 1241722)
  • +
  • Fixed example for FinalLocalVariable snf the check itself + (bug 1241722)