NPE when generating benchmark code

Mark Price Mark.Price at lmax.com
Wed May 21 11:51:25 UTC 2014


Hi,
I'm using JMH in the non-recommended ant mode, and seeing an exception while compiling my benchmark.

javac reports the following:

    [javac] error: Compiler control generators had thrown the unexpected exception java.lang.NullPointerException
    [javac] 	at com.sun.tools.javac.code.Symbol$MethodSymbol.params(Symbol.java:1196)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.attachParameterAnnotations(ClassReader.java:1111)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.readMemberAttr(ClassReader.java:873)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:1027)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:1490)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1586)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:1658)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1845)
    [javac] 	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1777)
    [javac] 	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:384)
    [javac] 	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:766)
    [javac] 	at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:698)
    [javac] 	at com.sun.tools.javac.code.Symbol$TypeSymbol.getEnclosedElements(Symbol.java:525)
    [javac] 	at org.openjdk.jmh.generators.annotations.APGeneratorSource.getClasses(APGeneratorSource.java:84)
    [javac] 	at org.openjdk.jmh.generators.core.BenchmarkGeneratorUtils.getMethodsAnnotatedWith(BenchmarkGeneratorUtils.java:83)
    [javac] 	at org.openjdk.jmh.generators.core.CompilerControlPlugin.process(CompilerControlPlugin.java:67)
    [javac] 	at org.openjdk.jmh.generators.core.BenchmarkGenerator.generate(BenchmarkGenerator.java:105)
    [javac] 	at org.openjdk.jmh.generators.GenerateMicroBenchmarkProcessor.process(GenerateMicroBenchmarkProcessor.java:57)
    [javac] 	at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:627)
    [javac] 	at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:556)
    [javac] 	at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:701)
    [javac] 	at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:987)
    [javac] 	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
    [javac] 	at com.sun.tools.javac.main.Main.compile(Main.java:353)
    [javac] 	at com.sun.tools.javac.main.Main.compile(Main.java:279)
    [javac] 	at com.sun.tools.javac.main.Main.compile(Main.java:270)
    [javac] 	at com.sun.tools.javac.Main.compile(Main.java:69)
    [javac] 	at com.sun.tools.javac.Main.main(Main.java:54)


though it seems to generate a file for the single benchmark that I have included (attached, along with original benchmark source). There are only java source files in the directory passed as srcdir to the ant javac target.

I am using jmh-core and jmh-generator-annprocess version 0.7.2. Any help greatly appreciated...


Cheers,

Mark 


More information about the jmh-dev mailing list