[jboss-jira] [JBoss JIRA] (WFLY-11406) Reflection exception at org.jboss.classfilewriter.ClassFile on JDK12
Matej Novotny (Jira)
issues at jboss.org
Wed Jan 9 09:32:00 EST 2019
[ https://issues.jboss.org/browse/WFLY-11406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13679942#comment-13679942 ]
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 at 7.0.0.CR1-SNAPSHOT//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:151)
> <------>at org.jboss.msc at 1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1738)
> <------>at org.jboss.msc at 1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1700)
> <------>at org.jboss.msc at 1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1558)
> <------>at org.jboss.threads at 2.3.2.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> <------>at org.jboss.threads at 2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
> <------>at org.jboss.threads at 2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
> <------>at org.jboss.threads at 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 at 15.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:106)
> <------>at org.jboss.as.server at 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 at 1.2.3.Final//org.jboss.classfilewriter.ClassFile$1.run(ClassFile.java:394)
> <------>at org.jboss.classfilewriter at 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 at 1.2.3.Final//org.jboss.classfilewriter.ClassFile.<clinit>(ClassFile.java:385)
> <------>at org.jboss.invocation at 1.5.1.Final//org.jboss.invocation.proxy.AbstractClassFactory.<init>(AbstractClassFactory.java:97)
> <------>at org.jboss.invocation at 1.5.1.Final//org.jboss.invocation.proxy.AbstractSubclassFactory.<init>(AbstractSubclassFactory.java:87)
> <------>at org.jboss.invocation at 1.5.1.Final//org.jboss.invocation.proxy.AbstractProxyFactory.<init>(AbstractProxyFactory.java:69)
> <------>at org.jboss.invocation at 1.5.1.Final//org.jboss.invocation.proxy.ProxyFactory.<init>(ProxyFactory.java:256)
> <------>at org.jboss.as.ee at 15.0.0.CR1-SNAPSHOT//org.jboss.as.ee.component.DefaultComponentViewConfigurator.configure(DefaultComponentViewConfigurator.java:86)
> <------>at org.jboss.as.ee at 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 at 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)
More information about the jboss-jira
mailing list