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]

Reply via email to