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)