[richfaces-issues] [JBoss JIRA] Created: (RF-4517) ArrayIndexOutOfBoundsException for scrollableDataTable in 3.2.2 GA and 3.3.3 snapshot

andreas_back (JIRA) jira-events at lists.jboss.org
Mon Sep 22 11:30:21 EDT 2008


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


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 test that have been done locally.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the richfaces-issues mailing list