[
https://issues.apache.org/jira/browse/TRINIDAD-2112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Scott O'Bryan updated TRINIDAD-2112:
------------------------------------
Resolution: Fixed
Fix Version/s: 2.0.1
Assignee: Scott O'Bryan
Status: Resolved (was: Patch Available)
Patch Commited, closing bug
> 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
> Assignee: Scott O'Bryan
> Fix For: 2.0.1
>
> Attachments: JIRA2112_Patch_over_1_2_12_5_1.patch,
> JIRA2112_Patch_over_1_2_12_6_0.patch, JIRA2112_Patch_over_2_0_0_1.patch,
> JIRA2112_Patch_over_trunk.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