Hi all, hi Jon,
while updating ASM6 to the new classfile format, i think i've found a bug in 
javap.

javap as no trouble to read module-info.class if the class is specified directly
$ /usr/jdk/jdk-9-jigsaw/bin/javap module-info.class 
open module com.google.guava {
  requires java.base;
  requires java.logging;
  requires java.annotations.common;
  requires jdk.unsupported;
  exports com.google.common.io;
  ...
}

but if the module-info.class is in a (modular) jar,
/usr/jdk/jdk-9-jigsaw/bin/javap --module-path deps -m com.google.guava 
module-info
Error: error while reading constant pool for module-info: invalid index #0

The error is due i believe to the fact that the code used here was not updated 
to the latest spec, which requires the class name of a module inside the 
bytecode to be null.

I use:
  java version "9-ea"
  Java(TM) SE Runtime Environment (build 9-ea+146-jigsaw-nightly-h5781-20161129)
  Java HotSpot(TM) 64-Bit Server VM (build 
9-ea+146-jigsaw-nightly-h5781-20161129, mixed mode)

The other possibility is that i've a bug in the ClassWriter of ASM ...

regards,
Rémi

PS: i strongly believe that setting the class name to null instead of 
'module-info' is stupid because i had to update a bunch of ASM visitors to 
avoid NPEs.

Reply via email to