Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.2
-
Fix Version/s: EE-3.3.0.GA, 4.0.BETA, 4.0
-
Component/s: ACE-Components, Sample Apps
-
Labels:None
-
Environment:ICEfaces3 trunk rev # 31740
-
Assignee Priority:P1
-
Affects:Sample App./Tutorial
Description
In showcase - ace:tree - Drag/Drop page:
if dragging and dropping nodes starting from the second node, so that each node becomes the child of an upper node (see attached screen shot), at one certain drag movement, a java.lang.IndexOutOfBoundsException is thrown in the tomcat log.
24-Oct-2012 3:06:00 PM com.sun.faces.context.PartialViewContextImpl processPartial
INFO: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.icefaces.samples.showcase.example.ace.tree.LocationNodeImpl.getChildAt(LocationNodeImpl.java:69)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToChild(ListNodeDataModel.java:111)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:92)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:8)
at org.icefaces.ace.component.tree.Tree.setNodeToKey(Tree.java:159)
at org.icefaces.ace.component.tree.Tree.setKey(Tree.java:127)
at org.icefaces.ace.component.tree.TreeDecoder.decodeReordering(TreeDecoder.java:83)
at org.icefaces.ace.component.tree.TreeDecoder.decode(TreeDecoder.java:70)
at org.icefaces.ace.component.tree.TreeRenderer$1.<init>(TreeRenderer.java:63)
at org.icefaces.ace.component.tree.TreeRenderer.decode(TreeRenderer.java:62)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787)
at org.icefaces.ace.component.tree.Tree.processDecodes(Tree.java:301)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at org.icefaces.ace.component.tree.Tree.visitTree(Tree.java:390)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601)
at javax.faces.component.UIForm.visitTree(UIForm.java:344)
if dragging and dropping nodes starting from the second node, so that each node becomes the child of an upper node (see attached screen shot), at one certain drag movement, a java.lang.IndexOutOfBoundsException is thrown in the tomcat log.
24-Oct-2012 3:06:00 PM com.sun.faces.context.PartialViewContextImpl processPartial
INFO: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.icefaces.samples.showcase.example.ace.tree.LocationNodeImpl.getChildAt(LocationNodeImpl.java:69)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToChild(ListNodeDataModel.java:111)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:92)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:8)
at org.icefaces.ace.component.tree.Tree.setNodeToKey(Tree.java:159)
at org.icefaces.ace.component.tree.Tree.setKey(Tree.java:127)
at org.icefaces.ace.component.tree.TreeDecoder.decodeReordering(TreeDecoder.java:83)
at org.icefaces.ace.component.tree.TreeDecoder.decode(TreeDecoder.java:70)
at org.icefaces.ace.component.tree.TreeRenderer$1.<init>(TreeRenderer.java:63)
at org.icefaces.ace.component.tree.TreeRenderer.decode(TreeRenderer.java:62)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787)
at org.icefaces.ace.component.tree.Tree.processDecodes(Tree.java:301)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at org.icefaces.ace.component.tree.Tree.visitTree(Tree.java:390)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601)
at javax.faces.component.UIForm.visitTree(UIForm.java:344)
This error would occur if the tree traversal logic had a bug or if the client side tree component had produced incorrect indexes due to a bug or race condition. Without a precise test case there is no way to determine the cause of this error.