Issue #5327: fixed finding annotation name with comment embedded
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtility.java b/src/main/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtility.java
index bb673e9..a36d609 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtility.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtility.java
@@ -155,7 +155,7 @@
         for (DetailAST child = holder.getFirstChild();
             child != null; child = child.getNextSibling()) {
             if (child.getType() == TokenTypes.ANNOTATION) {
-                final DetailAST firstChild = child.getFirstChild();
+                final DetailAST firstChild = child.findFirstToken(TokenTypes.AT);
                 final String name =
                     FullIdent.createFullIdent(firstChild.getNextSibling()).getText();
                 if (annotation.equals(name)) {
diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtilityTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtilityTest.java
index 090b2d3..a000ea5 100644
--- a/src/test/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtilityTest.java
+++ b/src/test/java/com/puppycrawl/tools/checkstyle/utils/AnnotationUtilityTest.java
@@ -173,6 +173,7 @@
         final DetailAST annotationName = new DetailAST();
         annotations.setType(TokenTypes.ANNOTATIONS);
         annotation.setType(TokenTypes.ANNOTATION);
+        annotationNameHolder.setType(TokenTypes.AT);
         annotationName.setText("Annotation");
 
         annotationNameHolder.setNextSibling(annotationName);
@@ -184,4 +185,31 @@
         assertTrue("Annotation should contain " + astForTest,
                 AnnotationUtility.containsAnnotation(astForTest, "Annotation"));
     }
+
+    @Test
+    public void testContainsAnnotationWithComment() {
+        final DetailAST astForTest = new DetailAST();
+        astForTest.setType(TokenTypes.PACKAGE_DEF);
+        final DetailAST child = new DetailAST();
+        final DetailAST annotations = new DetailAST();
+        final DetailAST annotation = new DetailAST();
+        final DetailAST annotationNameHolder = new DetailAST();
+        final DetailAST annotationName = new DetailAST();
+        final DetailAST comment = new DetailAST();
+        annotations.setType(TokenTypes.ANNOTATIONS);
+        annotation.setType(TokenTypes.ANNOTATION);
+        annotationNameHolder.setType(TokenTypes.AT);
+        comment.setType(TokenTypes.BLOCK_COMMENT_BEGIN);
+        annotationName.setText("Annotation");
+
+        annotationNameHolder.setNextSibling(annotationName);
+        annotation.setFirstChild(comment);
+        comment.setNextSibling(annotationNameHolder);
+        annotations.setFirstChild(annotation);
+        child.setNextSibling(annotations);
+        astForTest.setFirstChild(child);
+
+        assertTrue("Annotation should contain " + astForTest,
+                AnnotationUtility.containsAnnotation(astForTest, "Annotation"));
+    }
 }