changeset 2549:6abe8599992e

S7091528: javadoc attempts to parse .class files 2011-12-22 Andrew John Hughes <ahughes@redhat.com> * Makefile.am: Add new patch. * NEWS: Updated. * patches/openjdk/7091528-javadoc_class_files.patch: Add OpenJDK backport to fix javadoc issue.
author Andrew John Hughes <ahughes@redhat.com>
date Wed, 11 Jan 2012 19:46:13 +0000
parents fab44a791e0f
children 6c62647fb675
files ChangeLog Makefile.am NEWS patches/openjdk/7091528-javadoc_class_files.patch
diffstat 4 files changed, 201 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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  <ahughes@redhat.com>
+
+	* 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  <ahughes@redhat.com>
 
 	* Makefile.am: Add new patch.
--- 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 += \
--- 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):
 
--- /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 { }
++