8249633: doclint reports missing javadoc for JavaFX property methods that have a property description

Reviewed-by: hannesw
diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java
index 2e59383..2c6641d 100644
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java
@@ -46,6 +46,7 @@
 import jdk.javadoc.internal.doclets.toolkit.WriterFactory;
 import jdk.javadoc.internal.doclets.toolkit.util.CommentHelper;
 import jdk.javadoc.internal.doclets.toolkit.util.DocFinder;
+import jdk.javadoc.internal.doclets.toolkit.util.Utils;
 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberTable;
 import jdk.javadoc.internal.doclets.toolkit.CommentUtils;
 
@@ -507,7 +508,10 @@
             if (null == propertyMethod || null == commentSource) {
                 return;
             }
-            DocCommentTree docTree = builder.utils.getDocCommentTree(propertyMethod);
+            Utils utils = builder.utils;
+            DocCommentTree docTree = utils.hasDocCommentTree(propertyMethod)
+                    ? utils.getDocCommentTree(propertyMethod)
+                    : null;
 
             /* The second condition is required for the property buckets. In
              * this case the comment is at the property method (not at the field)
diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java
index 9987570..7bf29be 100644
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java
@@ -2637,14 +2637,16 @@
     }
 
     public boolean hasBlockTag(Element element, DocTree.Kind kind, final String tagName) {
-        CommentHelper ch = getCommentHelper(element);
-        String tname = tagName != null && tagName.startsWith("@")
-                ? tagName.substring(1)
-                : tagName;
-        for (DocTree dt : getBlockTags(element, kind)) {
-            if (dt.getKind() == kind) {
-                if (tname == null || ch.getTagName(dt).equals(tname)) {
-                    return true;
+        if (hasDocCommentTree(element)) {
+            CommentHelper ch = getCommentHelper(element);
+            String tname = tagName != null && tagName.startsWith("@")
+                    ? tagName.substring(1)
+                    : tagName;
+            for (DocTree dt : getBlockTags(element, kind)) {
+                if (dt.getKind() == kind) {
+                    if (tname == null || ch.getTagName(dt).equals(tname)) {
+                        return true;
+                    }
                 }
             }
         }
diff --git a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java
index 2ac83d8..652d889 100644
--- a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java
+++ b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 7112427 8012295 8025633 8026567 8061305 8081854 8150130 8162363
  *      8167967 8172528 8175200 8178830 8182257 8186332 8182765 8025091
- *      8203791 8184205
+ *      8203791 8184205 8249633
  * @summary Test of the JavaFX doclet features.
  * @library ../../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -33,6 +33,10 @@
  * @run main TestJavaFX
  */
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import javadoc.tester.JavadocTester;
 
 public class TestJavaFX extends JavadocTester {
@@ -366,4 +370,56 @@
         // make sure the doclet indeed emits the warning
         checkOutput(Output.OUT, true, "C.java:0: warning - invalid usage of tag <");
     }
+
+    /*
+     * Verify that no warnings are produced on methods that may have synthesized comments.
+     */
+    @Test
+    public void test5() throws IOException {
+        Path src5 = Files.createDirectories(Path.of("src5").resolve("pkg"));
+        Files.writeString(src5.resolve("MyClass.java"),
+                """
+                    package pkg;
+
+                    // The following import not required with --disable-javafx-strict-checks
+                    // import javafx.beans.property.*;
+
+                    /**
+                     * This is my class.
+                     */
+                    public class MyClass {
+                        /**
+                         * This is my property that enables something
+                         */
+                         private BooleanProperty something = new SimpleBooleanProperty(false);
+
+                         public final boolean isSomething() {
+                            return something.get();
+                         }
+
+                         public final void setSomething(boolean val) {
+                            something.set(val);
+                         }
+
+                         public final BooleanProperty somethingProperty() {
+                            return something;
+                         }
+
+                         /** Dummy declaration. */
+                         public class BooleanProperty { }
+                    }
+                    """);
+
+        javadoc("-d", "out5",
+                "--javafx",
+                "--disable-javafx-strict-checks",
+                "-Xdoclint:all",
+                "--source-path", "src5",
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput(Output.OUT, false,
+                "warning",
+                "no comment");
+    }
 }