From 16bf1c5c9901bfe6dbc007b808500f91ea021e9c Mon Sep 17 00:00:00 2001 From: Anthony Whitford Date: Mon, 2 Sep 2013 11:15:26 -0700 Subject: [PATCH] Bug 881 - Skipping the setter check for final fields for the BeanMembersShouldSerialize rule. --- .../java/rule/javabeans/BeanMembersShouldSerializeRule.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/javabeans/BeanMembersShouldSerializeRule.java b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/javabeans/BeanMembersShouldSerializeRule.java index 286e091182..52b96866ac 100644 --- a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/javabeans/BeanMembersShouldSerializeRule.java +++ b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/javabeans/BeanMembersShouldSerializeRule.java @@ -80,7 +80,8 @@ public class BeanMembersShouldSerializeRule extends AbstractJavaRule { boolean hasGetMethod = Arrays.binarySearch(methNameArray, "get" + varName) >= 0 || Arrays.binarySearch(methNameArray, "is" + varName) >= 0; boolean hasSetMethod = Arrays.binarySearch(methNameArray, "set" + varName) >= 0; - if (!hasGetMethod || !hasSetMethod) { + // Note that a Setter method is not applicable to a final variable... + if (!hasGetMethod || (!decl.getAccessNodeParent().isFinal() && !hasSetMethod)) { addViolation(data, decl.getNode(), decl.getImage()); } }