Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-3363

LRAAnnotationAdjuster throws NoSuchMethodException on OpenJ9 based JVMs

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 5.11.0.Final
    • 5.10.6.Final
    • LRA
    • None
    • Hide

      Run the LRA TCK against Narayana using an OpenJ9 based JVM. For reference I'm using

       

      >java -version
      openjdk version "11.0.5" 2019-10-15
      OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10)
      Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.17.0, JRE 11 Linux amd64-64-Bit 20191016_322 (JIT enabled, AOT enabled)
      OpenJ9 - 77c1cf708
      OMR - 20db4fbc
      JCL - 2a7af5674b based on jdk-11.0.5+10)

      Show
      Run the LRA TCK against Narayana using an OpenJ9 based JVM. For reference I'm using   >java -version openjdk version "11.0.5" 2019-10-15 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10) Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.17.0, JRE 11 Linux amd64-64-Bit 20191016_322 (JIT enabled, AOT enabled) OpenJ9 - 77c1cf708 OMR - 20db4fbc JCL - 2a7af5674b based on jdk-11.0.5+10)
    • Undefined

    Description

      I am trying to run the Microprofile LRA TCK against the Narayana LRA implementation, and am using a JVM based on OpenJ9 (not HotSpot). When I do this, I get the following exception

      (I've missed out a bunch of stack frames as it is rather large otherwise)

       

      java.util.ServiceConfigurationError: org.eclipse.microprofile.lra.tck.service.spi.LRARecoveryService: Provider io.narayana.lra.arquillian.spi.NarayanaLRARecovery could not be instantiated
      at java.util.ServiceLoader.fail(ServiceLoader.java:581)
      at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:803)
      at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:721)
      at java.util.ServiceLoader$3.next(ServiceLoader.java:1394)
      at org.eclipse.microprofile.lra.tck.service.LRATestService.loadService(LRATestService.java:105)
      at org.eclipse.microprofile.lra.tck.service.LRATestService.<init>(LRATestService.java:50)
      at org.eclipse.microprofile.lra.tck.service.LRATestService$Proxy$_$$_WeldClientProxy.<init>(Unknown Source)

      ......

      Caused by: java.lang.ExceptionInInitializerError: null
      at java.lang.J9VMInternals.ensureError(J9VMInternals.java:193)
      at java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:182)
      at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

      ....

      Caused by: java.lang.IllegalStateException: Cannot change annotation @org.eclipse.microprofile.lra.annotation.ws.rs.LRA(timeLimit=0, cancelOn={}, end=false, value=SUPPORTS, cancelOnFamily={CLIENT_ERROR, SERVER_ERROR}, timeUnit=Seconds) of class class org.eclipse.microprofile.lra.tck.participant.api.LraResource in JDK8 way
      at io.narayana.lra.arquillian.spi.LRAAnnotationAdjuster.adjustLRAAnnotation(LRAAnnotationAdjuster.java:95)
      at io.narayana.lra.arquillian.spi.LRAAnnotationAdjuster.processWithClass(LRAAnnotationAdjuster.java:51)
      at io.narayana.lra.arquillian.spi.NarayanaLRARecovery.<clinit>(NarayanaLRARecovery.java:49)

      ....

      Caused by: java.lang.NoSuchMethodException: java.lang.Class.annotationData()
      at java.lang.Class.newNoSuchMethodException(Class.java:638)
      at java.lang.Class.throwExceptionOrReturnNull(Class.java:1344)
      at java.lang.Class.getMethodHelper(Class.java:1408)
      at java.lang.Class.getDeclaredMethod(Class.java:1080)
      at io.narayana.lra.arquillian.spi.LRAAnnotationAdjuster.adjustLRAAnnotation(LRAAnnotationAdjuster.java:82).....

      Attachments

        Activity

          People

            ochaloup@redhat.com Ondrej Chaloupka (Inactive)
            ilewis Iain Lewis (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: