20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 6441871
27 * @summary spurious compiler error elicited by packageElement.getEnclosedElements()
28 * @library /tools/javac/lib
29 * @modules jdk.compiler/com.sun.tools.javac.api
30 * jdk.compiler/com.sun.tools.javac.file
31 * @build JavacTestingAbstractProcessor b6341534
32 * @run main T6430209
33 */
34
35 // Note that 6441871 is an interim partial fix for 6430209 that just removes the javac
36 // crash message and stacktrace
37
38 import java.io.*;
39 import java.util.*;
40 import javax.annotation.processing.*;
41 import javax.lang.model.*;
42 import javax.lang.model.element.*;
43 import javax.tools.*;
44 import com.sun.source.util.*;
45 import com.sun.tools.javac.api.*;
46
47
48 public class T6430209 {
49 public static void main(String... args) throws IOException {
50 // set up dir1/test0.java
51 File dir1 = new File("dir1");
52 dir1.mkdir();
53 BufferedWriter fout = new BufferedWriter(new FileWriter(new File(dir1, "test0.java")));
54 fout.write("public class test0 { }");
55 fout.close();
56
57 // run annotation processor b6341534 so we can check diagnostics
58 // -proc:only -processor b6341534 -cp . ./src/*.java
59 String testSrc = System.getProperty("test.src", ".");
60 String testClassPath = System.getProperty("test.class.path");
61 JavacTool tool = JavacTool.create();
62 MyDiagListener dl = new MyDiagListener();
63 try (StandardJavaFileManager fm = tool.getStandardFileManager(dl, null, null)) {
64 fm.setLocation(StandardLocation.CLASS_PATH, Arrays.asList(new File(".")));
65 Iterable<? extends JavaFileObject> files = fm.getJavaFileObjectsFromFiles(Arrays.asList(
66 new File(testSrc, "test0.java"), new File(testSrc, "test1.java")));
67 Iterable<String> opts = Arrays.asList("-proc:only",
68 "-processor", "b6341534",
69 "-processorpath", testClassPath);
70 StringWriter out = new StringWriter();
71 JavacTask task = tool.getTask(out, fm, dl, opts, null, files);
72 task.call();
73 String s = out.toString();
74 System.err.print(s);
75 // Expect the following 2 diagnostics, and no output to log
76 System.err.println(dl.count + " diagnostics; " + s.length() + " characters");
77 if (dl.count != 2 || s.length() != 0)
78 throw new AssertionError("unexpected output from compiler");
79 }
80 }
81
82 static class MyDiagListener implements DiagnosticListener<JavaFileObject> {
83 public void report(Diagnostic d) {
84 System.err.println(d);
85 count++;
86 }
87
88 public int count;
89 }
90 }
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 6441871
27 * @summary spurious compiler error elicited by packageElement.getEnclosedElements()
28 * @library /tools/javac/lib
29 * @modules jdk.compiler/com.sun.tools.javac.api
30 * jdk.compiler/com.sun.tools.javac.file
31 * @build JavacTestingAbstractProcessor b6341534
32 * @run main T6430209
33 */
34
35 // Note that 6441871 is an interim partial fix for 6430209 that just removes the javac
36 // crash message and stacktrace
37
38 import java.io.*;
39 import java.util.*;
40 import javax.tools.*;
41 import com.sun.source.util.*;
42 import com.sun.tools.javac.api.*;
43
44
45 public class T6430209 {
46 public static void main(String... args) throws IOException {
47 // set up dir1/test0.java
48 File dir1 = new File("dir1");
49 dir1.mkdir();
50 BufferedWriter fout = new BufferedWriter(new FileWriter(new File(dir1, "test0.java")));
51 fout.write("public class test0 { }");
52 fout.close();
53
54 // run annotation processor b6341534 so we can check diagnostics
55 // -proc:only -processor b6341534 -cp . ./src/*.java
56 String testSrc = System.getProperty("test.src", ".");
57 String testClassPath = System.getProperty("test.class.path");
58 JavacTool tool = JavacTool.create();
59 try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
60 fm.setLocation(StandardLocation.CLASS_PATH, Arrays.asList(new File(".")));
61 Iterable<? extends JavaFileObject> files = fm.getJavaFileObjectsFromFiles(Arrays.asList(
62 new File(testSrc, "test0.java"), new File(testSrc, "test1.java")));
63 Iterable<String> opts = Arrays.asList("-XDrawDiagnostics",
64 "-proc:only",
65 "-processor", "b6341534",
66 "-processorpath", testClassPath);
67 StringWriter out = new StringWriter();
68 JavacTask task = tool.getTask(out, fm, null, opts, null, files);
69 task.call();
70 String s = out.toString();
71 System.err.print(s);
72 s = s.replace(System.getProperty("line.separator"), "\n");
73 String expected = "test0.java:1:8: compiler.err.duplicate.class: test0\n" +
74 "1 error\n";
75 if (!expected.equals(s))
76 throw new AssertionError("unexpected text in output");
77 }
78 }
79
80 }
|