jaxb2-maven-plugin
jaxb2-maven-plugin copied to clipboard
JDK 16 + java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass
A project that compiles and runs just fine under JDK15 fails with the following on JDK16.
--- maven-jaxb2-plugin:0.14.0:generate (default) @ crcl4java-base ---
Sources are not up-to-date, XJC will be executed.
Apr 06, 2021 10:31:11 AM com.sun.xml.bind.v2.runtime.reflect.opt.Injector
The pluging configuration was this:
<configuration>
<!-- <forceRegenerate>true</forceRegenerate> -->
<generatePackage>crcl.base</generatePackage>
<schemaDirectory>${project.basedir}/src/main/resources/</schemaDirectory>
<bindingDirectory>${project.basedir}/src/main/resources/</bindingDirectory>
<bindingIncludes>
<include>inject.xjb</include>
</bindingIncludes>
<args>
<arg>-Xinject-code</arg>
</args>
</configuration>
</plugin>
Hi, based on the question it seems like you are using different plugin - maven-jaxb2-plugin (this repo is jaxb2-maven-plugin)
Yes you are correct. Sorry about that.
On Wed, Apr 7, 2021 at 1:27 PM Pavel Jandejsek @.***> wrote:
Hi, based on the question it seems like you are using different plugin - maven-jaxb2-plugin (this repo is jaxb2-maven-plugin)
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mojohaus/jaxb2-maven-plugin/issues/182#issuecomment-815090817, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABNGCNWMD3F23TRFSAN6VH3THSIWRANCNFSM42O4RXMQ .
Yes you are correct. Sorry about that.
@wshackle If the issue was related to the other plugin and not "mojohaus/jaxb2-maven-plugin ", maybe close this as resolved?
Unfortunately, the same error seems to exist with the jaxb2-maven-plugin. My configuration is
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<dependencies>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>de.dagere.kopeme.generated</packageName> <!-- The name of your generated source package -->
</configuration>
</plugin>
And it seems to me like this is the same exception:
[ERROR] [SchemaGen]: Juli 16, 2021 10:28:41 AM com.sun.xml.bind.v2.runtime.reflect.opt.Injector
SCHWERWIEGEND: null java.security.PrivilegedActionException: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain) at java.base/java.security.AccessController.doPrivileged(AccessController.java:558) at com.sun.xml.bind.v2.runtime.reflect.opt.Injector. (Injector.java:197) at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:81) at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:179) at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:285) at com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl. (TransducedAccessor.java:235) at com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor.get(TransducedAccessor.java:175) at com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.calcTransducer(RuntimeClassInfoImpl.java:245) at com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getTransducer(RuntimeClassInfoImpl.java:219) at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTransducer(RuntimeModelBuilder.java:145) at com.sun.xml.bind.v2.model.impl.SingleTypePropertyInfoImpl.getTransducer(SingleTypePropertyInfoImpl.java:140) at com.sun.xml.bind.v2.model.impl.RuntimeAttributePropertyInfoImpl.link(RuntimeAttributePropertyInfoImpl.java:78) at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.link(ClassInfoImpl.java:1272) at com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.link(RuntimeClassInfoImpl.java:197) at com.sun.xml.bind.v2.model.impl.ModelBuilder.link(ModelBuilder.java:454) at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.link(RuntimeModelBuilder.java:133) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:469) at com.sun.xml.bind.v2.runtime.JAXBContextImpl. (JAXBContextImpl.java:303) at com.sun.xml.bind.v2.runtime.JAXBContextImpl. (JAXBContextImpl.java:139) at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1156) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:297) at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286) at javax.xml.bind.ContextFinder.find(ContextFinder.java:409) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getCustomizationContext(BindInfo.java:336) at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getCustomizationUnmarshaller(BindInfo.java:362) at com.sun.tools.xjc.reader.xmlschema.bindinfo.AnnotationParserFactoryImpl$1. (AnnotationParserFactoryImpl.java:85) at com.sun.tools.xjc.reader.xmlschema.bindinfo.AnnotationParserFactoryImpl.create(AnnotationParserFactoryImpl.java:84) at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.createAnnotationParser(NGCCRuntimeEx.java:401) at com.sun.xml.xsom.impl.parser.state.annotation.action0(annotation.java:89) at com.sun.xml.xsom.impl.parser.state.annotation.enterElement(annotation.java:114) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.NGCCHandler.spawnChildFromEnterElement(NGCCHandler.java:114) at com.sun.xml.xsom.impl.parser.state.attributeDeclBody.enterElement(attributeDeclBody.java:124) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.NGCCHandler.revertToParentFromEnterElement(NGCCHandler.java:151) at com.sun.xml.xsom.impl.parser.state.foreignAttributes.enterElement(foreignAttributes.java:91) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.NGCCHandler.spawnChildFromEnterElement(NGCCHandler.java:114) at com.sun.xml.xsom.impl.parser.state.attributeDeclBody.enterElement(attributeDeclBody.java:136) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.attributeDeclBody.enterElement(attributeDeclBody.java:113) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.attributeDeclBody.enterElement(attributeDeclBody.java:152) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.NGCCHandler.spawnChildFromEnterElement(NGCCHandler.java:114) at com.sun.xml.xsom.impl.parser.state.attributeUses.enterElement(attributeUses.java:210) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.attributeUses.enterElement(attributeUses.java:243) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.attributeUses.enterElement(attributeUses.java:255) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422) at com.sun.xml.xsom.impl.parser.state.attributeUses.enterElement(attributeUses.java:231) at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.startElement(NGCCRuntime.java:263) at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:539) at com.sun.tools.xjc.util.SubtreeCutter.startElement(SubtreeCutter.java:108) at com.sun.tools.xjc.reader.ExtensionBindingChecker.startElement(ExtensionBindingChecker.java:150) at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:539) at com.sun.tools.xjc.reader.xmlschema.parser.IncorrectNamespaceURIChecker.startElement(IncorrectNamespaceURIChecker.java:128) at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:539) at com.sun.tools.xjc.reader.xmlschema.parser.CustomizationContextChecker.startElement(CustomizationContextChecker.java:193) at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:539) at com.sun.tools.xjc.ModelLoader$SpeculationChecker.startElement(ModelLoader.java:455) at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:539) at com.sun.tools.xjc.reader.internalizer.VersionChecker.startElement(VersionChecker.java:103) at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:539) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:518) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2725) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:541) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224) at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635) at java.xml/org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:345) at com.sun.xml.xsom.parser.JAXPParser.parse(JAXPParser.java:100) at com.sun.tools.xjc.ModelLoader$2.parse(ModelLoader.java:479) at com.sun.tools.xjc.ModelLoader$XMLSchemaParser.parse(ModelLoader.java:251) at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.parseEntity(NGCCRuntimeEx.java:381) at com.sun.xml.xsom.impl.parser.ParserContext.parse(ParserContext.java:128) at com.sun.xml.xsom.parser.XSOMParser.parse(XSOMParser.java:171) at com.sun.tools.xjc.ModelLoader.createXSOMSpeculative(ModelLoader.java:496) at com.sun.tools.xjc.ModelLoader.loadXMLSchema(ModelLoader.java:351) at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:162) at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:117) at com.sun.tools.xjc.Driver.run(Driver.java:354) at org.codehaus.mojo.jaxb2.javageneration.AbstractJavaGeneratorMojo.performExecution(AbstractJavaGeneratorMojo.java:475) at org.codehaus.mojo.jaxb2.AbstractJaxbMojo.execute(AbstractJaxbMojo.java:337) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289) at org.apache.maven.cli.MavenCli.main(MavenCli.java:193) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39) at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122) at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:61) Caused by: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain) at java.base/java.lang.Class.getMethod(Class.java:2195) at com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:201) at com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:197) at java.base/java.security.AccessController.doPrivileged(AccessController.java:554) ... 125 more
Updating the jaxb-xjc
and jaxb-runtime
to 2.3.1 (like suggested in https://github.com/highsource/maven-jaxb2-plugin/issues/201) seems to solve the issue, but if this is a regular requirement for the execution of jaxb2-maven-plugin
with Java 16 (and I assume also 17+), this should be documented somewhere.
Could you validate with version 3.1.0 ?