[ 
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/[EMAIL 
> PROTECTED]
> 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

Reply via email to