[hibernate-issues] [JIRA] (HHH-14010) Exception when using Hibernate, javafx and modules

Niel Yorck (JIRA) jira at hibernate.atlassian.net
Mon May 11 05:35:16 EDT 2020


Niel Yorck ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=5eb6eb527dab3a0bb44a6952 ) *created* an issue

Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiMDUxMDNjMDFiNjBmNDE5YWI5YTEyYTE0NGFkNjcyZWEiLCJwIjoiaiJ9 ) / Bug ( https://hibernate.atlassian.net/browse/HHH-14010?atlOrigin=eyJpIjoiMDUxMDNjMDFiNjBmNDE5YWI5YTEyYTE0NGFkNjcyZWEiLCJwIjoiaiJ9 ) HHH-14010 ( https://hibernate.atlassian.net/browse/HHH-14010?atlOrigin=eyJpIjoiMDUxMDNjMDFiNjBmNDE5YWI5YTEyYTE0NGFkNjcyZWEiLCJwIjoiaiJ9 ) Exception when using Hibernate, javafx and modules ( https://hibernate.atlassian.net/browse/HHH-14010?atlOrigin=eyJpIjoiMDUxMDNjMDFiNjBmNDE5YWI5YTEyYTE0NGFkNjcyZWEiLCJwIjoiaiJ9 )

Issue Type: Bug Affects Versions: 6.0.0.Alpha3 Assignee: Unassigned Components: hibernate-core Created: 11/May/2020 02:35 AM Environment: Hibernate 6.0.0.Alpha3, JDK 14, JavaFX 14.0.1, Windows, H2 Priority: Blocker Reporter: Niel Yorck ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=5eb6eb527dab3a0bb44a6952 )

So I am trying to get a Project running which uses Hibernate, Javafx and Java-Modules. I already tried several Versions of Hibernate, JDK and JavaFX. Here is what I got:

Pom.xml:

<project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" >
 <modelVersion> 4.0.0 </modelVersion>
 
 <groupId> org.openjfx </groupId>
 <artifactId> hellofx </artifactId>
 <version> 1.0-SNAPSHOT </version>
 <packaging> jar </packaging>

   <properties>
       <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>
       <maven.compiler.release> 14 </maven.compiler.release>
       <javafx.version> 14.0.1 </javafx.version>
   </properties>

 <name> hellofx </name>
 
 <dependencies>
   <dependency>
     <groupId> org.openjfx </groupId>
     <artifactId> javafx-controls </artifactId>
     <version> ${javafx.version} </version>
   </dependency>
     <dependency>
         <groupId> org.openjfx </groupId>
         <artifactId> javafx-fxml </artifactId>
         <version> 14.0.1 </version>
     </dependency>
     <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-web -->
     <dependency>
         <groupId> org.openjfx </groupId>
         <artifactId> javafx-web </artifactId>
         <version> 14.0.1 </version>
     </dependency>
     <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
     <dependency>
         <groupId> com.h2database </groupId>
         <artifactId> h2 </artifactId>
         <version> 1.4.200 </version>
     </dependency>
     <!-- https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-core -->
     <dependency>
         <groupId> org.hibernate.orm </groupId>
         <artifactId> hibernate-core </artifactId>
         <version> 6.0.0.Alpha5 </version>
     </dependency
 </dependencies>
 
 <build>
     <plugins>
         <plugin>
             <groupId> org.apache.maven.plugins </groupId>
             <artifactId> maven-compiler-plugin </artifactId>
             <version> 3.8.1 </version>
             <configuration>
                 <release> ${maven.compiler.release} </release>
             </configuration>
         </plugin>
         <plugin>
             <groupId> org.openjfx </groupId>
             <artifactId> javafx-maven-plugin </artifactId>
             <version> 0.0.3 </version>
             <configuration>
                 <mainClass> org.example.App </mainClass>
             </configuration>
         </plugin>
         <plugin>
           <groupId> org.apache.maven.plugins </groupId>
           <artifactId> maven-shade-plugin </artifactId>
           <version> 3.2.0 </version>
           <executions>
               <execution>
                   <phase> package </phase>
                   <goals>
                       <goal> shade </goal>
                   </goals>
                   <configuration>
                       <shadedArtifactAttached> true </shadedArtifactAttached>
                       <shadedClassifierName> project-classifier </shadedClassifierName>
                       <outputFile> shade\${project.artifactId}.jar </outputFile>
                       <transformers>
                           <transformer implementation=
                                                "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" >
                               <mainClass> org.example.App </mainClass>
                           </transformer>
                       </transformers>
                   </configuration>
               </execution>
           </executions>
       </plugin>
   </plugins>
 </build>
</project>

First Version of module-info.java:

module org.example {
   requires javafx.controls;
   requires javafx.fxml;
   requires javafx.web;
   requires java.persistence;
   requires java.sql;
   requires java.naming;
   requires org.hibernate.orm.core;
   requires net.bytebuddy;

   opens org.example to javafx.fxml;
   exports org.example;
}

Running this throws the following exception:

java.lang.reflect.InvocationTargetException
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
   at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.cfgxml.internal.ConfigLoader$1.initialize(ConfigLoader.java:41)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.cfgxml.internal.ConfigLoader$1.initialize(ConfigLoader.java:38)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.internal.util.ValueHolder.getValue(ValueHolder.java:55)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlUrl(ConfigLoader.java:94)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:242)
   at org.example/Utils.HibernateUtil.getSessionFactory(HibernateUtil.java:19)
   at org.example/org.example.App.main(App.java:52)
   ... 11 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
   at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
   at java.base/java.lang. ClassLoader.loadClass( ClassLoader.java:522)
   ... 18 more
Exception running application org.example.App

And another Version of module-info.java:

module org.example {
   requires javafx.controls;
   requires javafx.fxml;
   requires javafx.web;
   requires java.persistence;
   requires java.sql;
   requires java.naming;
   requires org.hibernate.orm.core;
   requires net.bytebuddy;
   requires java.xml.bind;

   opens org.example to javafx.fxml;
   exports org.example;
}

Throws this exception:

org.hibernate.internal.util.config.ConfigurationException: Unable to perform unmarshalling at line number 0 and column 0 in URL file:/E:/Users/Speedy/Documents/Project-Rechnungsprogramm/target/classes/org/example/hibernate.cfg.xml. Message: null
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:133)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlUrl(ConfigLoader.java:94)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:242)
   at org.example/Utils.HibernateUtil.getSessionFactory(HibernateUtil.java:19)
   at org.example/org.example.App.main(App.java:52)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
   at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
   at java.xml.bind/javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:278)
   at java.xml.bind/javax.xml.bind.ContextFinder.find(ContextFinder.java:421)
   at java.xml.bind/javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
   at java.xml.bind/javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
   at org.hibernate.orm.core at 6.0.0.Alpha5/org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:122)
   ... 16 more
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
   at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
   at java.base/java.lang. ClassLoader.loadClass( ClassLoader.java:522)
   at java.xml.bind/javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:122)
   at java.xml.bind/javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:155)
   at java.xml.bind/javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:276)
   ... 20 more
java.lang.NullPointerException
   at org.example/org.example.App.main(App.java:52)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
   at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)

Both stacktraces reference:

registry = new StandardServiceRegistryBuilder().configure().build();

My Code used to work before adding modules and javafx so I think it might be a compatibility problem.

( https://hibernate.atlassian.net/browse/HHH-14010#add-comment?atlOrigin=eyJpIjoiMDUxMDNjMDFiNjBmNDE5YWI5YTEyYTE0NGFkNjcyZWEiLCJwIjoiaiJ9 ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-14010#add-comment?atlOrigin=eyJpIjoiMDUxMDNjMDFiNjBmNDE5YWI5YTEyYTE0NGFkNjcyZWEiLCJwIjoiaiJ9 )

Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100126- sha1:454696e )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200511/ce51868a/attachment.html 


More information about the hibernate-issues mailing list