Hi I remember an issue not the same but related:
http://issues.apache.org/jira/browse/MYFACES-1819 In few words the problem is that in EL, expressions like "#{bean.map['somekey']}" returns null when getType() is called. Note this does not happens in jsf 1.1, but on jsf 1.2. Checking the code of f:setPropertyActionListener, it just do a simple call like this: target.setValue(ectx, value.getValue(ectx)); But t:updateActionListener has an additional converter property, so it try to use the converter before call setValue. It is a bug on t:updateActionListener, so it could be good create an issue on http://issues.apache.org/jira/browse/TOMAHAWK to solve it in a similar way as MYFACES-1819 does. regards, Leonardo Uribe 2009/12/15 Mike Kienenberger <mkien...@gmail.com> > I had a similar issue. > > What I did was replace "t:updateActionListener property=" with the > standardized "f:setPropertyActionListener target=". > f:setPropertyActionListener better supports edge cases under Facelets > as well. > > Other than avoiding the one-time conversion cost of the page > templates, there's no benefit to continuing to use > t:updateActionListener. I used a regular expression in Eclipse to > make the change, so it was pretty painless. > > On Tue, Dec 15, 2009 at 1:09 PM, Jakob Korherr <jakob.korh...@gmail.com> > wrote: > > Hi, > > > > The NullPointerException is raised in the following line: > > > > if (!type.equals(String.class) && ! type.equals(Object.class)) > > > > Thus type is null. > > type is the result of calling getPropertyBinding().getType(facesContext), > > which returns null in your case. > > However, I don't know exactly why this returns null, but maybe this > > clarification is the trigger for someone else, who knows it. > > > > Regards, > > > > Jakob Korherr > > > > > > 2009/12/15 Michael Heinen <michael.hei...@recommind.com> > > > >> Hi, > >> > >> > >> > >> I am still working on my update from JSF 1.1 to 1.2. > >> > >> > >> > >> Now Buttons using a t:updateActionListener are not working anymore due > to a > >> > >> java.lang.NullPointerException > >> > >> at > >> > org.apache.myfaces.custom.updateactionlistener.UpdateActionListener.processAction(UpdateActionListener.java:137) > >> > >> > >> > >> The buttons are working with the 1.1 compliant libs. > >> > >> The buttons are working without t:updateActionListener. > >> > >> > >> > >> Complete Stack: > >> > >> javax.faces.FacesException: Exception while calling broadcast on > component > >> : {Component-Path : [Class: org.ajax4jsf.component.AjaxViewRoot,ViewId: > >> /batches.jsp][Class: org.apache.myfaces.custom.document.Document,Id: > >> j_id_jsp_1727476414_3][Class: > >> org.apache.myfaces.custom.document.DocumentBody,Id: > >> j_id_jsp_1727476414_7][Class: org.apache.myfaces.custom.div.Div,Id: > >> content][Class: org.apache.myfaces.custom.div.Div,Id: batches][Class: > >> javax.faces.component.html.HtmlForm,Id: batchesForm][Class: > >> org.apache.myfaces.custom.div.Div,Id: batchlist][Class: > >> org.apache.myfaces.custom.datalist.HtmlDataList,Id: > >> j_id_jsp_1874425695_8][Class: org.apache.myfaces.custom.div.Div,Id: > >> j_id_jsp_1874425695_9][Class: org.apache.myfaces.custom.div.Div,Id: > >> openBatchBox][Class: > >> org.apache.myfaces.component.html.ext.HtmlCommandButton,Id: > batchSelectCmd]} > >> > >> at > >> > javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:562) > >> > >> at > >> javax.faces.component.UICommand.broadcast(UICommand.java:110) > >> > >> at > javax.faces.component.UIData.broadcast(UIData.java:721) > >> > >> at > >> org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) > >> > >> at > >> > org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) > >> > >> at > >> org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) > >> > >> at > >> > org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:412) > >> > >> at > >> > org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32) > >> > >> at > >> > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) > >> > >> at > >> > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) > >> > >> at > >> > org.apache.myfaces.custom.ppr.PPRLifecycleWrapper.execute(PPRLifecycleWrapper.java:68) > >> > >> at > >> javax.faces.webapp.FacesServlet.service(FacesServlet.java:178) > >> > >> at > >> > com.recommind.xxx..servlets.FacesServletWrapper.service(FacesServletWrapper.java:123) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) > >> > >> at > >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) > >> > >> at > >> > org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) > >> > >> at > >> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:384) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> com.recommind.xxx.filters.LoginFilter.doFilter(LoginFilter.java:193) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> > com.recommind.xxx.filters.EncodingFilter.doFilter(EncodingFilter.java:49) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> com.recommind.xxx.filters.TimerFilter.doFilter(TimerFilter.java:71) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > >> > >> at > >> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > >> > >> at > >> > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) > >> > >> at > >> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > >> > >> at > >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > >> > >> at > >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > >> > >> at > >> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > >> > >> at > >> > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > >> > >> at > >> > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > >> > >> at > >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > >> > >> at java.lang.Thread.run(Thread.java:619) > >> > >> Caused by: java.lang.NullPointerException > >> > >> at > >> > org.apache.myfaces.custom.updateactionlistener.UpdateActionListener.processAction(UpdateActionListener.java:137) > >> > >> at > >> javax.faces.event.ActionEvent.processListener(ActionEvent.java:51) > >> > >> at > >> > javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:554) > >> > >> ... 43 more > >> > >> Cause: > >> > >> java.lang.NullPointerException > >> > >> at > >> > org.apache.myfaces.custom.updateactionlistener.UpdateActionListener.processAction(UpdateActionListener.java:137) > >> > >> at > >> javax.faces.event.ActionEvent.processListener(ActionEvent.java:51) > >> > >> at > >> > javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:554) > >> > >> at > >> javax.faces.component.UICommand.broadcast(UICommand.java:110) > >> > >> at > javax.faces.component.UIData.broadcast(UIData.java:721) > >> > >> at > >> org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) > >> > >> at > >> > org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) > >> > >> at > >> org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) > >> > >> at > >> > org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:412) > >> > >> at > >> > org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32) > >> > >> at > >> > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) > >> > >> at > >> > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) > >> > >> at > >> > org.apache.myfaces.custom.ppr.PPRLifecycleWrapper.execute(PPRLifecycleWrapper.java:68) > >> > >> at > >> javax.faces.webapp.FacesServlet.service(FacesServlet.java:178) > >> > >> at > >> > com.recommind.xxx.servlets.FacesServletWrapper.service(FacesServletWrapper.java:123) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) > >> > >> at > >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) > >> > >> at > >> > org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) > >> > >> at > >> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:384) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> com.recommind.xxx.filters.LoginFilter.doFilter(LoginFilter.java:193) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> > com.recommind.xxx.client.web.filters.EncodingFilter.doFilter(EncodingFilter.java:49) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> com.recommind.xxx.filters.TimerFilter.doFilter(TimerFilter.java:71) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >> > >> at > >> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > >> > >> at > >> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > >> > >> at > >> > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) > >> > >> at > >> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > >> > >> at > >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > >> > >> at > >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > >> > >> at > >> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > >> > >> at > >> > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > >> > >> at > >> > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > >> > >> at > >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > >> > >> at java.lang.Thread.run(Thread.java:619) > >> > >> > >> > >> > >> > >> Sample jsp snippet: > >> > >> <t:dataList var="batch" > >> > >> value="#{MyController1.myList}” …> > >> > >> <t:commandButton id="batchSelectCmd" forceId="true" > >> > >> immediate="true" > >> > >> action="#{MyController12.search}" > >> > >> value="foo" > >> > >> disabled="#{empty > >> batch.attributes['reviewState'][0]}" > >> > >> ... > > >> > >> <t:updateActionListener > >> property="#{requestScope['selectedBatch']}" value="#{batch.value}"/> > >> > >> </t:commandButton> > >> > >> </t:dataList> > >> > >> > >> > >> Updated Libs: > >> > >> myFaces from 1.1.6 to 1.2.8 > >> > >> tomahawk from 1.1.7 to tomahawk12-1.1.9 > >> > >> tomhahawk sandbox from 1.1.7 to 1.1.9 > >> > >> richfaces from 3.1.5 to 3.3.2 (api,impl and ui) > >> > >> tiles from 1 to 2.0.5 > >> > >> > >> > >> Any ideas? > >> > >> Michael > >> > >> > >> > >> > >> > >> [image: cid:image001.gif@01C6372E.CB2041F0] > >> > >> *Michael Heinen* > >> Senior Software Engineer > >> > >> Recommind GmbH > >> Tel: +49 (0) 2226 1596620 > >> > >> Email: michael.hei...@recommind.com > >> > >> > >> > >> Recommind GmbH, Vertretungsberechtigter Geschäftsführer Hartwig Laute, > >> Registergericht Amtsgericht Bonn, Registernummer HRB 10646 > >> > >> > >> > >> *This e-mail may contain confidential and/or privileged information. If > >> you are not the intended recipient (or have received this e-mail in > error) > >> please notify the sender immediately and destroy this e-mail. Any > >> unauthorised copying, disclosure or distribution of the material in this > >> e-mail is strictly forbidden.* > >> > >> * * > >> > >> *Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte > >> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese > E-Mail > >> irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und > >> vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte > >> Weitergabe dieser Mail ist nicht gestattet.* > >> > >> > >> > > >