From 10f38486880f0d89fdda2adc2ec241193af3ee5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=BE=E5=80=99?= <zenghou.fw@alibaba-inc.com>
Date: Thu, 1 Feb 2018 11:38:18 +0800
Subject: [PATCH] fix https://github.com/alibaba/p3c/issues/222

---
 .../pmd/lang/java/rule/oop/PojoMustOverrideToStringRule.java | 5 ++++-
 .../lang/java/rule/oop/xml/PojoMustOverrideToStringRule.xml  | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/oop/PojoMustOverrideToStringRule.java b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/oop/PojoMustOverrideToStringRule.java
index b14e545..a8ed12c 100644
--- a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/oop/PojoMustOverrideToStringRule.java
+++ b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/oop/PojoMustOverrideToStringRule.java
@@ -47,11 +47,14 @@ public class PojoMustOverrideToStringRule extends AbstractPojoRule {
         + "[not(ancestor::Expression/ConditionalAndExpression//EqualityExpression[@Image='!=']//NullLiteral)]"
         + "[not(ancestor::Expression/ConditionalOrExpression//EqualityExpression[@Image='==']//NullLiteral)]";
 
-    private static final String LOMBOK_XPATH = "../Annotation/MarkerAnnotation/Name["
+    private static final String LOMBOK_NAME_XPATH = "/Name["
         + "(@Image='Data' and //ImportDeclaration[@ImportedName='lombok.Data' or @ImportedName='lombok'])"
         + " or (@Image='ToString' and //ImportDeclaration[@ImportedName='lombok.ToString' or @ImportedName='lombok'])"
         + " or (@Image='lombok.Data') or (@Image='lombok.ToString')]";
 
+    private static final String LOMBOK_XPATH = "../Annotation/MarkerAnnotation" + LOMBOK_NAME_XPATH
+        + "|../Annotation/NormalAnnotation" + LOMBOK_NAME_XPATH;
+
     private static final String MESSAGE_KEY_PREFIX = "java.oop.PojoMustOverrideToStringRule.violation.msg";
 
     @Override
diff --git a/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/oop/xml/PojoMustOverrideToStringRule.xml b/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/oop/xml/PojoMustOverrideToStringRule.xml
index 174c2b4..23796e2 100644
--- a/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/oop/xml/PojoMustOverrideToStringRule.xml
+++ b/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/oop/xml/PojoMustOverrideToStringRule.xml
@@ -121,7 +121,7 @@
 	<code-fragment id="lombok-pojo-4">
 		<![CDATA[
 	import lombok.*;
-	@ToString
+	@ToString(callSuper = true)
 	public class FooDO {
 		private String tom;
 	}