You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Marius Kreis (JIRA)" <de...@myfaces.apache.org> on 2005/11/03 18:24:55 UTC

[jira] Commented: (MYFACES-776) Tree2 state problem when using dynamic trees

    [ http://issues.apache.org/jira/browse/MYFACES-776?page=comments#action_12356701 ] 

Marius Kreis commented on MYFACES-776:
--------------------------------------

This issue could be solved if the id of the nodes will be stored in the model. By doing this every node keeps its id, even if new nodes are inserted. (new nodes should just get max(id) + 1 or something like that). and then, when the state of the expanded/collapsed nodes is applied, there should be no inconsistency and thus no illogical state.

> Tree2 state problem when using dynamic trees
> --------------------------------------------
>
>          Key: MYFACES-776
>          URL: http://issues.apache.org/jira/browse/MYFACES-776
>      Project: MyFaces
>         Type: Bug
>  Environment: JSF RI 1.1.01
> Tomahawk nightly build from 10-30-2005
>     Reporter: Vinnie Fazio

>
> I saw this note:  http://mail-archives.apache.org/mod_mbox/myfaces-users/200504.mbox/%3C2387fbc5050415102259484685@mail.gmail.com%3E
> I couldn't find a bug for this and I am having the same problem.  I've done a little resarch and I think I understand the problem.  
> The tree2 js stores the tree state in a cookie named with the component id.  I have a page where the tree changes between requests.  Because the rest of the page is the same, the component id does not change.  The js tries to open up the same nodes as was open in the old tree.  The problem occurs when the new tree has a leaf node that was not a leaf in the old tree and was open in the old tree.  I get this error "java.lang.IllegalStateException: Encountered a node [0:0:0] + with an illogical state.  Node is expanded but it is also considered a leaf".
> For me, I could get around this problem if I could name the component (or the cookie) dynamically using a managed bean value.  Since I cannot name the id in this manner, I have a problem.
> Maybe a solution would be a new paramerter to specify the cookie name.
> Thanks!  Here is the full stack trace....
> java.lang.IllegalStateException: Encountered a node [0:0:0] + with an illogical state.  Node is expanded but it is also considered a leaf (a leaf cannot be considered expanded.
> 	org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeNavigation(HtmlTreeRenderer.java:462)
> 	org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeCurrentNode(HtmlTreeRenderer.java:345)
> 	org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeTree(HtmlTreeRenderer.java:247)
> 	org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeTree(HtmlTreeRenderer.java:275)
> 	org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeChildren(HtmlTreeRenderer.java:210)
> 	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:701)
> 	javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:607)
> 	javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:544)
> 	org.apache.jsp.WEB_002dINF.panels.favorites_jsp._jspx_meth_x_tree2_0(favorites_jsp.java:254)
> 	org.apache.jsp.WEB_002dINF.panels.favorites_jsp._jspx_meth_h_form_0(favorites_jsp.java:141)
> 	org.apache.jsp.WEB_002dINF.panels.favorites_jsp._jspx_meth_f_subview_0(favorites_jsp.java:114)
> 	org.apache.jsp.WEB_002dINF.panels.favorites_jsp._jspService(favorites_jsp.java:87)
> 	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(Unknown Source)
> 	org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(Unknown Source)
> 	org.apache.jsp.idp_jsp._jspx_meth_c_import_0(idp_jsp.java:536)
> 	org.apache.jsp.idp_jsp._jspx_meth_c_if_1(idp_jsp.java:509)
> 	org.apache.jsp.idp_jsp._jspx_meth_c_forEach_0(idp_jsp.java:405)
> 	org.apache.jsp.idp_jsp._jspx_meth_t_htmlTag_4(idp_jsp.java:357)
> 	org.apache.jsp.idp_jsp._jspx_meth_t_htmlTag_3(idp_jsp.java:307)
> 	org.apache.jsp.idp_jsp._jspx_meth_t_htmlTag_0(idp_jsp.java:166)
> 	org.apache.jsp.idp_jsp._jspx_meth_f_view_0(idp_jsp.java:129)
> 	org.apache.jsp.idp_jsp._jspService(idp_jsp.java:94)
> 	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
> 	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
> 	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
> 	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
> 	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
> 	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
> 	org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:123)

-- 
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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira