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

Bean editor model for <class name> already contains a property model for property <property name> when combining model parameter with add parameter of BeanEditor or BeanEditForm

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.2.0
    • 5.2.0
    • tapestry-core
    • None

    Description

      I'm getting exception in my app:

      Render queue error in SetupRender[Details:itemeditor]: Bean editor model for org.apache.tapestry5.integration.app7.data.Item already contains a property model for property 'displayName'.

      Not sure if this is a bug or my misunderstanding of some T5 concepts.

      Here is my use case:

      I have 'Index' page displaying a list of items in a grid. Every row in the grid has an 'Edit' link (pagelink) that leads to 'Details' page where I can edit selected item using BeanEditor component. After clicking Submit application should redirect me back to 'Index' page where I can see the list with updated item. I may want to click 'Edit' once again and repeat the use case, but now at this place I get an exception I noted above.

      Here's my 'Item' class:

      package org.apache.tapestry5.integration.app7.data;

      public class Item {

      private int id;

      public Item(int id)

      { this.id = id; }

      public int getId() { return id; }

      public void setId(int id) { this.id = id; }

      public String getDisplayName()

      { return "Item #" + id; }

      }

      and a part of beaneditor markup on Details page:

      <t:beaneditor t:id="itemEditor" object="item" add="displayName"
      submitLabel="Apply Edit">

      You can see I declare new property (displayName) for the Item bean model. This works fine the first time I navigate to the Details page, but fails on the second time.

      To illustrate the exception I wrote a simple test case (see attachment). I took app6 integration test of tapestry-core tests as a reference (from trunk version on github) and implemented the test case in a new test application (app7).

      Hope this will help to understand the issue.

      Attachments

        1. 0001-Test-and-fix-for-TAP5-1088.patch
          11 kB
          Dmitry Gusev
        2. 0001-Test-and-fix-for-TAP5-1088.diff
          10 kB
          Dmitry Gusev

        Activity

          People

            hlship Howard Lewis Ship
            dmitrygusev Dmitry Gusev
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: