mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
8025693: recent javadoc changes cause com/sun/javadoc/testLinkOption/TestLinkOption.java to fail
Reviewed-by: darcy
This commit is contained in:
parent
fc85ec65d8
commit
31b34ce39c
2 changed files with 95 additions and 2 deletions
|
@ -619,8 +619,10 @@ public class ClassDocImpl extends ProgramElementDocImpl implements ClassDoc {
|
||||||
Names names = tsym.name.table.names;
|
Names names = tsym.name.table.names;
|
||||||
List<MethodDocImpl> methods = List.nil();
|
List<MethodDocImpl> methods = List.nil();
|
||||||
for (Scope.Entry e = tsym.members().elems; e != null; e = e.sibling) {
|
for (Scope.Entry e = tsym.members().elems; e != null; e = e.sibling) {
|
||||||
if (e.sym != null &&
|
if (e.sym != null
|
||||||
e.sym.kind == Kinds.MTH && e.sym.name != names.init) {
|
&& e.sym.kind == Kinds.MTH
|
||||||
|
&& e.sym.name != names.init
|
||||||
|
&& e.sym.name != names.clinit) {
|
||||||
MethodSymbol s = (MethodSymbol)e.sym;
|
MethodSymbol s = (MethodSymbol)e.sym;
|
||||||
if (!filter || env.shouldDocument(s)) {
|
if (!filter || env.shouldDocument(s)) {
|
||||||
methods = methods.prepend(env.getMethodDoc(s));
|
methods = methods.prepend(env.getMethodDoc(s));
|
||||||
|
|
91
langtools/test/tools/javadoc/8025693/Test.java
Normal file
91
langtools/test/tools/javadoc/8025693/Test.java
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
/*
|
||||||
|
* 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 8025693
|
||||||
|
* @summary javadoc should ignore <clinit> methods found in classes on classpath
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
public class Test {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
new Test().run();
|
||||||
|
}
|
||||||
|
|
||||||
|
final File baseFile = new File("src/Base.java");
|
||||||
|
final String baseText =
|
||||||
|
"package p;\n" +
|
||||||
|
"public class Base { static { } }\n";
|
||||||
|
|
||||||
|
final File srcFile = new File("src/C.java");
|
||||||
|
final String srcText =
|
||||||
|
"package p;\n" +
|
||||||
|
"/** comment */\n" +
|
||||||
|
"public abstract class C extends Base { }\n";
|
||||||
|
|
||||||
|
void run() throws Exception {
|
||||||
|
File classesDir = new File("classes");
|
||||||
|
classesDir.mkdirs();
|
||||||
|
writeFile(baseFile, baseText);
|
||||||
|
String[] javacArgs = {
|
||||||
|
"-d", classesDir.getPath(),
|
||||||
|
baseFile.getPath()
|
||||||
|
};
|
||||||
|
com.sun.tools.javac.Main.compile(javacArgs);
|
||||||
|
|
||||||
|
writeFile(srcFile, srcText);
|
||||||
|
String[] args = {
|
||||||
|
"-d", "api",
|
||||||
|
"-classpath", classesDir.getPath(),
|
||||||
|
"-package", "p",
|
||||||
|
srcFile.getPath()
|
||||||
|
};
|
||||||
|
|
||||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
PrintStream ps = new PrintStream(baos);
|
||||||
|
PrintStream prev = System.err;
|
||||||
|
System.setErr(ps);
|
||||||
|
try {
|
||||||
|
int rc = com.sun.tools.javadoc.Main.execute(args);
|
||||||
|
} finally {
|
||||||
|
System.err.flush();
|
||||||
|
System.setErr(prev);
|
||||||
|
}
|
||||||
|
String out = baos.toString();
|
||||||
|
System.out.println(out);
|
||||||
|
|
||||||
|
String errorMessage = "java.lang.IllegalArgumentException: <clinit>";
|
||||||
|
if (out.contains(errorMessage))
|
||||||
|
throw new Exception("error message found: " + errorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeFile(File file, String body) throws IOException {
|
||||||
|
file.getParentFile().mkdirs();
|
||||||
|
try (FileWriter out = new FileWriter(file)) {
|
||||||
|
out.write(body);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue