javac bug when calling javac from the ToolProvider

Remi Forax forax at univ-mlv.fr
Tue Jan 24 10:59:18 UTC 2017


Hi all,
when calling javac from the ToolProvider, i get a NPE with the jdkb152/b153.

in getLocationForModule(Path), pathLocations can be null 
  Location getLocationForModule(Path dir) {
     return pathLocations.get(dir);
  }

getLocationForModule(String) detects that pathLocations may be null and acts accordingly,
but there is no such check in getLocationForModule(Path).

another question is why the behavior of javac is different when calling by the ToolProvider than using the main.

cheers,
Rémi

java.lang.NullPointerException
	at jdk.compiler/com.sun.tools.javac.file.Locations$OutputLocationHandler.getLocationForModule(Locations.java:556)
	at jdk.compiler/com.sun.tools.javac.file.Locations.getLocationForModule(Locations.java:1664)
	at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.getLocationForModule(JavacFileManager.java:996)
	at jdk.compiler/com.sun.tools.javac.comp.Modules.getModuleLocation(Modules.java:482)
	at jdk.compiler/com.sun.tools.javac.comp.Modules.getModuleLocation(Modules.java:465)
	at jdk.compiler/com.sun.tools.javac.comp.Modules.setCompilationUnitModules(Modules.java:366)
	at jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:265)
	at jdk.compiler/com.sun.tools.javac.comp.Modules.initModules(Modules.java:231)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.initModules(JavaCompiler.java:1043)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:937)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:307)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:160)
	at jdk.compiler/com.sun.tools.javac.main.JavacToolProvider.run(JavacToolProvider.java:46)
	at java.base/java.util.spi.ToolProvider.run(ToolProvider.java:137)
	at com.github.forax.pro.plugin.compiler at 0.9/com.github.forax.pro.plugin.compiler.CompilerPlugin.compile(CompilerPlugin.java:178)
	at com.github.forax.pro.plugin.compiler at 0.9/com.github.forax.pro.plugin.compiler.CompilerPlugin.execute(CompilerPlugin.java:108)
	at com.github.forax.pro at 0.9/com.github.forax.pro.Pro.execute(Pro.java:257)
	at com.github.forax.pro at 0.9/com.github.forax.pro.Pro.runAll(Pro.java:237)
	at com.github.forax.pro at 0.9/com.github.forax.pro.Pro.run(Pro.java:227)
	at com.github.forax.pro.main at 0.9/com.github.forax.pro.main.JSONConfigRunner.run(JSONConfigRunner.java:68)
	at com.github.forax.pro.main at 0.9/com.github.forax.pro.main.JSONConfigRunner.lambda$accept$0(JSONConfigRunner.java:22)
	at com.github.forax.pro.main at 0.9/com.github.forax.pro.main.Main.build(Main.java:122)
	at com.github.forax.pro.main at 0.9/com.github.forax.pro.main.Main.main(Main.java:166)


More information about the compiler-dev mailing list