Error in framework class TreeContentProviderHelper

Hi all,

I am facing a weird error in an application developed using CAF.

The stacktrace is the following:

2013-11-14 09:50:32 CET (jsf:ERROR)  [RID:121777] - Render Phase des Portlets fehlgeschlagen
java.lang.IllegalStateException
	at com.webmethods.caf.faces.data.tree.object.TreeContentProviderHelper.isOpen(TreeContentProviderHelper.java:64)
	at com.webmethods.caf.faces.data.tree.object.NodeTreeContentProvider.isOpen(NodeTreeContentProvider.java:131)
	at com.webmethods.caf.faces.render.html.tree.TreeRowDataColumnRenderer.encodeBegin(TreeRowDataColumnRenderer.java:87)
	at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:813)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:83)
	at com.webmethods.caf.faces.render.BaseRenderer.renderComponent(BaseRenderer.java:303)
	at com.webmethods.caf.faces.render.html.table.TableRenderer.writeTableRow(TableRenderer.java:594)
	at com.webmethods.caf.faces.render.html.tree.AsyncTreeRenderer.writeSubtree(AsyncTreeRenderer.java:176)
	at com.webmethods.caf.faces.render.html.tree.AsyncTreeRenderer.encodeChildren(AsyncTreeRenderer.java:67)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:86)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.logic.ImportTemplate.encodeChildren(ImportTemplate.java:571)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:86)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.logic.ImportTemplate.encodeChildren(ImportTemplate.java:571)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:86)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.component.util.ComponentUtils.renderComponent(ComponentUtils.java:91)
	at com.webmethods.caf.faces.view.BaseViewHandler.renderResponse(BaseViewHandler.java:276)
	at com.webmethods.caf.faces.view.BaseViewHandler.renderView(BaseViewHandler.java:127)
	at com.webmethods.caf.faces.portlet.PortletLifecycle$RenderResponsePhase.execute(PortletLifecycle.java:739)
	at com.webmethods.caf.faces.portlet.PortletLifecycle.phase(PortletLifecycle.java:261)
	at com.webmethods.caf.faces.portlet.PortletLifecycle.render(PortletLifecycle.java:190)
	at com.webmethods.caf.faces.portlet.FacesPortlet.render(FacesPortlet.java:398)
	at com.webmethods.portal.framework.portletcontainer.impl.PortletApplicationHandler.process(PortletApplicationHandler.java:495)
	at com.webmethods.portal.framework.portletcontainer.servlet.PortletServlet.service(PortletServlet.java:58)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
	at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192)
	at com.webmethods.portal.framework.portletcontainer.PortletContainer.dispatch(PortletContainer.java:221)
	at com.webmethods.portal.framework.portletcontainer.PortletContainer.process(PortletContainer.java:130)
	at com.webmethods.portal.framework.portletcontainer.PortletContainer.renderPortlet(PortletContainer.java:103)
	at com.webmethods.portal.framework.portletcontainer.beans.PortletBean.processRequest(PortletBean.java:193)
	at com.webmethods.portal.framework.portletcontainer.beans.PortletBean.getContentInternal(PortletBean.java:82)
	at com.webmethods.portal.framework.portlet.beans.BasicPortletBean.getContent(BasicPortletBean.java:151)
	at com.webmethods.portal.mech.portlet.impl.PortletMechanics.getPortletContent(PortletMechanics.java:96)
	at com.webmethods.portal.mech.storage.page.PortletHelper.renderContent(PortletHelper.java:428)
	at com.webmethods.portal.mech.storage.page.PortletHelper.renderContent(PortletHelper.java:400)
	at com.webmethods.portal.framework.presentation.renderers.PortalPageSubRenderer.renderPortlet(PortalPageSubRenderer.java:593)
	at com.webmethods.portal.framework.presentation.renderers.PortalPageSubRenderer.renderColumn(PortalPageSubRenderer.java:430)
	at com.webmethods.portal.framework.presentation.renderers.PortalPageSubRenderer.renderRow(PortalPageSubRenderer.java:286)
	at com.webmethods.portal.framework.presentation.renderers.PortalPageSubRenderer.renderColumn(PortalPageSubRenderer.java:434)
	at com.webmethods.portal.framework.presentation.renderers.PortalPageSubRenderer.renderRow(PortalPageSubRenderer.java:286)
	at com.webmethods.portal.framework.presentation.renderers.PortalPageSubRenderer.renderContent(PortalPageSubRenderer.java:142)
	at com.webmethods.portal.framework.presentation.renderers.PortalPageSubRenderer.subrender(PortalPageSubRenderer.java:120)
	at com.webmethods.portal.framework.presentation.renderers.NoodleRenderer.renderPageContent(NoodleRenderer.java:67)
	at com.webmethods.portal.framework.presentation.renderers.DefaultRenderer.render(DefaultRenderer.java:227)
	at com.webmethods.portal.framework.presentation.PresentationManager.handlePres(PresentationManager.java:389)
	at com.webmethods.portal.framework.dispatch.DispatchManager.pres(DispatchManager.java:640)
	at com.webmethods.portal.framework.dispatch.DispatchManager.handle(DispatchManager.java:470)
	at com.webmethods.portal.framework.dispatch.DispatchManager.handleDispatch(DispatchManager.java:381)
	at com.webmethods.portal.framework.impl.PortalServlet.service(PortalServlet.java:300)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
	at com.webmethods.portal.framework.impl.NTLMV1Filter.doFilter(NTLMV1Filter.java:50)
	at com.webmethods.portal.framework.impl.NTLMFilter.doFilter(NTLMFilter.java:28)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.webmethods.caf.faces.servlet.GZIPFilter.doFilter(GZIPFilter.java:43)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.webmethods.portal.framework.impl.RequestFilter.doFilter(RequestFilter.java:56)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)
   What is even worse with this error is that it does not originate in our code and I cannot establish a pattern for it (it seems to appears randomly: sometimes on the search tab, sometime on the task details and on different actions). It appears several times a day in the Production environment which is pretty bad. 

   Did you experienced this problem before?

   If you did not experienced the problem, but have some ideas please share them with me. Everyone one of them will be tested and the outcome documented for future use by people who will face the same problem.

   Thank you.

Best regards,
Vlad Turian

It looks like this exception is occurring when rendering one of the portlets on the page that renders a tree. Are any of your portlets drawing a tree? The IllegalStateException is called when the ContentProvider bound to the tree control returns false to the call: provider.isRowAvailable()

–mark

Hi Mark,

Yes I have a tree in one of my portlets.

That was my first idea too (that the problem is generated by that tree).

I found out that the problem can occur when the tree provider’s array is empty.

However the business department decided that the tree was not that important and I have replaced it with another component.

Thank you for your answer.