Oops javac throw a NPE

Remi Forax forax at univ-mlv.fr
Mon Jun 13 17:03:26 UTC 2016


Hi Jon,
i've got an exception trying to reference in a module-info.java some modular jars generated by ASM,
i suppose there is a bug in the module-info generated by ASM but i'm not able to find it (javap is ok with the code ?)
Given that this exception is thrown by javac, it's likely that you can also harden the code of javac to avoid it. Again,
i suppose that the modular jars are rotten.

Here is the exception:
An exception has occurred in the compiler (9-ea). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
	at com.sun.tools.javac.code.Symtab.lookupPackage(jdk.compiler at 9-ea/Symtab.java:622)
	at com.sun.tools.javac.code.Symtab.enterClass(jdk.compiler at 9-ea/Symtab.java:685)
	at com.sun.tools.javac.jvm.ClassReader.enterClass(jdk.compiler at 9-ea/ClassReader.java:2356)
	at com.sun.tools.javac.jvm.ClassReader.readClassOrType(jdk.compiler at 9-ea/ClassReader.java:502)
	at com.sun.tools.javac.jvm.ClassReader.readPool(jdk.compiler at 9-ea/ClassReader.java:432)
	at com.sun.tools.javac.jvm.ClassReader.readClassSymbol(jdk.compiler at 9-ea/ClassReader.java:516)
	at com.sun.tools.javac.jvm.ClassReader.readClass(jdk.compiler at 9-ea/ClassReader.java:2423)
	at com.sun.tools.javac.jvm.ClassReader.readClassBuffer(jdk.compiler at 9-ea/ClassReader.java:2501)
	at com.sun.tools.javac.jvm.ClassReader.readClassFile(jdk.compiler at 9-ea/ClassReader.java:2514)
	at com.sun.tools.javac.code.ClassFinder.fillIn(jdk.compiler at 9-ea/ClassFinder.java:358)
	at com.sun.tools.javac.code.ModuleFinder$1.complete(jdk.compiler at 9-ea/ModuleFinder.java:311)
	at com.sun.tools.javac.code.Symbol.complete(jdk.compiler at 9-ea/Symbol.java:602)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(jdk.compiler at 9-ea/Symbol.java:1219)
	at com.sun.tools.javac.comp.Modules$2.complete(jdk.compiler at 9-ea/Modules.java:461)
	at com.sun.tools.javac.code.Symtab.lambda$enterModule$10(jdk.compiler at 9-ea/Symtab.java:748)
	at com.sun.tools.javac.code.Symbol.complete(jdk.compiler at 9-ea/Symbol.java:602)
	at com.sun.tools.javac.comp.Modules.computeTransitiveClosure(jdk.compiler at 9-ea/Modules.java:926)
	at com.sun.tools.javac.comp.Modules.allModules(jdk.compiler at 9-ea/Modules.java:889)
	at com.sun.tools.javac.comp.Modules.completeModule(jdk.compiler at 9-ea/Modules.java:978)
	at com.sun.tools.javac.comp.Modules.access$000(jdk.compiler at 9-ea/Modules.java:118)
	at com.sun.tools.javac.comp.Modules$3.complete(jdk.compiler at 9-ea/Modules.java:536)
	at com.sun.tools.javac.code.Symbol.complete(jdk.compiler at 9-ea/Symbol.java:602)
	at com.sun.tools.javac.comp.Modules.computeTransitiveClosure(jdk.compiler at 9-ea/Modules.java:926)
	at com.sun.tools.javac.comp.Modules.allModules(jdk.compiler at 9-ea/Modules.java:889)
	at com.sun.tools.javac.comp.Modules.enter(jdk.compiler at 9-ea/Modules.java:214)
	at com.sun.tools.javac.main.JavaCompiler.initModules(jdk.compiler at 9-ea/JavaCompiler.java:1020)
	at com.sun.tools.javac.main.JavaCompiler.initModules(jdk.compiler at 9-ea/JavaCompiler.java:1012)
	at com.sun.tools.javac.main.JavaCompiler.compile(jdk.compiler at 9-ea/JavaCompiler.java:906)
	at com.sun.tools.javac.main.Main.compile(jdk.compiler at 9-ea/Main.java:280)
	at com.sun.tools.javac.main.Main.compile(jdk.compiler at 9-ea/Main.java:144)
	at com.sun.tools.javac.Main.compile(jdk.compiler at 9-ea/Main.java:55)
	at com.sun.tools.javac.Main.main(jdk.compiler at 9-ea/Main.java:41)


Step to reproduce, download that jar
  https://www.dropbox.com/s/3ieqah6wpawpsw0/jigsaw.zip?dl=0

and run:
  javac -modulesourcepath src -d classes -modulepath mlib/ src/fr.umlv.asm.test/module-info.java 

cheers,
Rémi


More information about the jigsaw-dev mailing list