diff -r dee28dd47e12 -r 82044fe8c7f7 test/tools/javac/api/TestJavacTask.java --- a/test/tools/javac/api/TestJavacTask.java Fri Sep 27 13:06:38 2013 -0700 +++ b/test/tools/javac/api/TestJavacTask.java Fri Sep 27 16:05:56 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 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 @@ -23,8 +23,8 @@ /* * @test - * @bug 4813736 - * @summary Provide a basic test of access to the Java Model from javac + * @bug 4813736 8015073 + * @summary Provide a basic test of access to the Java Model from javac, and error messages * @author Peter von der Ah\u00e9 * @run main TestJavacTask TestJavacTask.java */ @@ -40,21 +40,36 @@ import javax.tools.ToolProvider; public class TestJavacTask { - - static JavacTaskImpl getTask(JavaCompiler compiler, File... file) { + static final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + static JavacTaskImpl getTask(File... file) { StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null); Iterable files = fm.getJavaFileObjectsFromFiles(Arrays.asList(file)); return (JavacTaskImpl)compiler.getTask(null, fm, null, null, null, files); } - public static void main(String... args) throws IOException { - JavaCompiler tool = ToolProvider.getSystemJavaCompiler(); + static void basicTest(String... args) throws IOException { String srcdir = System.getProperty("test.src"); File file = new File(srcdir, args[0]); - JavacTaskImpl task = getTask(tool, file); + JavacTaskImpl task = getTask(file); for (TypeElement clazz : task.enter(task.parse())) System.out.println(clazz.getSimpleName()); } + static void checkKindError() { + final File testFile = new File("Test.java "); // <-note trailing space! + try { + getTask(testFile); + } catch (IllegalArgumentException iae) { + if (!iae.getMessage().contains("\"" + testFile.getName() + "\"")) { + System.err.println("Got message: " + iae.getMessage()); + throw new RuntimeException("Error: expected string not found"); + } + } + } + + public static void main(String... args) throws IOException { + basicTest(args); + checkKindError(); + } }