Handling AbortProcessingException is unconsistent
-------------------------------------------------
Key: MYFACES-3199
URL: https://issues.apache.org/jira/browse/MYFACES-3199
Project: MyFaces Core
Issue Type: Sub-task
Environment: myface core trunk
Reporter: Martin Kočí
UIViewRoot:
try {
source.broadcast(event);
}
catch (AbortProcessingException e)
{
ExceptionQueuedEventContext exceptionContext
= new ExceptionQueuedEventContext(context, e, source,
context.getCurrentPhaseId());
context.getApplication().publishEvent(context,
ExceptionQueuedEvent.class, exceptionContext);
// Abortion
return false;
}
Problem 1:
<h:inputText valueChangeListener="#{bean.processValueChange}">
MethodExpressionValueChangeListener wraps all exceptions to
AbortProcessingException and therefore exception is queued
Problem 2:
<h:inputText >
<f:valueChangeListener binding="#{bean}" />
</h:inputText>
ValueChangeListenerHandler does not wrap exception to AbortProcessingException
and therefore exception is not queued in this block (but it is queued from
phase executor but without component info)
Problem 3: JSF spec 2.1 :
"Clarification made: throwing an AbortProcessingException tells an
implementation that no further broadcast of the
current event occurs. Does not affect future events."
But I think that code in UIViewRoot makes opposite: // Abortion return false;
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira