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

        
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to