Bill Lucy created MYFACES-4051:
----------------------------------

             Summary: FacesMessage.Severity always set to ERROR after 
ValidatorException
                 Key: MYFACES-4051
                 URL: https://issues.apache.org/jira/browse/MYFACES-4051
             Project: MyFaces Core
          Issue Type: Bug
    Affects Versions: 2.2.10
         Environment: Tomcat, WebSphere Liberty
            Reporter: Bill Lucy


The severity of messages is always set (overwritten) to SEVERITY_ERROR when a 
ValidatorException is thrown during validation.  In 
org.apache.myfaces.view.facelets.compiler._ComponentUtils I see that we always 
call 

facesMessage.setSeverity(FacesMessage.SEVERITY_ERROR);

when processing a ValidatorException.  This might make sense if we're assuming 
that all faces messages default to some other severity, but it doesn't seem 
right to me that we're overwriting user-set message severities.  For example, 
given the following custom validator:

        public void validate(FacesContext context, UIComponent component, 
Object value) {
                if (value == null) {
                        List<FacesMessage> messageList = new ArrayList<>();
                        messageList.add(new 
FacesMessage(FacesMessage.SEVERITY_INFO,
                                "ValidatorException#SEVERITY_INFO", 
"ValidatorException#SEVERITY_INFO"));
                        throw new ValidatorException(messageList);
                }
        }

The severity of the custom message will always be set to SEVERITY.ERROR.  I 
don't see much guidance in the spec on this, but Mojarra behaves differently - 
it does not overwrite custom FacesMessage severities.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to