]
Eduardo Martins commented on WFLY-11794:
----------------------------------------
Issue which solution turned the QS incompatible
Helloworld-classtransformer incompatibility
-------------------------------------------
Key: WFLY-11794
URL:
https://issues.jboss.org/browse/WFLY-11794
Project: WildFly
Issue Type: Bug
Components: Quickstarts
Reporter: Eduardo Martins
Assignee: Eduardo Martins
Priority: Major
Changes done at server side, wrt JDK12 compatibility, introduced issues when deploying
quickstart helloworld-classtransformer post WFLY 16 Beta:
{code}
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
{code}
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 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.