[ 
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

Reply via email to