diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java index 0cecb03c3b9..05e8972eb27 100644 --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java @@ -243,6 +243,9 @@ public abstract class AbstractMemberWriter implements MemberSummaryWriter, Membe if (utils.isStatic(member)) { code.add("static "); } + if (!utils.isEnum(member) && utils.isFinal(member)) { + code.add("final "); + } } /** diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/FieldWriter.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/FieldWriter.java index 0364d97a6e3..d171283e8f3 100644 --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/FieldWriter.java +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/FieldWriter.java @@ -75,7 +75,7 @@ public interface FieldWriter extends MemberWriter { * Adds the preview output for the given member. * * @param member the member being documented - * @param annotationDocTree content tree to which the preview information will be added + * @param contentTree content tree to which the preview information will be added */ void addPreview(VariableElement member, Content contentTree); 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 bd51aaceb08..83212281bf2 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 @@ -402,6 +402,10 @@ public class Utils { return e.getModifiers().contains(Modifier.DEFAULT); } + public boolean isFinal(Element e) { + return e.getModifiers().contains(Modifier.FINAL); + } + public boolean isPackagePrivate(Element e) { return !(isPublic(e) || isPrivate(e) || isProtected(e)); } diff --git a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java index 8f94a2d47ee..99f6788d1c3 100644 --- a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java +++ b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java @@ -78,7 +78,7 @@ public class TestJavaFX extends JavadocTester {
final C.BooleanPropertyfinal C.DoublePropertyjava.util.List<java.util.Set<? super \
- java.lang.Object>>final java.util.List<java.util.Set<? \
+ super java.lang.Object>>java.util.List<java.lang.String>final java.util.List<java.lang.String>\
+
diff --git a/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java b/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java
index 6b2848442d5..19851317c14 100644
--- a/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java
+++ b/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java
@@ -24,6 +24,7 @@
/*
* @test
* @bug 4951228 6290760 8025633 8026567 8081854 8162363 8175200 8177417 8186332 8182765
+ * 8258602
* @summary Test the case where the overridden method returns a different
* type than the method in the child class. Make sure the
* documentation is inherited but the return type isn't.
@@ -80,4 +81,101 @@ public class TestMemberSummary extends JavadocTester {
private static interface private static final class private static class private static interface private static final class private final inti record component.java.lang.Objectfinal java.lang.Object
m6\
()final ObjectProperty<MyObj[]>ObjectProperty<MyObj[]&g\
- t;final ObjectProperty<My\
+ Obj[]>