Hi!
 
Did you find a solution? I also need to remove FacesMessage(s) from the FacesContext, because of removing global duplicates.
 
-Matthias
 
 -----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]Im Auftrag von Dave
Gesendet: Donnerstag, 16. März 2006 01:18
An: [email protected]
Betreff: remove FacesMessage(s) safely
I know I am doing hacks because MyFaces does not display beautiful messages in my case.
 
In a phase listener (after Model Update), I tried to remove FacesMessage(s) with generated ID like "_idJsp123"
 
    FacesContext context = event.getFacesContext();
    Iterator<FacesMessage> itr = context.getMessages();
    while (itr.hasNext()) {
      FacesMessage message = itr.next();
      if (message.getDetail().indexOf("_id") >=0 ) 
        itr.remove();
    }
 
Removing was successful without error. But during Render Phase, an error showed up.  It seems that the referenced FacesMessage is not found. I do not understand how it happens. If a FacesMessage is deleted from a collection, and it is still ref erenced by others, it will not be gabage collected.
 
Is there a way to remove FacesMessages safely?  Thanks!
 
java.util.NoSuchElementException
        at java.util.AbstractList$Itr.next(AbstractList.java:427)
        at org.apache.myfaces.renderkit.html.HtmlMessagesRendererBase$MessagesIterator.next(HtmlMessagesRendererBase.java:329)
        at org.apache.myfaces.renderkit.html.HtmlMessagesRendererBase.renderTable(HtmlMessagesRendererBase.java:119)
        at org.apache.myfaces.renderkit.html.HtmlMessagesRendererBase.renderMessages(HtmlMessagesRendererBase.java:67)
        at org.apache.myfaces.renderkit.html.HtmlMessagesRenderer.encodeEnd(HtmlMessagesRenderer.java:39)
        at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
        at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:433)
        at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:215)
        at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:97)
        at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
        at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:433)
        at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:410)


Yahoo! Travel
Find great deals to the top 10 hottest destinations!

Reply via email to