[ https://issues.apache.org/jira/browse/MYFACES-3199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13224938#comment-13224938 ]
Leonardo Uribe commented on MYFACES-3199: ----------------------------------------- I think this should be discussed on the Expert Group. The changes done in myfaces is just an interpretation of the spec, in order to preserve consistency. For example, if an ActionListener is added using f:actionListener or using <h:commandXXX actionListener="..."/>, the same behavior should be seen by the user and so on. It is very difficult to analyze this problem without concrete examples demostrating why the code should be changed. I know there are parts that can be improved but the changes we can do are limited with the current descriptions on the spec. If no objections I'll close again this issue, because no further advance can be done from MyFaces side. > 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čí > Assignee: Leonardo Uribe > Fix For: 2.0.9, 2.1.3 > > > 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. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira