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;
|
||||
List<MethodDocImpl> methods = List.nil();
|
||||
for (Scope.Entry e = tsym.members().elems; e != null; e = e.sibling) {
|
||||
if (e.sym != null &&
|
||||
e.sym.kind == Kinds.MTH && e.sym.name != names.init) {
|
||||
if (e.sym != null
|
||||
&& e.sym.kind == Kinds.MTH
|
||||
&& e.sym.name != names.init
|
||||
&& e.sym.name != names.clinit) {
|
||||
MethodSymbol s = (MethodSymbol)e.sym;
|
||||
if (!filter || env.shouldDocument(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