[
https://issues.jboss.org/browse/WFLY-11406?page=com.atlassian.jira.plugin...
]
Matej Novotny commented on WFLY-11406:
--------------------------------------
On Weld side, we would like to design an SPI that will leverage David's API coming
from jboss-modules (albeit we might need an adjustment there), I started playing around
with that.
However, this needs to addressed in jboss-classfilewriter firstly as everything using it
will simply blow up from the static initializer there.
Should we use simple {{setAccessible()}}, it will work but we'll be getting all those
lovely Illegal access warnings again (which was why we used unsafe).
Sadly, I don't really know how to bypass the new Unsafe limitations (aka how to do
what they did with byte-buddy).
bq. Perhaps MethodHandles.Lookup.defineClass could work for this too but it may not and in
any case is only available from JDK 9 on.
That is the supposed replacement, yet last time I checked it didn't allow to define
classes with (different) {{ProtectionDomain}} which was a showstopper, at least for Weld.
Back there I created a JDK issue but got no answer.
Reflection exception at org.jboss.classfilewriter.ClassFile on JDK12
--------------------------------------------------------------------
Key: WFLY-11406
URL:
https://issues.jboss.org/browse/WFLY-11406
Project: WildFly
Issue Type: Bug
Components: CDI / Weld, EJB
Reporter: Richard Opalka
Assignee: Matej Novotny
Priority: Critical
Labels: jdk12
Fix For: 16.0.0.Beta1
When running WildFly on JDK12 I'm observing this exception due to Unsafe changes in
recent JDK Early Access builds:
[0m[31m16:47:17,739 ERROR [org.jboss.msc.service.fail] (MSC
service thread 1-6) MSC000001: Failed to start service
jboss.deployment.unit."ws-endpoint-example.war".IN
<------>at
org.jboss.as.server@7.0.0.CR1-SNAPSHOT//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:151)
<------>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.2.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
<------>at
org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
<------>at
org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
<------>at
org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
<------>at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0024:
Could not configure component TestService
<------>at
org.jboss.as.ee@15.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:106)
<------>at
org.jboss.as.server@7.0.0.CR1-SNAPSHOT//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:144)
<------>... 8 more
Caused by: java.lang.Error: java.lang.NoSuchFieldException: override
<------>at
org.jboss.classfilewriter@1.2.3.Final//org.jboss.classfilewriter.ClassFile$1.run(ClassFile.java:394)
<------>at
org.jboss.classfilewriter@1.2.3.Final//org.jboss.classfilewriter.ClassFile$1.run(ClassFile.java:385)
<------>at
java.base/java.security.AccessController.doPrivileged(AccessController.java:551)
<------>at
org.jboss.classfilewriter@1.2.3.Final//org.jboss.classfilewriter.ClassFile.<clinit>(ClassFile.java:385)
<------>at
org.jboss.invocation@1.5.1.Final//org.jboss.invocation.proxy.AbstractClassFactory.<init>(AbstractClassFactory.java:97)
<------>at
org.jboss.invocation@1.5.1.Final//org.jboss.invocation.proxy.AbstractSubclassFactory.<init>(AbstractSubclassFactory.java:87)
<------>at
org.jboss.invocation@1.5.1.Final//org.jboss.invocation.proxy.AbstractProxyFactory.<init>(AbstractProxyFactory.java:69)
<------>at
org.jboss.invocation@1.5.1.Final//org.jboss.invocation.proxy.ProxyFactory.<init>(ProxyFactory.java:256)
<------>at
org.jboss.as.ee@15.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.DefaultComponentViewConfigurator.configure(DefaultComponentViewConfigurator.java:86)
<------>at
org.jboss.as.ee@15.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:92)
<------>... 9 more
Caused by: java.lang.NoSuchFieldException: override
<------>at java.base/java.lang.Class.getDeclaredField(Class.java:2410)
<------>at
org.jboss.classfilewriter@1.2.3.Final//org.jboss.classfilewriter.ClassFile$1.run(ClassFile.java:392)
<------>... 18 more
--
This message was sent by Atlassian Jira
(v7.12.1#712002)