Rendered attribute breaking AJAX functionality?
ohummel Jul 4, 2008 4:36 AMHi, I'm not sure whether this is a bug or there is a reasonable explanation for the following behaviour that I can't figure out at the moment. Perhaps one of you has an idea.
I have the following situation, I include a page from a jsf file with:
<ui:include src="#{target}"/>
which works fine by the way. The included file contains e.g. something like the following snippet:
<rich:inputNumberSlider showToolTip="false" width="720" id="slider" value="2" minValue="1" maxValue="5" required="true" rendered="#{sessionInfoBean.value lt 100 }"> <a4j:support event="onchange" action="#{sessionInfoBean.method}" reRender="someRegion"/> </rich:inputNumberSlider>
As soon as I drag the slider this causes the exception pasted below. If I remove the rendered attribute the slider works normal as well as if I put it in the "top-level" jsf file. I have similar problems with other tags, e.g. a tabPanel does not switch tabs when switchType="ajax" and I seem to recall that <h:commandLink> did fail as well under the same circumstances.
So, my question is, am I doing something wrong that this construction cannot function for conceptual reasons or is there a bug in Richfaces and I should open an issue in Jira?
My configuration: Java 6, Tomcat 6.0, Richfaces 3.2.1.
04.07.2008 10:27:25 org.ajax4jsf.webapp.BaseXMLFilter doXmlFilter SCHWERWIEGEND: Exception in the filter chain javax.servlet.ServletException: Servlet execution threw an exception at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:313) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.StackOverflowError at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) (... more omitted ...) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at com.sun.facelets.el.VariableMapperWrapper.resolveVariable(VariableMapperWrapper.java:58) at org.apache.el.lang.VariableMapperFactory.resolveVariable(VariableMapperFactory.java:40) at org.apache.el.lang.ExpressionBuilder.visit(ExpressionBuilder.java:184) at org.apache.el.parser.SimpleNode.accept(SimpleNode.java:145) at org.apache.el.parser.SimpleNode.accept(SimpleNode.java:148) at org.apache.el.lang.ExpressionBuilder.prepare(ExpressionBuilder.java:133) at org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:147) at org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:190) at org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68) at com.sun.facelets.el.ELText$ELTextVariable.apply(ELText.java:161) at com.sun.facelets.compiler.TextInstruction.apply(TextInstruction.java:56) at com.sun.facelets.compiler.UIInstructionHandler.apply(UIInstructionHandler.java:84) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:102) at org.ajax4jsf.webapp.taglib.EmptyHandler.apply(EmptyHandler.java:34) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143) at com.sun.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:60) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:102) at org.ajax4jsf.webapp.taglib.EmptyHandler.apply(EmptyHandler.java:34) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143) at com.sun.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:60) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:102) at org.ajax4jsf.webapp.taglib.EmptyHandler.apply(EmptyHandler.java:34) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143) at com.sun.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:60) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:102) at org.ajax4jsf.webapp.taglib.EmptyHandler.apply(EmptyHandler.java:34) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143) at com.sun.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:60) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:102) at org.ajax4jsf.webapp.taglib.EmptyHandler.apply(EmptyHandler.java:34) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) (... continues ...)