Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-11794

Helloworld-classtransformer incompatibility

    XMLWordPrintable

Details

    Description

      Changes done at server side, wrt JDK12 compatibility, introduced issues when deploying quickstart helloworld-classtransformer post WFLY 16 Beta:

      22:37:27,320 INFO  [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0001: Content added at location /Users/emmartins/jboss/git/as/wildfly/dist-copy/target/wildfly-16.0.0.CR1-SNAPSHOT/standalone/data/content/23/641c0517f5106bee30dbc931cc7fe8784f52d7/content
      22:37:27,350 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-8) WFLYSRV0027: Starting deployment of "helloworld-classfiletransformers.war" (runtime-name: "helloworld-classfiletransformers.war")
      22:37:28,051 WARN  [org.jboss.as.dependency.private] (MSC service thread 1-4) WFLYSRV0018: Deployment "deployment.helloworld-classfiletransformers.war" is using a private module ("org.javassist") which may be changed or removed in future versions without notice.
      22:37:28,108 INFO  [hello.server.transformation.HelloByteCodeManipulator] (MSC service thread 1-8) Instrumenting hello.server.ejb.HelloBean
      22:37:28,166 INFO  [hello.server.transformation.HelloByteCodeManipulator] (MSC service thread 1-8) Successfully instrumented hello.server.ejb.HelloBean
      22:37:28,206 INFO  [org.jboss.weld.deployer] (MSC service thread 1-8) WFLYWELD0003: Processing weld deployment helloworld-classfiletransformers.war
      22:37:28,449 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-8) HV000001: Hibernate Validator 6.0.15.Final
      22:37:28,699 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-8) WFLYEJB0473: JNDI bindings for session bean named 'HelloBean' in deployment unit 'deployment "helloworld-classfiletransformers.war"' are as follows:
      
      
      WARNING: An illegal reflective access operation has occurred
      WARNING: Illegal reflective access by org.jboss.invocation.proxy.AbstractProxyFactory$1 (jar:file:/Users/emmartins/jboss/git/as/wildfly/dist-copy/target/wildfly-16.0.0.CR1-SNAPSHOT/modules/system/layers/base/org/jboss/invocation/main/jboss-invocation-1.5.2.Final.jar!/) to method java.lang.Object.clone()
      WARNING: Please consider reporting this to the maintainers of org.jboss.invocation.proxy.AbstractProxyFactory$1
      WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
      WARNING: All illegal access operations will be denied in a future release
      22:37:29,062 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.unit."helloworld-classfiletransformers.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."helloworld-classfiletransformers.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "helloworld-classfiletransformers.war"
      	at org.jboss.as.server@8.0.0.CR1//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:183)
      	at org.jboss.msc@1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1738)
      	at org.jboss.msc@1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1700)
      	at org.jboss.msc@1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1558)
      	at org.jboss.threads@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
      	at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
      	at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
      	at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0024: Could not configure component HelloBean
      	at org.jboss.as.ee@16.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:106)
      	at org.jboss.as.server@8.0.0.CR1//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:176)
      	... 8 more
      Caused by: java.lang.ClassFormatError: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1
      	at org.jboss.modules.ModuleClassLoader.defineClassInternal(ModuleClassLoader.java:460)
      	at org.jboss.modules.ModuleClassLoader.defineClassInternal(ModuleClassLoader.java:480)
      	at org.jboss.modules.ClassDefiner.defineClass(ClassDefiner.java:144)
      	at org.jboss.as.server@8.0.0.CR1//org.jboss.as.server.deployment.ModuleClassFactory.defineClass(ModuleClassFactory.java:56)
      	at org.jboss.classfilewriter@1.2.4.Final//org.jboss.classfilewriter.ClassFile.defineInternal(ClassFile.java:299)
      	at org.jboss.classfilewriter@1.2.4.Final//org.jboss.classfilewriter.ClassFile.define(ClassFile.java:286)
      	at org.jboss.invocation@1.5.2.Final//org.jboss.invocation.proxy.AbstractClassFactory.defineClass(AbstractClassFactory.java:202)
      	at org.jboss.invocation@1.5.2.Final//org.jboss.invocation.proxy.AbstractProxyFactory.getCachedMethods(AbstractProxyFactory.java:162)
      	at org.jboss.as.ejb3@16.0.0.CR1-SNAPSHOT//org.jboss.as.ejb3.component.stateless.StatelessComponentDescription$3.configure(StatelessComponentDescription.java:147)
      	at org.jboss.as.ee@16.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.DefaultComponentViewConfigurator.configure(DefaultComponentViewConfigurator.java:91)
      	at org.jboss.as.ee@16.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:92)
      	... 9 more
      Caused by: java.lang.RuntimeException: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1
      	at deployment.helloworld-classfiletransformers.war//hello.server.transformation.HelloByteCodeManipulator.getCtClass(HelloByteCodeManipulator.java:135)
      	at deployment.helloworld-classfiletransformers.war//hello.server.transformation.HelloByteCodeManipulator.transform(HelloByteCodeManipulator.java:70)
      	at deployment.helloworld-classfiletransformers.war//hello.server.transformation.HelloBeanClassFileTransformer.transform(HelloBeanClassFileTransformer.java:57)
      	at org.jboss.as.server@8.0.0.CR1//org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform(DelegatingClassFileTransformer.java:60)
      	at org.jboss.modules.JLIClassTransformer.transform(JLIClassTransformer.java:55)
      	at org.jboss.modules.ModuleClassLoader.defineClassInternal(ModuleClassLoader.java:458)
      	... 19 more
      Caused by: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1
      	at org.javassist//javassist.ClassPool.get(ClassPool.java:422)
      	at deployment.helloworld-classfiletransformers.war//hello.server.transformation.HelloByteCodeManipulator.getCtClass(HelloByteCodeManipulator.java:133)
      	... 24 more
      
      22:37:29,154 INFO  [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-6) ISPN000128: Infinispan version: Infinispan 'Infinity Minus ONE +2' 9.4.8.Final
      22:37:29,620 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 74) WFLYCLINF0002: Started client-mappings cache from ejb container
      22:37:29,695 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 1) WFLYCTL0013: Operation ("add") failed - address: ([("deployment" => "helloworld-classfiletransformers.war")]) - failure description: {
          "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"helloworld-classfiletransformers.war\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"helloworld-classfiletransformers.war\"
          Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0024: Could not configure component HelloBean
          Caused by: java.lang.ClassFormatError: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1
          Caused by: java.lang.RuntimeException: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1
          Caused by: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1"},
          "WFLYCTL0412: Required services that are not installed:" => [
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".beanmanager",
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".WeldStartService"
          ],
          "WFLYCTL0180: Services with missing/unavailable dependencies" => [
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"helloworld-classfiletransformers.war\".WeldStartService, jboss.deployment.unit.\"helloworld-classfiletransformers.war\".beanmanager]",
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"helloworld-classfiletransformers.war\".beanmanager]"
          ]
      }
      22:37:29,697 ERROR [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0021: Deploy of deployment "helloworld-classfiletransformers.war" was rolled back with the following failure message: 
      {
          "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"helloworld-classfiletransformers.war\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"helloworld-classfiletransformers.war\"
          Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0024: Could not configure component HelloBean
          Caused by: java.lang.ClassFormatError: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1
          Caused by: java.lang.RuntimeException: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1
          Caused by: javassist.NotFoundException: hello.server.ejb.HelloBean$$$view1"},
          "WFLYCTL0412: Required services that are not installed:" => [
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".beanmanager",
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".WeldStartService"
          ],
          "WFLYCTL0180: Services with missing/unavailable dependencies" => [
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"helloworld-classfiletransformers.war\".WeldStartService, jboss.deployment.unit.\"helloworld-classfiletransformers.war\".beanmanager]",
              "jboss.deployment.unit.\"helloworld-classfiletransformers.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"helloworld-classfiletransformers.war\".beanmanager]"
          ]
      }
      22:37:29,727 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028: Stopped deployment helloworld-classfiletransformers.war (runtime-name: helloworld-classfiletransformers.war) in 29ms
      

      It's not clear the actual QS design is something we want to keep promoting tho:

      • it teaches how to use a private module
      • we use byteman with users/customers, when intercepting code on the fly

      Assuming incompatibility we should drop the QS from WFLY releases, and we should rethink if we going to fix it, or replace it with a new QS.

      Attachments

        Issue Links

          Activity

            People

              ropalka Richard Opalka
              emartins@redhat.com Eduardo Martins
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: