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.*
> >>
> >>
> >>
> >
>

Reply via email to