mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 18:44:38 +02:00
8029145: javadoc fails with java.lang.IllegalStateException: endPosTable already set
Reviewed-by: jjg
This commit is contained in:
parent
8daec20c86
commit
c7480b6513
2 changed files with 21 additions and 12 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2014, 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
|
||||
|
@ -30,6 +30,7 @@ import java.io.IOException;
|
|||
import java.util.Collection;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import javax.tools.JavaFileManager.Location;
|
||||
|
@ -238,11 +239,14 @@ public class JavadocTool extends com.sun.tools.javac.main.JavaCompiler {
|
|||
files = lb.toList();
|
||||
}
|
||||
|
||||
Set<JavaFileObject> ufiles = new HashSet<>();
|
||||
for (JavaFileObject fo : files) {
|
||||
if (ufiles.add(fo)) { // ignore duplicates
|
||||
// messager.notice("main.Loading_source_file", fn);
|
||||
trees.append(parse(fo));
|
||||
hasFiles = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasFiles) {
|
||||
messager.warning(Messager.NOPOS, "main.no_source_files_for_package",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2009, 2014, 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
|
||||
|
@ -23,8 +23,8 @@
|
|||
|
||||
/**
|
||||
* @test
|
||||
* @bug 7091528
|
||||
* @summary javadoc attempts to parse .class files
|
||||
* @bug 7091528 8029145
|
||||
* @summary ensures javadoc parses unique source files and ignores all class files
|
||||
* @compile p/C1.java p/q/C2.java
|
||||
* @run main T7091528
|
||||
*/
|
||||
|
@ -37,17 +37,22 @@ 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", ".",
|
||||
// 7091528, tests if class files are being ignored
|
||||
runTest("-d", ".",
|
||||
"-sourcepath", testClasses + File.pathSeparator + testSrc,
|
||||
"-subpackages",
|
||||
"p"
|
||||
};
|
||||
"p");
|
||||
// 8029145, tests if unique source files are parsed
|
||||
runTest("-d", ".",
|
||||
"-sourcepath", testSrc.getAbsolutePath(),
|
||||
"-subpackages",
|
||||
"p:p.q");
|
||||
|
||||
}
|
||||
void runTest(String... args) {
|
||||
StringWriter sw = new StringWriter();
|
||||
PrintWriter pw = new PrintWriter(sw);
|
||||
String doclet = com.sun.tools.doclets.standard.Standard.class.getName();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue