I think this has been fixed. We're disabling selectitems just fine in our app.
On Mon, 24 Jan 2005 12:52:54 -0500, Srikanth Madarapu
<[EMAIL PROTECTED]> wrote:
> Hi
>
> I am getting the following exception when the jsp is being rendered. I am
> using MyFaces 1.0.7. Looks like there is a bug (may be it is fixed). I have a
> disabled select item in the list of select items. The following error is
> generated while rendering that disabled select item. Is this a bug ? If so is
> it fixed in the later builds ?
>
> Please let me know.
>
> Thanks
> Srikanth
>
> I think the bug is in HtmlRendererUtils.renderSelectOptions method.
>
> If the item is disabled the writeAttribute method is called but the tag was
> already closed. The following is the code from where the exception is being
> thrown...
>
> private static void renderSelectOptions(FacesContext context,
> UIComponent component,
> Converter converter,
> Set lookupSet,
> boolean lookupSubmittedValue,
> List selectItemList)
> throws IOException
> {
> .....
> for (Iterator it = selectItemList.iterator(); it.hasNext(); )
> {
> SelectItem selectItem = (SelectItem)it.next();
>
> if (selectItem instanceof SelectItemGroup)
> {
> ...
> } else {
> Object itemValue = selectItem.getValue();
> String itemStrValue = getItemStringValue(context, component,
> converter, selectItem);
>
> writer.write("\t\t");
> writer.startElement(HTML.OPTION_ELEM, null);
> writer.writeAttribute(HTML.VALUE_ATTR, itemStrValue, null);
>
> if ((lookupSubmittedValue && lookup.contains(itemStrValue)) ||
> (!lookupSubmittedValue && lookup.contains(itemStrValue)))
> {
> writer.writeAttribute(HTML.SELECTED_ATTR,
> HTML.SELECTED_ATTR, null);
> }
>
> writer.writeText(selectItem.getLabel(), null);
>
> if (selectItem.isDisabled())
> {
> writer.writeAttribute(HTML.DISABLED_ATTR,
> HTML.DISABLED_ATTR, null);
> }
>
> writer.endElement(HTML.OPTION_ELEM);
> }
> }
> }
>
> 05/01/24 12:38:48 java.lang.IllegalStateException: Must be called before the
> start element is closed (attribute 'disabled')
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlResponseWriterImpl.writeAttribute(HtmlResponseWriterImpl.java:212)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlRendererUtils.renderSelectOptions(HtmlRendererUtils.java:490)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlRendererUtils.internalRenderSelect(HtmlRendererUtils.java:424)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlRendererUtils.renderListbox(HtmlRendererUtils.java:310)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlListboxRendererBase.encodeEnd(HtmlListboxRendererBase.java:86)
> 05/01/24 12:38:48 at
> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:315)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:285)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlGridRenderer.renderChildren(HtmlGridRenderer.java:240)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlGridRenderer.encodeEnd(HtmlGridRenderer.java:120)
> 05/01/24 12:38:48 at
> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:315)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:285)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:262)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.renderkit.html.HtmlGroupRenderer.encodeEnd(HtmlGroupRenderer.java:56)
> 05/01/24 12:38:48 at
> com.senior.web.faces.renderkit.SeniorHtmlDataGroupRenderer.encodeEnd(SeniorHtmlDataGroupRenderer.java:64)
> 05/01/24 12:38:48 at
> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:315)
> 05/01/24 12:38:48 at
> com.senior.web.faces.util.UtilHtmlRenderer.renderUIComponent(UtilHtmlRenderer.java:110)
> 05/01/24 12:38:48 at
> com.senior.web.faces.renderkit.SeniorHtmlScreenFormRenderer.writeDataArea(SeniorHtmlScreenFormRenderer.java:206)
> 05/01/24 12:38:48 at
> com.senior.web.faces.renderkit.SeniorHtmlScreenFormRenderer.encodeEnd(SeniorHtmlScreenFormRenderer.java:86)
> 05/01/24 12:38:48 at
> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:315)
> 05/01/24 12:38:48 at
> javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:373)
> 05/01/24 12:38:48 at
> javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:277)
> 05/01/24 12:38:48 at
> _constituent._profile._manageAddress._jspService(_manageAddress.java:724)
> 05/01/24 12:38:48 at
> com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
> 05/01/24 12:38:48 at
> oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349)
> 05/01/24 12:38:48 at
> oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
> 05/01/24 12:38:48 at
> oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
> 05/01/24 12:38:48 at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> 05/01/24 12:38:48 at
> com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
> 05/01/24 12:38:48 at
> com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
> 05/01/24 12:38:48 at
> com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:251)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:321)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:218)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:282)
> 05/01/24 12:38:48 at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:67)
> 05/01/24 12:38:48 at
> com.senior.servlet.SeniorFacesServlet.service(SeniorFacesServlet.java:25)
> 05/01/24 12:38:48 at
> com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
> 05/01/24 12:38:48 at
> com.senior.web.filter.SessionCleaner.doFilter(SessionCleaner.java:106)
> 05/01/24 12:38:48 at
> com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
> 05/01/24 12:38:48 at
> com.senior.web.filter.AuthFilter.doFilter(AuthFilter.java:135)
> 05/01/24 12:38:48 at
> com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
> 05/01/24 12:38:48 at
> net.sourceforge.myfaces.custom.fileupload.MultipartFilter.doFilter(MultipartFilter.java:88)
> 05/01/24 12:38:48 at
> com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:600)
> 05/01/24 12:38:48 at
> com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
> 05/01/24 12:38:48 at
> com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
> 05/01/24 12:38:48 at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
> 05/01/24 12:38:48 at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
> 05/01/24 12:38:48 at
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
> 05/01/24 12:38:48 at java.lang.Thread.run(Thread.java:534)
>
>
--
-Heath Borders-Wing
[EMAIL PROTECTED]