Process an event of a node changed after removing the node cause an Exception
-----------------------------------------------------------------------------

         Key: TOMAHAWK-206
         URL: http://issues.apache.org/jira/browse/TOMAHAWK-206
     Project: MyFaces Tomahawk
        Type: Bug
  Components: Tree Table  
    Versions: 1.1.1    
    Reporter: Josué Burgos
    Priority: Minor


I think this is a bug but I'm not sure. When processing a node changed event 
after removing the node in the tree model cause this exception:
java.lang.ArrayIndexOutOfBoundsException: -1
        at java.util.ArrayList.get(ArrayList.java:326)
        at 
javax.faces.component._ComponentChildrenList.get(_ComponentChildrenList.java:42)
        at org.apache.myfaces.custom.tree.HtmlTree.findNode(HtmlTree.java:550)
        at 
org.apache.myfaces.custom.tree.HtmlTree.treeNodesChanged(HtmlTree.java:761)
        at 
org.apache.myfaces.custom.tree.HtmlTree$Event.process(HtmlTree.java:1021)
        at 
org.apache.myfaces.custom.tree.HtmlTree.processModelEvents(HtmlTree.java:865)
        at 
org.apache.myfaces.custom.tree.HtmlTree.encodeBegin(HtmlTree.java:707)
        at 
org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:441)

It doesn't find the node because it is removed before processing the event. 
Perhaps I have to force processign the events before removing the node but I 
don't think so.

A fix to the problem could be:

  549          int index = translatedPath[i];
  550          if (index == -1) return null;
  551          node = (HtmlTreeNode) node.getChildren().get(index);

instead of:
  549          int index = translatedPath[i];
  550          node = (HtmlTreeNode) node.getChildren().get(index);

or capture the IndexOutOfBoundException and return null.

in HtmlTree.java

-- 
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