Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
Description
In Mojarra2's UIData.keepSaved, they just do the following, instead of that whole FacesMessage while loop that we do in UISeries.keepSaved:
FacesMessage.Severity sev = context.getMaximumSeverity();
return (sev != null && (FacesMessage.SEVERITY_ERROR.compareTo(sev) >= 0));
The difference of course being that we track whether a child of the container has failed validation, whereas stock JSF sees if any component in the view has failed validation.
One bad scenario with our existing way, would be if you have two different dataTables in one form. Something in dataTable A fails validation, so the whole form, and thus both dataTable A and B have failed validation. But dataTable B detects no FacesMessages for its components, so it throws out its state, losing any inputted values therein. I'd rather keep state potentially too long, that apps can just clear themselves, than lose state that unrecoverable. Maybe we should adopt their optimisation.
FacesMessage.Severity sev = context.getMaximumSeverity();
return (sev != null && (FacesMessage.SEVERITY_ERROR.compareTo(sev) >= 0));
The difference of course being that we track whether a child of the container has failed validation, whereas stock JSF sees if any component in the view has failed validation.
One bad scenario with our existing way, would be if you have two different dataTables in one form. Something in dataTable A fails validation, so the whole form, and thus both dataTable A and B have failed validation. But dataTable B detects no FacesMessages for its components, so it throws out its state, losing any inputted values therein. I'd rather keep state potentially too long, that apps can just clear themselves, than lose state that unrecoverable. Maybe we should adopt their optimisation.
Issue Links
- blocks
-
ICE-5525 Regression: UISeries.keepSaved performance
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion