Details
-
Type: Bug
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: 3.0
-
Fix Version/s: None
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Tomcat 7, Mojarra 2.1.6
-
Workaround Description:use f:ajax (but not sure if onevent works the same way onComplete and so on do)
Description
I've added a ace:ajax tag into a h:commandButton:
<h:commandButton value="#{msg['rt.aktualisieren']}" action="#{updateExternerAdressatTextAction.execute}" onclick="cleanupRte();">
<ace:ajax execute="@this" render="@all" />
</h:commandButton>
But I get a NullPointerException:
java.lang.NullPointerException
at org.icefaces.ace.util.JSONBuilder.escapeString(JSONBuilder.java:365)
at org.icefaces.ace.util.JSONBuilder.entry(JSONBuilder.java:287)
at org.icefaces.ace.util.JSONBuilder.entry(JSONBuilder.java:272)
at org.icefaces.ace.component.ajax.AjaxBehaviorRenderer.getScript(AjaxBehaviorRenderer.java:80)
at javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:103)
at com.sun.faces.renderkit.RenderKitUtils.appendBehaviorsToChain(RenderKitUtils.java:1418)
at com.sun.faces.renderkit.RenderKitUtils.getChainedHandler(RenderKitUtils.java:1556)
at com.sun.faces.renderkit.RenderKitUtils.renderHandler(RenderKitUtils.java:1721)
at com.sun.faces.renderkit.RenderKitUtils.renderOnclick(RenderKitUtils.java:452)
at com.sun.faces.renderkit.html_basic.ButtonRenderer.encodeBegin(ButtonRenderer.java:166)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:820)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1755)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
...
<h:commandButton value="#{msg['rt.aktualisieren']}" action="#{updateExternerAdressatTextAction.execute}" onclick="cleanupRte();">
<ace:ajax execute="@this" render="@all" />
</h:commandButton>
But I get a NullPointerException:
java.lang.NullPointerException
at org.icefaces.ace.util.JSONBuilder.escapeString(JSONBuilder.java:365)
at org.icefaces.ace.util.JSONBuilder.entry(JSONBuilder.java:287)
at org.icefaces.ace.util.JSONBuilder.entry(JSONBuilder.java:272)
at org.icefaces.ace.component.ajax.AjaxBehaviorRenderer.getScript(AjaxBehaviorRenderer.java:80)
at javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:103)
at com.sun.faces.renderkit.RenderKitUtils.appendBehaviorsToChain(RenderKitUtils.java:1418)
at com.sun.faces.renderkit.RenderKitUtils.getChainedHandler(RenderKitUtils.java:1556)
at com.sun.faces.renderkit.RenderKitUtils.renderHandler(RenderKitUtils.java:1721)
at com.sun.faces.renderkit.RenderKitUtils.renderOnclick(RenderKitUtils.java:452)
at com.sun.faces.renderkit.html_basic.ButtonRenderer.encodeBegin(ButtonRenderer.java:166)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:820)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1755)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
...
I can confirm the same issue with a <h:selectOneMenu>. Same error and similar stack trace. (Tomcat 7.0.22, Mojarra 2.1.1)