src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java
changeset 47395 2ea4edfdef8e
parent 47216 71c04702a3d5
child 47988 fb0b9913ff7e
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java	Thu Oct 19 11:45:23 2017 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java	Thu Oct 19 20:27:47 2017 -0700
@@ -61,6 +61,7 @@
 import com.sun.tools.javac.code.Symbol.ModuleSymbol;
 import com.sun.tools.javac.code.Symbol.PackageSymbol;
 import com.sun.tools.javac.code.Symbol.VarSymbol;
+import com.sun.tools.javac.code.TypeTag;
 import com.sun.tools.javac.comp.AttrContext;
 import com.sun.tools.javac.comp.Env;
 import com.sun.tools.javac.model.JavacElements;
@@ -283,11 +284,17 @@
         MethodSymbol sym = (MethodSymbol)method;
         ClassSymbol origin = (ClassSymbol) sym.owner;
         for (com.sun.tools.javac.code.Type t = toolEnv.getTypes().supertype(origin.type);
-                t.hasTag(com.sun.tools.javac.code.TypeTag.CLASS);
+                t.hasTag(TypeTag.CLASS);
                 t = toolEnv.getTypes().supertype(t)) {
             ClassSymbol c = (ClassSymbol) t.tsym;
             for (com.sun.tools.javac.code.Symbol sym2 : c.members().getSymbolsByName(sym.name)) {
                 if (sym.overrides(sym2, origin, toolEnv.getTypes(), true)) {
+                    // Ignore those methods that may be a simple override
+                    // and allow the real API method to be found.
+                    if (sym2.type.hasTag(TypeTag.METHOD) &&
+                            utils.isSimpleOverride((MethodSymbol)sym2)) {
+                        continue;
+                    }
                     return t;
                 }
             }