]
Scott Marlow commented on WFLY-11794:
-------------------------------------
It looks like the latest Javassist version is 3.27.0-GA, perhaps try upgrading.
Helloworld-classtransformer incompatibility
-------------------------------------------
Key: WFLY-11794
URL:
https://issues.redhat.com/browse/WFLY-11794
Project: WildFly
Issue Type: Bug
Components: Quickstarts
Reporter: Eduardo Martins
Assignee: Richard Opalka
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 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.