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

BeanEditForm should handle @Version fields (hibernate optimistic locking)

    XMLWordPrintableJSON

Details

    Description

      A BeanEditForm for a hibernate entity with a field annotated with @Version (the optimistic locking strategy) should be handled correctly by tapestry. Right now, it is possible to load a page with a BeanEditForm, and if the underlying entity is modified before the form is saved (in the minutes/hours/days that the page is open), the form changes will overwrite other changes. This is not supposed to happen when a Hibernate entity uses a version field.

      There are some possible solutions at https://forum.hibernate.org/viewtopic.php?f=1&t=957807

      To reproduce this, create an entity with a version field and a page with a BeanEditForm for it. Open the page, change the version (in the database if you aren't using a caching layer, or via the application if you are), and then save the form. The expected result is a StaleObjectStateException, but instead the changes are overwritten, defeating Hibernate's optimistic locking strategy.

      Attachments

        Activity

          People

            Unassigned Unassigned
            dnadolny Donny Nadolny
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: