# HG changeset patch # User bpatel # Date 1384465658 28800 # Node ID 11ba59c9bbb5a41b780793da63823395bd524232 # Parent fdb441b5028905400ad92210037fb3ed51c121d3 8025524: javadoc does not correctly locate constructors for nested classes Reviewed-by: jjg diff -r fdb441b50289 -r 11ba59c9bbb5 langtools/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java --- a/langtools/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java Thu Nov 14 19:28:20 2013 +0000 +++ b/langtools/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java Thu Nov 14 13:47:38 2013 -0800 @@ -73,15 +73,11 @@ /** * Get the name. * - * @return the name of the member qualified by class (but not package) + * @return the name of the member. */ public String name() { ClassSymbol c = sym.enclClass(); - String n = c.name.toString(); - for (c = c.owner.enclClass(); c != null; c = c.owner.enclClass()) { - n = c.name.toString() + "." + n; - } - return n; + return c.name.toString(); } /** diff -r fdb441b50289 -r 11ba59c9bbb5 langtools/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java --- a/langtools/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java Thu Nov 14 19:28:20 2013 +0000 +++ b/langtools/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java Thu Nov 14 13:47:38 2013 -0800 @@ -23,7 +23,7 @@ /* * @test - * @bug 8025633 + * @bug 8025633 8025524 * @summary Test for valid name attribute in HTML anchors. * @author Bhavesh Patel * @library ../lib/ @@ -196,10 +196,10 @@ //Test nested class {BUG_ID + FS + "pkg1" + FS + "RegClass._NestedClas$.html", - "" + "" }, {BUG_ID + FS + "pkg1" + FS + "RegClass._NestedClas$.html", - "" + "" }, //Test class use page diff -r fdb441b50289 -r 11ba59c9bbb5 langtools/test/com/sun/javadoc/testConstructors/TestConstructors.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/com/sun/javadoc/testConstructors/TestConstructors.java Thu Nov 14 13:47:38 2013 -0800 @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8025524 + * @summary Test for constructor name which should be a non-qualified name. + * @author Bhavesh Patel + * @library ../lib/ + * @build JavadocTester TestConstructors + * @run main TestConstructors + */ + +public class TestConstructors extends JavadocTester { + + private static final String BUG_ID = "8025524"; + + //Input for string search tests. + private static final String[][] TEST = { + {BUG_ID + FS + "pkg1" + FS + "Outer.html", + "Outer()" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.html", + "" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.html", + "Outer(int i)" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.html", + "" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html", + "Inner()" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html", + "" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html", + "Inner(int i)" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html", + "" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html", + "NestedInner()" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html", + "" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html", + "NestedInner(int i)" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html", + "" + } + }; + + private static final String[][] NEGATED_TEST = { + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html", + "Outer.Inner--" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html", + "Outer.Inner-int-" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html", + "Outer.Inner.NestedInner--" + }, + {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html", + "Outer.Inner.NestedInner-int-" + } + }; + + private static final String[] ARGS = new String[] { + "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg1" + }; + + /** + * The entry point of the test. + * @param args the array of command line arguments. + */ + public static void main(String[] args) throws Exception { + TestConstructors tester = new TestConstructors(); + run(tester, ARGS, TEST, NEGATED_TEST); + tester.printSummary(); + } + + /** + * {@inheritDoc} + */ + public String getBugId() { + return BUG_ID; + } + + /** + * {@inheritDoc} + */ + public String getBugName() { + return getClass().getName(); + } +} diff -r fdb441b50289 -r 11ba59c9bbb5 langtools/test/com/sun/javadoc/testConstructors/pkg1/Outer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/com/sun/javadoc/testConstructors/pkg1/Outer.java Thu Nov 14 13:47:38 2013 -0800 @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package pkg1; + +public class Outer { + + /** + * An outer constructor. + */ + public Outer() { + } + + /** + * Another outer constructor. + */ + public Outer(int i) { + } + + /** + * A nested class. + */ + public class Inner { + + /** + * An inner constructor. + */ + public Inner() { + } + + /** + * Another inner constructor. + */ + public Inner(int i) { + } + + /** + * A nested inner class. + */ + public class NestedInner { + + /** + * A nested inner constructor. + */ + public NestedInner() { + } + + /** + * Another nested inner constructor. + */ + public NestedInner(int i) { + } + } + } +} diff -r fdb441b50289 -r 11ba59c9bbb5 langtools/test/tools/javadoc/generics/genericInnerAndOuter/expected.out --- a/langtools/test/tools/javadoc/generics/genericInnerAndOuter/expected.out Thu Nov 14 19:28:20 2013 +0000 +++ b/langtools/test/tools/javadoc/generics/genericInnerAndOuter/expected.out Thu Nov 14 13:47:38 2013 -0800 @@ -16,7 +16,7 @@ superclass: java.lang.Object constructors: - O.I() + I() methods: void m1(O.I) @@ -36,7 +36,7 @@ superclass: java.lang.Object constructors: - X.Y() + Y() class pkg1.X.Y.Z name: Z / X.Y.Z / pkg1.X.Y.Z @@ -47,7 +47,7 @@ superclass: java.lang.Object constructors: - X.Y.Z() + Z() methods: void m1(X.Y.Z)