diff --git a/pmd-java/src/main/resources/category/java/design.xml b/pmd-java/src/main/resources/category/java/design.xml index a71858bc12..f30c972c5a 100644 --- a/pmd-java/src/main/resources/category/java/design.xml +++ b/pmd-java/src/main/resources/category/java/design.xml @@ -733,10 +733,10 @@ in each object at runtime. [not(pmd-java:modifiers() = 'static')] [not(./ancestor::ClassDeclaration[1][pmd-java:hasAnnotation('lombok.experimental.UtilityClass')])] [not(.//Annotation[pmd-java:typeIs('lombok.Builder.Default')])] - /VariableDeclarator[*[pmd-java:nodeIs('Literal')] - or VariableAccess[@Name = //FieldDeclaration[pmd-java:modifiers() = 'static']/VariableDeclarator/VariableId/@Name] - or FieldAccess - or ArrayAllocation/ArrayType/ArrayDimensions/ArrayDimExpr/NumericLiteral[@IntLiteral = true()][@Image = "0"]] + /VariableDeclarator[*[last()][@CompileTimeConstant = true() + or self::VariableAccess[@Name = //FieldDeclaration[pmd-java:modifiers() = 'static']/VariableDeclarator/VariableId/@Name] + or self::FieldAccess + or self::ArrayAllocation/ArrayType/ArrayDimensions/ArrayDimExpr/NumericLiteral[@IntLiteral = true()][@Image = "0"]]] /VariableId [not(@Name = //MethodDeclaration[not(pmd-java:modifiers() = 'static')] //SynchronizedStatement/(VariableAccess|FieldAccess[ThisExpression])/@Name)]