1 /*
2  * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 /*
25  * @test
26  * @bug 6395974
27  * @summary files are parsed even after failure to find annotation processor is reported
28  * @modules jdk.compiler/com.sun.tools.javac.api
29  *          jdk.compiler/com.sun.tools.javac.file
30  */
31 
32 import java.io.*;
33 import java.util.*;
34 
35 import javax.tools.*;
36 
37 import com.sun.source.util.*;
38 import com.sun.source.util.TaskEvent.Kind;
39 import com.sun.tools.javac.api.*;
40 
41 
42 public class T6395974 {
main(String... args)43     public static void main(String... args) throws Throwable {
44         String self = T6395974.class.getName();
45 
46         String testSrc = System.getProperty("test.src");
47 
48         JavacTool tool = JavacTool.create();
49         try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
50             Iterable<?extends JavaFileObject> f =
51                 fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, self + ".java")));
52 
53             PrintWriter out = new PrintWriter(System.err, true);
54 
55             JavacTaskImpl task = (JavacTaskImpl) tool.getTask(out,
56                                                               fm,
57                                                               null,
58                                                               Arrays.asList("-processor",
59                                                                             "Foo.java"),
60                                                               null,
61                                                               f);
62 
63             MyTaskListener tl = new MyTaskListener();
64             task.setTaskListener(tl);
65 
66             task.call();
67         }
68     }
69 
70     static class MyTaskListener implements TaskListener {
started(TaskEvent e)71         public void started(TaskEvent e) {
72             if (e.getKind() != Kind.COMPILATION) {
73                 throw new AssertionError("Unexpected TaskListener event: " + e);
74             }
75         }
finished(TaskEvent e)76         public void finished(TaskEvent e) {
77         }
78 
79         TaskEvent event;
80     }
81 }
82