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

Prakash Udupa updated TRINIDAD-2112:
------------------------------------

    Status: Patch Available  (was: Open)

> RowKeySetAttributeChange calls into model when component is not in context
> --------------------------------------------------------------------------
>
>                 Key: TRINIDAD-2112
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2112
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>    Affects Versions:  1.2.12-core
>            Reporter: Prakash Udupa
>         Attachments: JIRA2112_Patch_over_1_2_12_5_1.patch
>
>
> RowKeySetAttributeChange has this code...
>   private void _updateRowKeySetInPlace(UIComponent component, String 
> attrName, RowKeySet newValue)
>   {
>     // Check whether the remembered RowKeySet object is in a valid state
> (iterable).
>     try
>     {
>       newValue.iterator().hasNext();
>     }
>     catch (Exception e)
>     {
>       _LOG.warning("FAILED_ROWKEYSETATTRIBUTECHANGE", e.getClass());
>       return;
>     }
>     ValueExpression oldExpression = component.getValueExpression(attrName);
> At the point when this is executed, the component is not brought into 
> context, so the model bindings might be stale. Consequently call to to model 
> objects from specific implementation of RowKeySet that relies on the 
> component being brought to context would break. We had one such instance that 
> broke badly in our app.
> The fix is to bring call to newValue.iterator().hasNext(); into 
> invokeOnComponent() in the same class file, because at this time the 
> component is in context and all will be well.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to