Hello,

I tried vainly to use Shale 1.0.4 with Ajax4JSF. When I put some ajax component onto my page and try to open it, I receive a NullPointerException:

javax.servlet.ServletException
   javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
   org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
   org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
de.uni_muenster.easy.web.filters.SecurityFilter.doFilter(SecurityFilter.java:48) org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

java.lang.NullPointerException
org.ajax4jsf.renderkit.AjaxRendererUtils.buildAjaxFunction(AjaxRendererUtils.java:390) org.ajax4jsf.renderkit.html.AjaxFormRenderer.doEncodeBegin(AjaxFormRenderer.java:131)
   org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:101)
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
   javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
   javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592) org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:243) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
   com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
   com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
   javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
   org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
   org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
de.uni_muenster.easy.web.filters.SecurityFilter.doFilter(SecurityFilter.java:48) org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


The reason is that Ajax4JSF relies on the fact that either facesContext.getViewRoot() is an AjaxViewRoot container or that the ajaxForm's parent (or grand parent and so on) is an AjaxViewRoot. But using Shale the facesContext.getViewRoot() is an instance of ShaleViewRoot (the form's parent is that same ShaleViewRoot object).

As this issue is not resolved with the latest 1.1.0 SNAPSHOT I would like to ask you kindly to give full Ajax4JSF support.

Thank you very much
Dominik

Reply via email to