Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.4
-
None
Description
The following exception is thrown when attempting to start up tapestry with the latest stable version of Hibernate (5.0.6.Final):
java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.getClassMappings()Ljava/util/Iterator; at org.apache.tapestry5.hibernate.modules.HibernateModule.contributeValueEncoderSource(HibernateModule.java:95) ~[tapestry-hibernate-5.4.0.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_60] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_60] at org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:125) ~[tapestry-ioc-5.4.0.jar:na]
That is due to the fact that getClassMappings() was removed from org.hibernate.cfg.Configuration in Hibernate 5.
Luckily, it isn't really needed, and there is a backwards compatible way to do without it. I.e., tapestry can easily become compatible with Hibernate 5 without breaking compatibility with Hibernate 3 and 4.
I'll create a pull request on GitHub and link to it here.