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