Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-2525

Tapestry-Hibernate integration incompatible with Hibernate 5.x

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.4
    • Fix Version/s: 5.4.1
    • Component/s: tapestry-hibernate
    • Labels:
      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.

        Attachments

          Activity

            People

            • Assignee:
              kaosko Kalle Korhonen
              Reporter:
              annorax I D
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: