[ https://issues.apache.org/jira/browse/MYFACES-3199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13058141#comment-13058141 ]
Leonardo Uribe commented on MYFACES-3199: ----------------------------------------- Problem 1: The spec javadoc is clear about this. See MethodExpressionValueChangeListener.processValueChange : "... If that fails for any reason, throw an AbortProcessingException, including the cause of the failure. ..." Problem 2: Possibily this is a bug, but first we need to check it against the EG. Problem 3: It is a bug, so I'll committed a solution for it. > Handling AbortProcessingException is unconsistent > ------------------------------------------------- > > Key: MYFACES-3199 > URL: https://issues.apache.org/jira/browse/MYFACES-3199 > Project: MyFaces Core > Issue Type: Sub-task > Components: General > 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