JMH does not recognise @State annotation on Groovy classes

Gabor Nagy nagyga1 at gmail.com
Tue Oct 20 08:51:52 UTC 2015


Thank you.

On 20 October 2015 at 16:40, Aleksey Shipilev <aleksey.shipilev at oracle.com>
wrote:

> Ah, so you are using Groovy Eclipse compiler. This configuration was
> never tested, and it is not "officially" supported. Please see how the
> Groovy benchmarks bootstrapped from archetypes are working. I see your
> original POM was from the archetype, so you must be trying to do
> something out of the recommended way, capturing the errors along the way ;)
>
> I traced the error a bit, and can conclude that Element.getAnnotation()
> returns null when trying to look up @State on com.test.app.MyBenchmark.
> In fact, even getAnnotationMirrors() returns the empty array. Element
> implementation is provided by the compiler, and therefore I believe the
> problem you are facing is the compiler issue, not the JMH one.
>
> Thanks,
> -Aleksey
>
> On 10/19/2015 05:24 PM, Gabor Nagy wrote:
> > Hope the attachment goes through.
> >
> > Don't scold me if it is something moronic...
> >
> > groovy-all 2.4.3
> > maven-compiler-plugin 3.1
> > groovy-eclipse-compiler 2.9.2-01
> > groovy-eclipse-batch
> >
> > mvn clean compile
> > [INFO] Scanning for projects...
> > [INFO]
> >
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Building JMH benchmark sample: Groovy 1.0-SNAPSHOT
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO]
> > [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ my-app ---
> > [INFO] Deleting /tmp/my-app/my-app/target
> > [INFO]
> > [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @
> > my-app ---
> > [INFO] Using 'UTF-8' encoding to copy filtered resources.
> > [INFO] skip non existing resourceDirectory
> > /tmp/my-app/my-app/src/main/resources
> > [INFO] skip non existing resourceDirectory
> > /tmp/my-app/my-app/src/main/resources.filtered
> > [INFO]
> > [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ my-app
> ---
> > [INFO] Changes detected - recompiling the module!
> > [INFO] Using Groovy-Eclipse compiler to compile both Java and Groovy
> files
> > [INFO] -------------------------------------------------------------
> > [ERROR] COMPILATION ERROR :
> > [INFO] -------------------------------------------------------------
> > [ERROR]
> > /tmp/my-app/my-app/src/main/java/com/test/app/MyBenchmark.groovy:[41,8]
> > 1. ERROR in
> > /tmp/my-app/my-app/src/main/java/com/test/app/MyBenchmark.groovy (at
> > line 41)
> >     double something;
> >            ^^^^^^^^^
> > Field "something" is declared within the class not having @State
> > annotation. This can result in unspecified behavior, and prohibited.
> >
> > [ERROR] Found 1 error and 0 warnings.
> > [INFO] 2 errors
> > [INFO] -------------------------------------------------------------
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] BUILD FAILURE
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Total time: 2.071 s
> > [INFO] Finished at: 2015-10-19T22:19:59+08:00
> > [INFO] Final Memory: 13M/163M
> > [INFO]
> > ------------------------------------------------------------------------
> > [ERROR] Failed to execute goal
> > org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
> > (default-compile) on project my-app: Compilation failure: Compilation
> > failure:
> > [ERROR]
> > /tmp/my-app/my-app/src/main/java/com/test/app/MyBenchmark.groovy:[41,8]
> > 1. ERROR in
> > /tmp/my-app/my-app/src/main/java/com/test/app/MyBenchmark.groovy (at
> > line 41)
> > [ERROR] double something;
> > [ERROR] ^^^^^^^^^
> > [ERROR] Field "something" is declared within the class not having @State
> > annotation. This can result in unspecified behavior, and prohibited.
> > [ERROR]
> > [ERROR] Found 1 error and 0 warnings.
>
>
>


More information about the jmh-dev mailing list