Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-4.1.0.GA, EE-3.3.0.GA_P04
-
Fix Version/s: 4.2, EE-3.3.0.GA_P05
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Firefox
-
Assignee Priority:P1
-
Support Case References:Support Case #13936 - https://icesoft.my.salesforce.com/5007000001fTe7e
Description
This issue is reproducible with the Showcase demo. With the ace:tree demo, if a City node is dragged onto the root node an IndexOutOfBoundsException is thrown. This only happens in Firefox browser, IE11 and Chrome work fine.
Stacktrace:
24-Nov-2016 06:58:02.063 SEVERE [http-nio-8080-exec-1] com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at org.icefaces.samples.showcase.example.ace.tree.LocationNodeImpl.getChildAt(LocationNodeImpl.java:64)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToChild(ListNodeDataModel.java:127)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:108)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:24)
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.decodeSelection(TreeDecoder.java:148)
at org.icefaces.ace.component.tree.TreeDecoder.decode(TreeDecoder.java:59)
at org.icefaces.ace.component.tree.TreeRenderer$1.<init>(TreeRenderer.java:65)
at org.icefaces.ace.component.tree.TreeRenderer.decode(TreeRenderer.java:64)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:832)
at org.icefaces.ace.component.tree.Tree.processDecodes(Tree.java:332)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at org.icefaces.ace.component.panel.Panel.processDecodes(Panel.java:117)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Stacktrace:
24-Nov-2016 06:58:02.063 SEVERE [http-nio-8080-exec-1] com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at org.icefaces.samples.showcase.example.ace.tree.LocationNodeImpl.getChildAt(LocationNodeImpl.java:64)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToChild(ListNodeDataModel.java:127)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:108)
at org.icefaces.ace.model.tree.ListNodeDataModel.navToKey(ListNodeDataModel.java:24)
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.decodeSelection(TreeDecoder.java:148)
at org.icefaces.ace.component.tree.TreeDecoder.decode(TreeDecoder.java:59)
at org.icefaces.ace.component.tree.TreeRenderer$1.<init>(TreeRenderer.java:65)
at org.icefaces.ace.component.tree.TreeRenderer.decode(TreeRenderer.java:64)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:832)
at org.icefaces.ace.component.tree.Tree.processDecodes(Tree.java:332)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at org.icefaces.ace.component.panel.Panel.processDecodes(Panel.java:117)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1222)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Disable temporary the 'click' handlers related to node selection to avoid having them invoked during tree reordering.