package com.puppycrawl.tools.checkstyle.checks.coding; import java.util.BitSet; public class InputValidateOnlyOverlappingTrue { private static String fieldStatic = "fieldStatic"; private final long fieldFinal1; private final long fieldFinal2; private final BitSet fieldFinal3; private String field1; private String field2; private String field3 = "some string"; private boolean booleanField; private int intField; public InputValidateOnlyOverlappingTrue(String field1) { field1 = field1; // violation fieldFinal1 = 0; fieldFinal2 = 0; fieldFinal3 = new BitSet(); } public InputValidateOnlyOverlappingTrue(long value) { fieldFinal1 = value; fieldFinal2 = 0; fieldFinal3 = new BitSet(); } public InputValidateOnlyOverlappingTrue() { fieldFinal1 = 0; long fieldFinal2 = 0L; fieldFinal2 = 1L; this.fieldFinal2 = fieldFinal2; fieldFinal3 = new BitSet(); } public InputValidateOnlyOverlappingTrue(String name, long id) { fieldFinal1 = 0; long field1 = 0L; field1 = field1; // violation this.fieldFinal2 = 1L; fieldFinal3 = new BitSet(); } public InputValidateOnlyOverlappingTrue(int param) { fieldFinal2 = 0L; fieldFinal3 = new BitSet(); long finalField1 = 1L; try { finalField1 = 2L; } catch (Exception ex) {} this.fieldFinal1 = finalField1; } public InputValidateOnlyOverlappingTrue(BitSet fieldFinal3) { fieldFinal1 = 1L; fieldFinal2 = 0L; fieldFinal3 = new BitSet(); if (true) { fieldFinal3 = (BitSet) fieldFinal3.clone(); } this.fieldFinal3 = fieldFinal3; } void foo1(String methodParam) { methodParam = methodParam; } void foo2() { String localVar = "values"; localVar = localVar; } void foo3() { String field1 = "values"; field1 = field1; // violation } void foo4(String methodParam) { fieldStatic = methodParam; } void foo5(String methodParam) { methodParam = methodParam + "string"; } void foo6(String field1) { field1 = this.field1 + field1; this.field1 = field1 + field1; field1 = field1 + this.field1; field1 = this.field1 + this.field1; this.field1 = this.field1 + this.field1; this.field1 = this.field1 + field1; field1 += field1; } String addSuffixToParameter(String methodParam) { return methodParam += "suffix"; } String addSuffixToField(String field1) { return field1 += "suffix"; } String addSuffixToThisField(String field1) { return this.field1 += "suffix"; } static void foo7(String fieldStatic) { // this.fieldStatic = fieldStatic; <- fieldStatic cannot be referenced from a static context fieldStatic = fieldStatic; } void foo8(Long field1) { field1 += field1; // violation } void foo9(Long fieldFinal1) { // this.fieldFinal1 += fieldFinal1; <- cannot assign value to a final variable fieldFinal1 += fieldFinal1; } void method1() { field1 = "2"; } void method2() { method1(); } void method3() { staticFoo(); staticTwoArgs("message", "arg"); staticTwoArgs("message", 1); this.method1() ; } static void staticFoo() { } static void foo10() { staticFoo(); staticTwoArgs("message", "arg"); } // void staticFoo() {} -> compile time error. Already defined in the scope. static void staticTwoArgs(String message1, String argument) {} void staticTwoArgs(String message1, int argument) {} static void foo16() { long fieldFinal1 = 5L; // this.fieldFinal1 = fieldFinal1; // compile time error: cannot be referenced from a static context fieldFinal1 = 11L; } static void foo17() { String fieldStatic = ""; // this.fieldStatic = fieldStatic; // compile time error: cannot be referenced from a static context fieldStatic = "Hello, World!"; } InputValidateOnlyOverlappingTrue(boolean flag) { fieldFinal1 = 0L; fieldFinal2 = 0L; fieldFinal3 = new BitSet(); long field1 = 1L; field1 = field1; // violation } InputValidateOnlyOverlappingTrue(boolean flag, String name) { fieldFinal1 = 0L; fieldFinal2 = 0L; fieldFinal3 = new BitSet(); long field1 = 1L; field1 = field1; // violation return; } void foo18() { field1 = "Hello"; } void foo19(String field1) { field1 = "Hello"; } void foo20() { boolean foo21 = this.foo21(""); if (foo21) { } } boolean foo21(String s) { return true; } void foo22() { long fieldFinal1 = 1L; // this.fieldFinal1 = fieldFinal1; <- cannot assign value to a final variable fieldFinal1 = fieldFinal1; } void foo23() { field1 = "Hello!"; } void foo24() { String field1 = "Hello"; field1 = "Java"; this.booleanField = true; this.booleanField = booleanField; } void foo25() { try { if (true) { String field1 = "Hello, World!"; if (true) { field1 = new String(); } else { field1 = new String(); } } } catch (Exception ex) { } } void foo26(String field1) { field1 = field1.replace('/', '*'); // violation } void foo27() { int intField = -1; if (intField == -1) { intField = 20; } else { intField = this.intField / 100; } } void foo28() { boolean booleanField = true; booleanField = !booleanField; // violation } static void foo29(String field1) { // this.field1 = true ? "field1" : field1; <- compile time error: cannot be referenced from a static context field1 = true ? "field1" : field1; } void foo30(String field1) { field1 = true ? "field1" : field1; // violation } void foo31(String field1) { field1 = this.field1; } String foo32(String field1) { field1 = addSuffixToField(field1); // no violation!!! it is just modification of parameter which is returned at the end of the method return field1; } String foo33(String field1) { field1 = addSuffixToField(field1); // violation (no return, variable 'stringField' will not be saved after method execution) return "New String"; } String foo34(String field1) { field1 = field1.replace('A', 'B'); if (field1.contains("C")) { return field1; } else { return field1 + 'C'; } } String foo35() { String field1 = "values"; field1 = field1; return field1; } void foo36(String field1) { field1 = field1.replace('/', '*'); field1 = this.field1; } String foo37(String field1) { field1 += "suffix"; // violation return "New string"; } static void foo38() { // this.fieldStatic = ""; <-- compile time error: cannot be referenced from a static context fieldStatic = ""; } static void foo39() { boolean booleanField = true; // this.booleanField = !booleanField; <-- compile time error: cannot be referenced from a static context booleanField = !booleanField; } static void foo40() { try { boolean booleanField = true; // this.booleanField = !booleanField; <-- compile time error: cannot be referenced from a static context booleanField = !booleanField; } catch (Exception e) {} } static { fieldStatic = ""; } // { // if we assign variable to a final variable in initialization block, // it will lead to compile time error in constructor block: variable migh have been // already assigned // fieldFinal1 = 1; // } { String field1 = ""; field1 = field1; // violation } static { fieldStatic = ""; String field1 = ""; // this.field1 = field1; <-- compile time error: cannot be referenced from a static context field1 = field1; } void foo41(long fieldFinal1) { // this.fieldFinal1 = 1L; <- cannot assign value to a final variable fieldFinal1 = fieldFinal1; } void foo42(String fieldStatic) { this.fieldStatic = fieldStatic; } void foo43(String fieldStatic) { fieldStatic = fieldStatic; } void foo44(String fieldStatic) { fieldStatic = this.fieldStatic; } private String servletRelativeAction; public String getServletRelativeAction() { return this.servletRelativeAction; } public String foo45() { String servletRelativeAction = getServletRelativeAction(); if (true) { return processAction("action"); } else if (servletRelativeAction.endsWith("/")) { if (servletRelativeAction.startsWith("/")) { servletRelativeAction = "" + servletRelativeAction; } } servletRelativeAction = "servletRelativeAction"; return processAction(servletRelativeAction); } private String processAction(String servletRelativeAction) { return ""; } public InputValidateOnlyOverlappingTrue(long fieldFinal1, long fieldFinal2, BitSet fieldFinal3, boolean booleanField) { this.fieldFinal1 = fieldFinal1; this.fieldFinal2 = fieldFinal2; this.fieldFinal3 = fieldFinal3; booleanField = this.booleanField; if (booleanField) { booleanField = "Hello, World!".equals("Hello, Checkstyle!"); } this.booleanField = booleanField; } void foo46(boolean booleanField) { booleanField = this.booleanField; if (booleanField) { booleanField = "Hello, World!".equals("Hello, Checkstyle!"); } this.booleanField = booleanField; } static void foo47(String fieldStatic) { fieldStatic = "Andrei"; } void foo48(long fieldFinal1) { fieldFinal1 = 1L; } private boolean foo49(boolean booleanField) { boolean suppressionSourceExists = true; try { } catch (Exception ex) { suppressionSourceExists = false; } finally { if (booleanField) { try { } catch (Exception ignored) { this.booleanField = false; } } } return suppressionSourceExists; } void foo50(String fieldStatic) { fieldStatic = fieldStatic; } void foo51(String methodParam) { fieldStatic = methodParam; } void foo52(String fieldStatic) { fieldStatic += fieldStatic; } void foo53(String fieldStatic) { fieldStatic += fieldStatic; } void foo54(String methodParam) { fieldStatic += methodParam; } void foo55(String methodParam) { fieldStatic += fieldStatic; } void foo56(boolean booleanField) { booleanField = this.booleanField; } boolean foo57(boolean booleanField) { booleanField = !booleanField; return booleanField; } }