[ 
https://issues.apache.org/jira/browse/MYFACES-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17159378#comment-17159378
 ] 

Volodymyr Siedlecki commented on MYFACES-3702:
----------------------------------------------

[~tandraschko] 

I'd be happy to. However, I'm a bit busy with work. When I will try to get to 
this when I have some time.  

Thanks

 

> ui:repeat is caching its data model if error occurs 
> ----------------------------------------------------
>
>                 Key: MYFACES-3702
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3702
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.1.10
>            Reporter: dennis hoersch
>            Priority: Major
>
> ui:repeat caches its data model. Usually it it is cleared before rendering. 
> But not if there are any errors in faces context. 
> Why is it not cleared then?
> That causes a problem in the following scenario:
> We have an ui:repeat that iterating over a list of more detailed error 
> messages of an object on the page. This list is empty in the start of an 
> request. While invoking an action on the page error messages are added to the 
> faces context to be shown on the page. Additionally some more detailed 
> information is stored to be shown directly with that object.
> But they won't appear because the empty list is cached in the ui:repeat's 
> data model.
> I could reproduce it with the following more general example: The first 
> button creates an info message which will be shown by the ui:repeat. The 
> second button creates an error message and nothing is rendered through the 
> ui:repeat.
> Testpage.xhtml
> <his:form id="testForm">
>   <h:commandButton value="Create info message" 
> action="#{testController.createInfoMessage()}" />
>   <h:commandButton value="Create error message" 
> action="#{testController.createErrorMessage()}" />
>   <br/>
>   UI:Repeat:
>   <ui:repeat var="item" value="#{facesContext.getMessageList()}">
>     FacesMessage #{item.severity} // #{item.summary}
>   </ui:repreat>|<br/>
>   Has Messages: #{not empty facesContext.getMessageList()}|
> </his:form>
> TestController
> public void createErrorMessage() {
>   MessageUtils.addMessage(FacesMessage.SEVERITY_ERROR, "Oh no, an error!", 
> new Object[] {});
> }
> public void createInfoMessage() {
>   MessageUtils.addMessage(FacesMessage.SEVERITY_INFO, "Just an information.", 
> new Object[] {});
> }



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to