java.lang.NullPointerException at org.icefaces.impl.context.DOMPartialViewContext.generateElementUpdateNotifications

934 Views Asked by At

I'm using JSF 2.1.21 and Icefaces 3.3. Is there any limit for number of id's within render attribute of f:ajax if they are all within one form? If I use 4 id's it throws the below exception. If I use 3 I have no issues. All the 4 components along with listbox are in one form

<ice:form>
<h:selectOneListbox id="userId" value="#{myViewScopedBean.userId}">
<f:selectItems value="#{myViewScopedBean.userSelectList}" />
<f:ajax execute="@this" render="id1 id2 id3 id4"  
    listener="#{myReqScopedController.userSelected}"/>
</h:selectOneListbox>
....
</ice:form>



Error Rendering View[/myPage.xhtml]
                             java.lang.NullPointerException
at org.icefaces.impl.context.DOMPartialViewContext.generateElementUpdateNotifications(DOMPartialViewContext.java:285)
at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:241)
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:973)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:413)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
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)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1663)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:939)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
1

There are 1 best solutions below

1
On

There have been a few fixes to the DOM-diff algorithm over the last few months since the 3.3 release (http://jira.icesoft.org/browse/ICE-9490). You should try the trunk, and please report if you still see the issue.

http://anonsvn.icesoft.org/repo