[ 
https://issues.jboss.org/browse/RF-10784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12588989#comment-12588989
 ] 

Vladimir Kravchenko commented on RF-10784:
------------------------------------------

What I mean is the following change:
{code}
        public void processEvents(FacesContext context,
                        EventsQueue phaseEventsQueue, boolean havePhaseEvents) {
                FacesEvent event;
                while (havePhaseEvents) {
                        try {
                                event = (FacesEvent) phaseEventsQueue.remove();
                        } catch (NoSuchElementException e) {
                                havePhaseEvents = false;
                                break;
                        }
                        UIComponent source = event.getComponent();
                        try {
                                source.broadcast(event);
                        } catch (AbortProcessingException e) {
                                if (_log.isErrorEnabled()) {
                                        UIComponent component = 
event.getComponent();
                                        String id = null != component ? 
component
                                                        .getClientId(context) : 
"";
                                        _log.error(
                                                        "Error processing faces 
event for the component "
                                                                        + id, 
e);
                                }
                        }
                }
        }
{code}

The "processEvents" method may swallow NoSuchElementException thrown by 
"phaseEventsQueue.remove()" call, but not ones that are thrown inside the 
"source.broadcast(event);" call. 

Will it break JSF specification?

> AjaxViewRoot swallows NoSuchElementException from by the application code
> -------------------------------------------------------------------------
>
>                 Key: RF-10784
>                 URL: https://issues.jboss.org/browse/RF-10784
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 3.3.2.SR1
>            Reporter: Vladimir Kravchenko
>            Assignee: Nick Belaevski
>
> AjaxViewRoot.processEvents() swallows NoSuchElemntException thrown by an 
> apllication code, due to too wide catch block:
> {code}
>       public void processEvents(FacesContext context,
>                       EventsQueue phaseEventsQueue, boolean havePhaseEvents) {
>               FacesEvent event;
>               while (havePhaseEvents) {
>                       try {
>                               event = (FacesEvent) phaseEventsQueue.remove();
>                               UIComponent source = event.getComponent();
>                               try {
>                                       source.broadcast(event);
>                               } catch (AbortProcessingException e) {
>                                       if (_log.isErrorEnabled()) {
>                                               UIComponent component = 
> event.getComponent();
>                                               String id = null != component ? 
> component
>                                                               
> .getClientId(context) : "";
>                                               _log.error(
>                                                               "Error 
> processing faces event for the component "
>                                                                               
> + id, e);
>                                       }
>                               }
>                       } catch (NoSuchElementException e) {
>                               havePhaseEvents = false;
>                       }
>               }
>       }
> {code}
> http://anonsvn.jboss.org/repos/richfaces/tags/3.3.3.Final/framework/impl/src/main/java/org/ajax4jsf/component/AjaxViewRoot.java
> A NoSuchElemtException thrown inside "source.broadcast(event);" will be 
> swallowed by the catch block.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to