From 2703cce280bb210cffe8f8ac918df5f2c4d770f2 Mon Sep 17 00:00:00 2001 From: benzonico Date: Tue, 3 Jan 2017 14:04:42 +0100 Subject: [PATCH] SONARJAVA-1604 Do not take static final field into account (#1166) --- its/ruling/src/test/resources/sonar-server/squid-S3066.json | 5 ----- .../java/org/sonar/java/checks/EnumMutableFieldCheck.java | 3 ++- java-checks/src/test/files/checks/EnumMutableFieldCheck.java | 3 ++- 3 files changed, 4 insertions(+), 7 deletions(-) delete mode 100644 its/ruling/src/test/resources/sonar-server/squid-S3066.json diff --git a/its/ruling/src/test/resources/sonar-server/squid-S3066.json b/its/ruling/src/test/resources/sonar-server/squid-S3066.json deleted file mode 100644 index e2cbf58b0b6..00000000000 --- a/its/ruling/src/test/resources/sonar-server/squid-S3066.json +++ /dev/null @@ -1,5 +0,0 @@ -{ -'org.codehaus.sonar:sonar-server:src/main/java/org/sonar/server/qualityprofile/ActiveRule.java':[ -34, -], -} diff --git a/java-checks/src/main/java/org/sonar/java/checks/EnumMutableFieldCheck.java b/java-checks/src/main/java/org/sonar/java/checks/EnumMutableFieldCheck.java index f427a7447e2..d5c11a23bcf 100644 --- a/java-checks/src/main/java/org/sonar/java/checks/EnumMutableFieldCheck.java +++ b/java-checks/src/main/java/org/sonar/java/checks/EnumMutableFieldCheck.java @@ -71,7 +71,8 @@ private static boolean isNotStaticOrFinal(ModifiersTree modifiersTree) { } private static boolean isMutableFinalMember(VariableTree variableTree) { - return ModifiersUtils.hasModifier(variableTree.modifiers(), Modifier.FINAL) && isMutableMember(variableTree); + ModifiersTree modifiersTree = variableTree.modifiers(); + return !ModifiersUtils.hasModifier(modifiersTree, Modifier.STATIC) && ModifiersUtils.hasModifier(modifiersTree, Modifier.FINAL) && isMutableMember(variableTree); } private static boolean isMutableMember(VariableTree variableTree) { diff --git a/java-checks/src/test/files/checks/EnumMutableFieldCheck.java b/java-checks/src/test/files/checks/EnumMutableFieldCheck.java index 3ff0b9cb35e..728a3b0faf6 100644 --- a/java-checks/src/test/files/checks/EnumMutableFieldCheck.java +++ b/java-checks/src/test/files/checks/EnumMutableFieldCheck.java @@ -50,7 +50,8 @@ public enum Continent3 { private int landMass; public final String[] regions; // Noncompliant {{Lower the visibility of this field.}} public final java.util.Date date; // Noncompliant {{Lower the visibility of this field.}} - + public static final String[] regions2; + Continent3(int countryCount, int landMass) { this.countryCount = countryCount; this.landMass = landMass;