1/*
2 * Copyright (c) 2005, 2017, 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     6265137
27 * @summary setOption() and setExtendedOption() of JavacTool will throw exception for some defined options
28 * @author  Peter von der Ah\u00e9
29 * @modules java.compiler
30 *          jdk.compiler
31 */
32
33import java.io.File;
34import java.io.IOException;
35import java.util.Arrays;
36import javax.tools.*;
37
38public class T6265137 {
39    public static void main(String... args) throws IOException {
40        JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
41        DiagnosticListener<JavaFileObject> dl =  new DiagnosticListener<JavaFileObject>() {
42                public void report(Diagnostic<? extends JavaFileObject> message) {
43                    System.out.println(message.getSource()
44                                       +":"+message.getStartPosition()+":"
45                                       +message.getStartPosition()+":"+message.getPosition());
46                    System.out.println(message.toString());
47                    System.out.format("Found problem: %s%n", message.getCode());
48                    System.out.flush();
49                }
50        };
51        try (StandardJavaFileManager fm = javac.getStandardFileManager(dl, null, null)) {
52            String srcdir = System.getProperty("test.src");
53            Iterable<? extends JavaFileObject> files =
54                fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(srcdir, "T6265137a.java")));
55            javac.getTask(null, fm, dl, Arrays.asList("-target","10"), null, files).call();
56        }
57    }
58}
59