JavaCompilerTool.setSourcePath(List) will throw IllegalArgumentException when List is empty
Please see the testcase ..
Tried in Solaris SunOS 5.10 Generic sun4u sparc SUNW,Ultra-60
<java-version>
bash-3.00$ java -version
java version "1.6.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59a)
Java HotSpot(TM) Client VM (build 1.6.0-beta-b59a, mixed mode)
</java-version>
<testcase>
import java.io.File;
import java.util.ArrayList;
import javax.tools.JavaCompilerTool;
import javax.tools.JavaFileManager;
import javax.tools.ToolProvider;
public class Test11 {
public static void main(String[] args) {
JavaCompilerTool javac = ToolProvider.defaultJavaCompiler();
JavaFileManager jfm = javac.getStandardFileManager();
javac.setSourcePath(new ArrayList<File>());
}
}
</testcase>
In the above testcase the list size is zero.
Output of the code when compiled and run...
<output>
bash-3.00$ java Test11
Exception in thread "main" java.lang.IllegalArgumentException: -sourcepath
at com.sun.tools.javac.api.Tool.setOption1(Tool.java:188)
at com.sun.tools.javac.api.Tool.setOption(Tool.java:200)
at com.sun.tools.javac.api.Tool.setSourcePath(Tool.java:160)
at Test11.main(Test11.java:11)
</output>
This behaviour is not mentioned in API docs
CompilerAPI should ignore setting of sourcepath if the list is empty, rather throwing IllegalArgumentException.
Please see the testcase ..
Tried in Solaris SunOS 5.10 Generic sun4u sparc SUNW,Ultra-60
<java-version>
bash-3.00$ java -version
java version "1.6.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59a)
Java HotSpot(TM) Client VM (build 1.6.0-beta-b59a, mixed mode)
</java-version>
<testcase>
import java.io.File;
import java.util.ArrayList;
import javax.tools.JavaCompilerTool;
import javax.tools.JavaFileManager;
import javax.tools.ToolProvider;
public class Test11 {
public static void main(String[] args) {
JavaCompilerTool javac = ToolProvider.defaultJavaCompiler();
JavaFileManager jfm = javac.getStandardFileManager();
javac.setSourcePath(new ArrayList<File>());
}
}
</testcase>
In the above testcase the list size is zero.
Output of the code when compiled and run...
<output>
bash-3.00$ java Test11
Exception in thread "main" java.lang.IllegalArgumentException: -sourcepath
at com.sun.tools.javac.api.Tool.setOption1(Tool.java:188)
at com.sun.tools.javac.api.Tool.setOption(Tool.java:200)
at com.sun.tools.javac.api.Tool.setSourcePath(Tool.java:160)
at Test11.main(Test11.java:11)
</output>
This behaviour is not mentioned in API docs
CompilerAPI should ignore setting of sourcepath if the list is empty, rather throwing IllegalArgumentException.
- duplicates
-
JDK-6355177 JSR 199: JavaCompilerTool.setClassPath(List) will throw IllegalArgumentException when List is empty
-
- Closed
-