[ http://issues.apache.org/jira/browse/MYFACES-21?page=comments#action_61293 ] Jochen Schw�rer commented on MYFACES-21: ----------------------------------------
A solution to this problem (based on release 1.0.7): Class: net.sourceforge.myfaces.renderkit.html.HtmlRendererUtils Method: renderSelectOptions move line 489 "writer.writeText(selectItem.getLabel(), null);" behind the following if statement "if (selectItem.isDisabled())...." recompile the class and replace class in myfaces.jar > itemDisabled="true" in f:selectItem > ----------------------------------- > > Key: MYFACES-21 > URL: http://issues.apache.org/jira/browse/MYFACES-21 > Project: MyFaces > Type: Bug > Versions: 1.0.7 beta > Environment: Win XP, JDK build 1.4.2_04-b05, Tomcat 5.0.27, integrated with > Spring 1.1.1, Hibernate 2.1.6, acegi 0.6.1, JSTL 1.1.1 > Reporter: > Priority: Minor > > If 'itemDisabled="true"' is used in 'f:selectItem' tag, it causes the > following exception: > [ServletException in:/common/content.jsp] Must be called before the start > element is closed (attribute 'disabled')' > The following is the stack trace: > 2004-11-18 12:50:44 ApplicationDispatcher[/videobox] Servlet.service() for > servlet jsp threw exception > java.lang.IllegalStateException: Must be called before the start element is > closed (attribute 'disabled') > at > net.sourceforge.myfaces.renderkit.html.HtmlResponseWriterImpl.writeAttribute(HtmlResponseWriterImpl.java:269) > at > net.sourceforge.myfaces.renderkit.html.HtmlRendererUtils.renderSelectOptions(HtmlRendererUtils.java:493) > at > net.sourceforge.myfaces.renderkit.html.HtmlRendererUtils.internalRenderSelect(HtmlRendererUtils.java:427) > at > net.sourceforge.myfaces.renderkit.html.HtmlRendererUtils.renderMenu(HtmlRendererUtils.java:328) > at > net.sourceforge.myfaces.renderkit.html.HtmlMenuRendererBase.encodeEnd(HtmlMenuRendererBase.java:64) > at > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:329) > at > net.sourceforge.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:289) > at > net.sourceforge.myfaces.renderkit.html.HtmlGridRenderer.renderChildren(HtmlGridRenderer.java:240) > at > net.sourceforge.myfaces.renderkit.html.HtmlGridRenderer.encodeEnd(HtmlGridRenderer.java:120) > at > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:329) > at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:376) > at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:280) > at > net.sourceforge.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:79) > at > org.apache.jsp.searchContent_jsp._jspx_meth_h_panelGrid_0(searchContent_jsp.java:264) > at > org.apache.jsp.searchContent_jsp._jspx_meth_h_form_0(searchContent_jsp.java:178) > at > org.apache.jsp.searchContent_jsp._jspx_meth_f_subview_0(searchContent_jsp.java:129) > at > org.apache.jsp.searchContent_jsp._jspService(searchContent_jsp.java:96) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704) > at > org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590) > at > org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510) > at > org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:296) > at > org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:161) > at > org.apache.jsp.common.content_jsp._jspx_meth_c_import_0(content_jsp.java:81) > at org.apache.jsp.common.content_jsp._jspService(content_jsp.java:55) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704) > at > org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590) > at > org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510) > at > org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966) > at > org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:581) > at > org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137) > at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177) > at > org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:756) > at > org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:881) > at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473) > at > org.apache.jsp.common.layout_jsp._jspx_meth_tiles_insert_2(layout_jsp.java:169) > at org.apache.jsp.common.layout_jsp._jspService(layout_jsp.java:82) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704) > at > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474) > at > org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409) > at > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) > at > net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:404) > at > net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:178) > at > net.sourceforge.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:287) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110) > at > net.sourceforge.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:67) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor.proceedWithObject(FilterSecurityInterceptor.java:87) > at > net.sf.acegisecurity.intercept.AbstractSecurityInterceptor.interceptor(AbstractSecurityInterceptor.java:368) > at > net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:78) > at > net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter.doFilter(SecurityEnforcementFilter.java:165) > at > net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:105) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > net.sf.acegisecurity.ui.AbstractIntegrationFilter.doFilter(AbstractIntegrationFilter.java:170) > at > net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:105) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:199) > at > net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:105) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > net.sf.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:368) > at > net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:105) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > de.mindmatters.faces.spring.RequestHandledFilter.doFilter(RequestHandledFilter.java:117) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) > at > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) > at java.lang.Thread.run(Thread.java:534) > The following is the sample JSP code that causes the exception: > <%@ page contentType="text/html;charset=UTF-8" language="java" %> > <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> > <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %> > <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %> > <f:subview id="body"> > <f:loadBundle basename="search" var="search" /> > <h:form accept="text/html" acceptCharset="UTF-8" enctype="UTF-8"> > <!--h:panelGrid columns="2" styleClass="form-background" > headerClass="form-header" columnClasses="form-prompt,form-field"--> > <h:panelGrid columns="2"> > <%-- Grid header element --%> > > <f:facet name="header"> > <h:panelGroup> > <h:outputText value="#{search.header}"/> > </h:panelGroup> > </f:facet> > > <h:panelGroup> > <h:outputLabel for="searchBy" > value="#{search.searchBy}"/> > <h:selectOneMenu id="searchBy" title="Criteria > Type" tabindex="1" value="#{searchPage.searchBy}" > > <f:selectItem itemDisabled="true" > itemValue="0" itemLabel=""/> > <f:selectItem itemValue="A" > itemLabel="A Name" /> > <f:selectItem itemValue="V" > itemLabel="B Name" /> > </h:selectOneMenu> > </h:panelGroup> > </h:panelGrid> > </h:form> > <div style="border: 1px dashed #999999"> > <h:messages showSummary="true" showDetail="false" > layout="table"/> > </div> > </f:subview> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira
