Here is the exact fix that resolves the issue when using P03.
com.icesoft.faces.context.BridgeFacesContext
public static FacesContext unwrap(FacesContext facesContext) {
........
.......
while (clientIdIterator.hasNext()) {
clientId = (String) clientIdIterator.next();
Iterator facesMessagesForClientId = facesContext.getMessages(clientId);
while (facesMessagesForClientId.hasNext()) {
message = (FacesMessage)facesMessagesForClientId.next();
// fix start
if(isGlobalMessage(clientId))
{
result.addMessage(null, message);
}
else
{
result.addMessage(clientId, message);
}
// fix end
}
}
The suggested code change looks correct. The facesMessagesWithNoId iterator should hold messages with no id from the FacesContext.getMessages(null) call. From the javadoc, propagating these with result.addMessage(null, message); is the correct call.