[ 
https://issues.apache.org/jira/browse/MYFACES-3613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13470947#comment-13470947
 ] 

marco fago commented on MYFACES-3613:
-------------------------------------

Sounds fair. I agree.
                
> NPE in composite component when ActionListener is missing in the source
> -----------------------------------------------------------------------
>
>                 Key: MYFACES-3613
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3613
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.1.8
>         Environment: Java 1.7_05 Win32, Servlet3.0, Jetty8.1.5.v20120716
>            Reporter: marco fago
>         Attachments: MYFACES-3613-1.patch
>
>
> Consider the following component (simpleCommandButton.xhtml)
> <ui:component xmlns="http://www.w3.org/1999/xhtml"; 
>       xmlns:ui="http://java.sun.com/jsf/facelets";
>       xmlns:h="http://java.sun.com/jsf/html"; 
>       xmlns:p="http://primefaces.org/ui";      
>       xmlns:cc="http://java.sun.com/jsf/composite";
>       >
>       <cc:interface>
>               <cc:attribute name="action"/>
>               <cc:attribute name="actionListener"/>
>         <cc:attribute name="value"/>        
>       </cc:interface>
>       <cc:implementation>             
>               <h:commandButton value="#{cc.attrs.value}" 
> action="#{cc.attrs.action}" actionListener="#{cc.attrs.actionListener}" 
> immediate="true">                    
>                       <cc:insertChildren/>
>               </h:commandButton>
>       </cc:implementation>
> </ui:component>
> And in your page:
> <myLib::simpleCommandButton value="Test" action="exit"/>
> When clicking on the button a NPE occurs:
> java.lang.NullPointerException
>       at 
> org.apache.myfaces.view.facelets.el.ValueExpressionMethodExpression.invoke(ValueExpressionMethodExpression.java:68)
>       at 
> org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>       at 
> javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:83)
>       at javax.faces.event.ActionEvent.processListener(ActionEvent.java:51)
>       at 
> javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:418)
>       at javax.faces.component.UICommand.broadcast(UICommand.java:103)
>       at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1028)
>       at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:286)
>       at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1375)
>       at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:759)
>       at 
> org.springframework.faces.webflow.FlowLifecycle.invokePhase(FlowLifecycle.java:118)
>       at 
> org.springframework.faces.webflow.FlowLifecycle.execute(FlowLifecycle.java:70)
>       at 
> org.springframework.faces.webflow.JsfView.processUserEvent(JsfView.java:120)
>       at 
> org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:226)
>       at 
> org.springframework.webflow.engine.ViewState.resume(ViewState.java:196)
>       at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
>       at 
> org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:258)
>       at 
> org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
>       at 
> org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
>       at 
> org.springframework.faces.webflow.JsfFlowHandlerAdapter.handle(JsfFlowHandlerAdapter.java:48)
>       at 
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
>       at 
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
>       at 
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>       at 
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>       at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:643)
>       at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
>       at 
> org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
>       at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1302)
>       at 
> net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:95)
>       at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:86)
>       at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1302)
>       at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java
> probably because of the missing (null) attribute "actionListener" in the 
> source declaration.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to