aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbpatel <none@none>2013-11-14 13:47:38 -0800
committerbpatel <none@none>2013-11-14 13:47:38 -0800
commitef11d62aaab62c958ffaa7a08aef215744730507 (patch)
tree218408aed175f4fc305e7a2db2009bf11e4dff4f
parent0f76d5094e61655c34f3fc3fa58707f3f399b4c5 (diff)
8025524: javadoc does not correctly locate constructors for nested classes
Reviewed-by: jjg
-rw-r--r--src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java8
-rw-r--r--test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java6
-rw-r--r--test/com/sun/javadoc/testConstructors/TestConstructors.java120
-rw-r--r--test/com/sun/javadoc/testConstructors/pkg1/Outer.java75
-rw-r--r--test/tools/javadoc/generics/genericInnerAndOuter/expected.out6
5 files changed, 203 insertions, 12 deletions
diff --git a/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java b/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java
index 1753a310..8b326b8a 100644
--- a/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java
+++ b/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java
@@ -73,15 +73,11 @@ public class ConstructorDocImpl
/**
* 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 --git a/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java b/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java
index c5cb7519..9e9a15e9 100644
--- a/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java
+++ b/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java
@@ -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 @@ public class TestAnchorNames extends JavadocTester {
//Test nested class
{BUG_ID + FS + "pkg1" + FS + "RegClass._NestedClas$.html",
- "<a name=\"RegClass._NestedClas:D--\">"
+ "<a name=\"Z:Z_NestedClas:D--\">"
},
{BUG_ID + FS + "pkg1" + FS + "RegClass._NestedClas$.html",
- "<a href=\"../pkg1/RegClass._NestedClas$.html#RegClass._NestedClas:D--\">"
+ "<a href=\"../pkg1/RegClass._NestedClas$.html#Z:Z_NestedClas:D--\">"
},
//Test class use page
diff --git a/test/com/sun/javadoc/testConstructors/TestConstructors.java b/test/com/sun/javadoc/testConstructors/TestConstructors.java
new file mode 100644
index 00000000..90524af5
--- /dev/null
+++ b/test/com/sun/javadoc/testConstructors/TestConstructors.java
@@ -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",
+ "<a href=\"../pkg1/Outer.html#Outer--\">Outer</a></span>()"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.html",
+ "<a name=\"Outer--\">"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.html",
+ "<a href=\"../pkg1/Outer.html#Outer-int-\">Outer</a></span>(int&nbsp;i)"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.html",
+ "<a name=\"Outer-int-\">"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html",
+ "<a href=\"../pkg1/Outer.Inner.html#Inner--\">Inner</a></span>()"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html",
+ "<a name=\"Inner--\">"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html",
+ "<a href=\"../pkg1/Outer.Inner.html#Inner-int-\">Inner</a></span>(int&nbsp;i)"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.html",
+ "<a name=\"Inner-int-\">"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html",
+ "<a href=\"../pkg1/Outer.Inner.NestedInner.html#NestedInner--\">NestedInner</a></span>()"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html",
+ "<a name=\"NestedInner--\">"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html",
+ "<a href=\"../pkg1/Outer.Inner.NestedInner.html#NestedInner-int-\">NestedInner</a></span>(int&nbsp;i)"
+ },
+ {BUG_ID + FS + "pkg1" + FS + "Outer.Inner.NestedInner.html",
+ "<a name=\"NestedInner-int-\">"
+ }
+ };
+
+ 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 --git a/test/com/sun/javadoc/testConstructors/pkg1/Outer.java b/test/com/sun/javadoc/testConstructors/pkg1/Outer.java
new file mode 100644
index 00000000..7cf5ef63
--- /dev/null
+++ b/test/com/sun/javadoc/testConstructors/pkg1/Outer.java
@@ -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 --git a/test/tools/javadoc/generics/genericInnerAndOuter/expected.out b/test/tools/javadoc/generics/genericInnerAndOuter/expected.out
index a110940c..1c0040ee 100644
--- a/test/tools/javadoc/generics/genericInnerAndOuter/expected.out
+++ b/test/tools/javadoc/generics/genericInnerAndOuter/expected.out
@@ -16,7 +16,7 @@ class pkg1.O<T>.I<S>
superclass:
java.lang.Object
constructors:
- O.I()
+ I()
methods:
void m1(O<String>.I<Number>)
@@ -36,7 +36,7 @@ class pkg1.X<T>.Y
superclass:
java.lang.Object
constructors:
- X.Y()
+ Y()
class pkg1.X<T>.Y.Z<S>
name: Z / X.Y.Z / pkg1.X.Y.Z
@@ -47,7 +47,7 @@ class pkg1.X<T>.Y.Z<S>
superclass:
java.lang.Object
constructors:
- X.Y.Z()
+ Z()
methods:
void m1(X<String>.Y.Z<Number>)