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 2008/10/31 00:26:44 UTC

[jira] Commented: (TAP5-34) Saving a form with a Grid after sorting saves data to incorrect rows.

    [ https://issues.apache.org/jira/browse/TAP5-34?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12644160#action_12644160 ] 

Howard M. Lewis Ship commented on TAP5-34:
------------------------------------------

I found the primary cause of this; CachingDataSource (inside Grid) was accessing the underlying source parameter directly; during a form submission, this value isn't cached, each access results in a fresh access of the underlying data source, which often means that the sort constraints (via prepare()) were lost, and the elements in the data source accessed and updated in a arbitrary order.

I'm fixing that (CachingDataSource will be a static inner class and hold a direct reference to the underlying data source), but I'm also adding PrimaryKeyEncoder support to Grid and GridRows, as with Loop.

> Saving a form with a Grid after sorting saves data to incorrect rows.
> ---------------------------------------------------------------------
>
>                 Key: TAP5-34
>                 URL: https://issues.apache.org/jira/browse/TAP5-34
>             Project: Tapestry 5
>          Issue Type: Bug
>    Affects Versions: 5.0.15
>            Reporter: Skow
>            Assignee: Howard M. Lewis Ship
>
> I could be doing something wrong, but it seems as though saving a Grid of objects which is included in a Form after sorting the Grid to a non-default sort order results in the rows getting saved under an incorrect ID.  
> This should be reproducible in any form which includes an editable Grid, but here are the basic steps to reproduce what I'm seeing:
> 1.  Create an Item class which includes an ID column and a Name column (I have mine set up as a Hibernate object)
> 2.  Create a Page with a Grid of Items inside a Form including a Save button which causes the Page to persist the Items
> 3.  Create a couple Items (ID, name):
>       (1, 'item one')
>       (2, 'item two')
> 4.  Bring up the Page, Sort by ID (or Name) so they look like this:
>       (2, 'item two')
>       (1, 'item one')
> 5.  Click Save and if I'm not mistaken you will see:
>       (2, 'item one')      <-- Note that Item 2 is now associated with the name of Item 1...
>       (1, 'item two')
> Please let me know if there is any difficulty in reproducing this issue and I will try to put together a minimal code example.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org