1

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)
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
Narayana Nagireddi
  • 729
  • 1
  • 13
  • 33
  • No, there's no technical limit. This looks just like another ICEfaces bug. – BalusC Sep 13 '13 at 01:29
  • I see that it's invoking double ajax submits if I have render `@form`, I replaced the `ice:form` with `h:form`. I feel JSF 2 is best by itself, atleast not with Icefaces – Narayana Nagireddi Sep 13 '13 at 18:31

1 Answers1

1

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

Philip Breau
  • 104
  • 2
  • I cannot use the release from the trunk, if it's a beta version. I might get the new release later from Icefaces site. But since I fixed the issue myself, I wouldn't bother anyway. Also I wish they implement some way to override the way Icefaces uses ajax submits throughout the page. The `ice:setEventPhase` also has some bugs when used with `valueChangeListener`. Anyway thanks for your help! – Narayana Nagireddi Sep 25 '13 at 00:18