]
Mikhail Vitenkov closed RF-4517.
--------------------------------
Assignee: Mikhail Vitenkov (was: Tsikhon Kuprevich)
Verified at 3.3.0.BETA5.
ArrayIndexOutOfBoundsException for scrollableDataTable in 3.2.2 GA
and 3.3.3 snapshot
-------------------------------------------------------------------------------------
Key: RF-4517
URL:
https://jira.jboss.org/jira/browse/RF-4517
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.2.2
Environment: Browser independent
Reporter: andreas_back
Assignee: Mikhail Vitenkov
Fix For: 3.3.0
Subversion shows that konstantin.mishin introduced the code
String[] si = options.split(",");
grid.setFirst(Integer.parseInt(si[1]));
component.getAttributes().put(ScrollableDataTableUtils.CLIENT_ROW_KEY,
Integer.parseInt(si[3]));
into the class ScrollableDataTableBaseRenderer at 02 September 2008 for the bugfix of
RF-4367.
After changing to 3.2.2 GA we see the following exception for scrollableDataTables.
The exception occurs if the table contains less rows than the rows parameter in the
definition of the rich:scrollableDataTable:
java.lang.ArrayIndexOutOfBoundsException: 3
org.richfaces.renderkit.html.ScrollableDataTableBaseRenderer.doDecode(ScrollableDataTableBaseRenderer.java:651)
org.ajax4jsf.renderkit.RendererBase.decode(RendererBase.java:76)
javax.faces.component.UIComponentBase.decode(UIComponentBase.java:789)
org.ajax4jsf.component.UIDataAdaptor.processDecodes(UIDataAdaptor.java:1159)
org.ajax4jsf.component.UIDataAdaptor.processDecodes(UIDataAdaptor.java:1168)
org.richfaces.component.UIScrollableDataTable.processDecodes(UIScrollableDataTable.java:140)
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
javax.faces.component.UIForm.processDecodes(UIForm.java:209)
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
org.richfaces.component.UISwitchablePanel.processDecodes(UISwitchablePanel.java:169)
org.richfaces.component.UITabPanel.processDecodes(UITabPanel.java:154)
org.ajax4jsf.component.AjaxViewRoot$1.invokeContextCallback(AjaxViewRoot.java:392)
org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:238)
org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
Within the class ScrollableDataTableBaseRenderer the string options contains
for example a string
"0,0,19"
if rows="19" is set in the specification of the
scrollableDataTable. Therefore the array si has a length of 3, which results
into the execption.
Changing ScrollableDataTableBaseRenderer.java from
component.getAttributes().put(ScrollableDataTableUtils.CLIENT_ROW_KEY,
Integer.parseInt(si[3]));
into
component.getAttributes().put(ScrollableDataTableUtils.CLIENT_ROW_KEY,
Integer.parseInt(si[2]));
seems to resolve this error in the tests that have been done locally.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: