-
Bug
-
Resolution: Fixed
-
P3
-
12, 13
-
None
-
b33
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8237553 | 15 | Hannes Wallnoefer | P3 | Resolved | Fixed | b07 |
JDK-8237709 | 14.0.2 | Hannes Wallnoefer | P3 | Resolved | Fixed | master |
JDK-8238150 | 14.0.1 | Unassigned | P3 | Resolved | Fixed | b02 |
Consider the hierarchy below:
$ cat test/Foo.java
package test;
public interface Foo {
/**
* A foo.
*/
Foo foo();
/**
* A bar.
*/
int bar();
}
$ cat test/Bar.java
package test;
/*package*/ class Bar<F extends Foo> implements Foo {
@Override
public F foo() { return null; }
@Override
public int bar() { return 42; }
}
$ cat test/Baz.java
package test;
public class Baz extends Bar<Baz> { }
If we generate the javadoc for these classes, the javadoc for Baz will have several issues:
* the 'foo' member will be shown in black, and will not be clickable.
* same fate for 'bar' member, but actually, this shouldn't even be shown?
* the signature of the 'foo' member will mention the type-variable F, which has been bound by Baz
(please see attached image)
The workaround is to add dumb overrides which delegate to the superclass methods.
$ cat test/Foo.java
package test;
public interface Foo {
/**
* A foo.
*/
Foo foo();
/**
* A bar.
*/
int bar();
}
$ cat test/Bar.java
package test;
/*package*/ class Bar<F extends Foo> implements Foo {
@Override
public F foo() { return null; }
@Override
public int bar() { return 42; }
}
$ cat test/Baz.java
package test;
public class Baz extends Bar<Baz> { }
If we generate the javadoc for these classes, the javadoc for Baz will have several issues:
* the 'foo' member will be shown in black, and will not be clickable.
* same fate for 'bar' member, but actually, this shouldn't even be shown?
* the signature of the 'foo' member will mention the type-variable F, which has been bound by Baz
(please see attached image)
The workaround is to add dumb overrides which delegate to the superclass methods.
- backported by
-
JDK-8237553 Javadoc doesn't handle non-public intermediate types well
-
- Resolved
-
-
JDK-8237709 Javadoc doesn't handle non-public intermediate types well
-
- Resolved
-
-
JDK-8238150 Javadoc doesn't handle non-public intermediate types well
-
- Resolved
-
- relates to
-
JDK-8224134 Fix javadoc issues
-
- Closed
-