You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2010/05/04 00:42:56 UTC

[jira] Updated: (TAP5-1088) Bean editor model for already contains a property model for property when combining model parameter with add parameter of BeanEditor or BeanEditForm

     [ https://issues.apache.org/jira/browse/TAP5-1088?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1088:
---------------------------------------

    Summary: 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  (was: Bean editor model for <class name> already contains a property model for property <property name>)

So much for my theory about parameters; I have verified with the debugger that they are working correctly.

However, that makes me wonder what's going on in your situation?  It seems that the combination of the model parameter and the other parameters is what's toxic.  However, the test case in the patch isn't for that scenario (its the default generate model, without explicitly binding the model parameter).

I think the correct solution here is that add, reorder, include, remove are applied ONLY if the model parameter is not bound.  This applies to BeanEditor, BeanEditForm and Grid.

> 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
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1088
>                 URL: https://issues.apache.org/jira/browse/TAP5-1088
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2.0
>            Reporter: Dmitry Gusev
>            Assignee: Howard M. Lewis Ship
>         Attachments: 0001-Test-and-fix-for-TAP5-1088.diff, 0001-Test-and-fix-for-TAP5-1088.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.