Thu, 09 Oct 2008 16:21:04 +0100
6586091: javac crashes with StackOverflowError
Summary: Types.adapt should avoid infinite loops by exploiting a local cache
Reviewed-by: jjg
1 /*
2 * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
24 /*
25 * @test
26 * @bug 4985072
27 * @summary Test to make sure that exceptions always show up in the
28 * correct order.
29 * @author jamieh
30 * @library ../lib/
31 * @build JavadocTester
32 * @build TestThrowsTag
33 * @run main TestThrowsTag
34 */
36 public class TestThrowsTag extends JavadocTester {
38 //Test information.
39 private static final String BUG_ID = "4985072";
41 //Javadoc arguments.
42 private static final String[] ARGS = new String[] {
43 "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg"
44 };
46 //Input for string search tests.
47 private static final String[][] TEST = {
48 {BUG_ID + FS + "pkg" + FS + "C.html",
49 "<DD><CODE><A HREF=\"../pkg/T1.html\" title=\"class in pkg\">T1</A></CODE> - the first throws tag." + NL +
50 "<DD><CODE><A HREF=\"../pkg/T2.html\" title=\"class in pkg\">T2</A></CODE> - the second throws tag." + NL +
51 "<DD><CODE><A HREF=\"../pkg/T3.html\" title=\"class in pkg\">T3</A></CODE> - the third throws tag." + NL +
52 "<DD><CODE><A HREF=\"../pkg/T4.html\" title=\"class in pkg\">T4</A></CODE> - the fourth throws tag." + NL +
53 "<DD><CODE><A HREF=\"../pkg/T5.html\" title=\"class in pkg\">T5</A></CODE> - the first inherited throws tag." + NL +
54 "<DD><CODE><A HREF=\"../pkg/T6.html\" title=\"class in pkg\">T6</A></CODE> - the second inherited throws tag." + NL +
55 "<DD><CODE><A HREF=\"../pkg/T7.html\" title=\"class in pkg\">T7</A></CODE> - the third inherited throws tag." + NL +
56 "<DD><CODE><A HREF=\"../pkg/T8.html\" title=\"class in pkg\">T8</A></CODE> - the fourth inherited throws tag."
57 },
58 };
59 private static final String[][] NEGATED_TEST = NO_TEST;
61 /**
62 * The entry point of the test.
63 * @param args the array of command line arguments.
64 */
65 public static void main(String[] args) {
66 TestThrowsTag tester = new TestThrowsTag();
67 run(tester, ARGS, TEST, NEGATED_TEST);
68 tester.printSummary();
69 }
71 /**
72 * {@inheritDoc}
73 */
74 public String getBugId() {
75 return BUG_ID;
76 }
78 /**
79 * {@inheritDoc}
80 */
81 public String getBugName() {
82 return getClass().getName();
83 }
84 }