Relative link tags in record javadoc don't resolve
Jonathan Gibbons
jonathan.gibbons at oracle.com
Tue Dec 24 19:59:32 UTC 2019
https://bugs.openjdk.java.net/browse/JDK-8236539
-- Jon
On 12/24/19 11:54 AM, Jonathan Gibbons wrote:
> Michael,
>
> Thanks for the report.
>
> I'll follow up and file a bug if necessary.
>
> -- Jon
>
> On 12/24/19 11:28 AM, Michael Hixson wrote:
>> Hello,
>>
>> The javadoc tool in 14-ea+28-1366 doesn't resolve {@link} tags in
>> records unless the link target is qualified with its class name. This
>> seems like a bug because it's different than the behavior for
>> non-record classes.
>>
>> Take this code for example:
>>
>> package example;
>>
>> public class JavadocTest {
>> /**
>> * {@link #foo()}
>> * {@link Bar}
>> */
>> public static class Foo {
>> public void foo() {}
>> }
>>
>> /**
>> * {@link #bar()}
>> * {@link Foo}
>> */
>> public record Bar() {
>> public void bar() {}
>> }
>> }
>>
>> The javadoc tool complains about both of the link tags in the "Bar"
>> record class. It's fine with the similar-looking link tags in the
>> "Foo" non-record class.
>>
>> javadoc --enable-preview --release 14 -d jdoc
>> src/main/java/example/JavadocTest.java
>>
>> src\main\java\example\JavadocTest.java:13: error: reference not
>> found
>> * {@link #bar()}
>> ^
>> src\main\java\example\JavadocTest.java:14: error: reference not
>> found
>> * {@link Foo}
>> ^
>>
>> If I qualify the link tags in the record class, then javadoc is happy.
>>
>> package example;
>>
>> public class JavadocTest {
>> /**
>> * {@link #foo()}
>> * {@link Bar}
>> */
>> public static class Foo {
>> public void foo() {}
>> }
>>
>> /**
>> * {@link JavadocTest.Bar#bar()}
>> * {@link JavadocTest.Foo}
>> */
>> public record Bar() {
>> public void bar() {}
>> }
>> }
>>
>> -Michael
More information about the amber-dev
mailing list