# HG changeset patch # User Andrew John Hughes # Date 1326311173 0 # Node ID 6abe8599992e94f5b4a5dc62d3ea4309066ba3ae # Parent fab44a791e0fe2ef2789cdf57e78c3eb395206c2 S7091528: javadoc attempts to parse .class files 2011-12-22 Andrew John Hughes * Makefile.am: Add new patch. * NEWS: Updated. * patches/openjdk/7091528-javadoc_class_files.patch: Add OpenJDK backport to fix javadoc issue. diff -r fab44a791e0f -r 6abe8599992e ChangeLog --- a/ChangeLog Wed Jan 11 12:01:29 2012 +0000 +++ b/ChangeLog Wed Jan 11 19:46:13 2012 +0000 @@ -1,3 +1,10 @@ +2011-12-22 Andrew John Hughes + + * Makefile.am: Add new patch. + * NEWS: Updated. + * patches/openjdk/7091528-javadoc_class_files.patch: + Add OpenJDK backport to fix javadoc issue. + 2011-12-22 Andrew John Hughes * Makefile.am: Add new patch. diff -r fab44a791e0f -r 6abe8599992e Makefile.am --- a/Makefile.am Wed Jan 11 12:01:29 2012 +0000 +++ b/Makefile.am Wed Jan 11 19:46:13 2012 +0000 @@ -368,7 +368,8 @@ patches/openjdk/7043564-hugepage.patch \ patches/openjdk/7102369-7094468-rmiregistry.patch \ patches/openjdk/7103725-ssl_beast_regression.patch \ - patches/openjdk/6851973-kerberos.patch + patches/openjdk/6851973-kerberos.patch \ + patches/openjdk/7091528-javadoc_class_files.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r fab44a791e0f -r 6abe8599992e NEWS --- a/NEWS Wed Jan 11 12:01:29 2012 +0000 +++ b/NEWS Wed Jan 11 19:46:13 2012 +0000 @@ -18,6 +18,7 @@ - S7094468: rmiregistry clean up - S7103725, RH767129: REGRESSION - 6u29 breaks ssl connectivity using TLS_DH_anon_WITH_AES_128_CBC_SHA - S6851973, PR830: ignore incoming channel binding if acceptor does not set one + - S7091528: javadoc attempts to parse .class files New in release 1.10.4 (2011-10-18): diff -r fab44a791e0f -r 6abe8599992e patches/openjdk/7091528-javadoc_class_files.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7091528-javadoc_class_files.patch Wed Jan 11 19:46:13 2012 +0000 @@ -0,0 +1,191 @@ +# HG changeset patch +# User jjg +# Date 1316215126 25200 +# Node ID dea82aa3ca4fc15712cc8cfce72caf0d3fb210fc +# Parent c0835c8489b0fc6c5c20095ed0f0d6c1b01b69e0 +7091528: javadoc attempts to parse .class files +Reviewed-by: darcy + +diff -r c0835c8489b0 -r dea82aa3ca4f src/share/classes/com/sun/tools/javadoc/JavadocTool.java +--- openjdk/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Fri Sep 16 14:16:11 2011 +0100 ++++ openjdk/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Fri Sep 16 16:18:46 2011 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2001, 2011, 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 +@@ -257,24 +257,15 @@ + for (String p: excludedPackages) + includedPackages.put(p, false); + +- if (docenv.fileManager.hasLocation(StandardLocation.SOURCE_PATH)) { +- searchSubPackages(subPackages, +- includedPackages, +- packages, packageFiles, +- StandardLocation.SOURCE_PATH, +- EnumSet.of(JavaFileObject.Kind.SOURCE)); +- searchSubPackages(subPackages, +- includedPackages, +- packages, packageFiles, +- StandardLocation.CLASS_PATH, +- EnumSet.of(JavaFileObject.Kind.CLASS)); +- } else { +- searchSubPackages(subPackages, +- includedPackages, +- packages, packageFiles, +- StandardLocation.CLASS_PATH, +- EnumSet.of(JavaFileObject.Kind.SOURCE, JavaFileObject.Kind.CLASS)); +- } ++ StandardLocation path = docenv.fileManager.hasLocation(StandardLocation.SOURCE_PATH) ++ ? StandardLocation.SOURCE_PATH : StandardLocation.CLASS_PATH; ++ ++ searchSubPackages(subPackages, ++ includedPackages, ++ packages, packageFiles, ++ path, ++ EnumSet.of(JavaFileObject.Kind.SOURCE)); ++ + return packageFiles; + } + +diff -r c0835c8489b0 -r dea82aa3ca4f test/tools/javadoc/parser/7091528/T7091528.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javadoc/parser/7091528/T7091528.java Fri Sep 16 16:18:46 2011 -0700 +@@ -0,0 +1,71 @@ ++/* ++ * Copyright (c) 2009, 2011, 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 7091528 ++ * @summary javadoc attempts to parse .class files ++ * @compile p/C1.java p/q/C2.java ++ * @run main T7091528 ++ */ ++ ++import java.io.File; ++import java.io.PrintWriter; ++import java.io.StringWriter; ++ ++public class T7091528 { ++ public static void main(String... args) { ++ new T7091528().run(); ++ } ++ ++ void run() { ++ File testSrc = new File(System.getProperty("test.src")); ++ File testClasses = new File(System.getProperty("test.classes")); ++ String[] args = { ++ "-d", ".", ++ "-sourcepath", testClasses + File.pathSeparator + testSrc, ++ "-subpackages", ++ "p" ++ }; ++ ++ StringWriter sw = new StringWriter(); ++ PrintWriter pw = new PrintWriter(sw); ++ String doclet = com.sun.tools.doclets.standard.Standard.class.getName(); ++ int rc = com.sun.tools.javadoc.Main.execute("javadoc", pw, pw, pw, doclet, args); ++ pw.close(); ++ ++ String out = sw.toString(); ++ if (!out.isEmpty()) { ++ System.err.println(out); ++ } ++ ++ if (rc != 0) ++ System.err.println("javadoc failed: exit code = " + rc); ++ ++ if (out.matches("(?s).*p/[^ ]+\\.class.*")) ++ throw new Error("reading .class files"); ++ ++ if (!new File("index.html").exists()) ++ throw new Error("index.html not found"); ++ } ++} +diff -r c0835c8489b0 -r dea82aa3ca4f test/tools/javadoc/parser/7091528/p/C1.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javadoc/parser/7091528/p/C1.java Fri Sep 16 16:18:46 2011 -0700 +@@ -0,0 +1,28 @@ ++/* ++ * Copyright (c) 2011, 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 p1; ++ ++/** This is class C1. */ ++public class C1 { } ++ +diff -r c0835c8489b0 -r dea82aa3ca4f test/tools/javadoc/parser/7091528/p/q/C2.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javadoc/parser/7091528/p/q/C2.java Fri Sep 16 16:18:46 2011 -0700 +@@ -0,0 +1,28 @@ ++/* ++ * Copyright (c) 2011, 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 p.q; ++ ++/** This is class p.q.C2. */ ++public class C2 { } ++