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

andreas_back (JIRA) jira-events at lists.jboss.org
Tue Sep 23 11:15:23 EDT 2008


     [ https://jira.jboss.org/jira/browse/RF-4517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

andreas_back updated RF-4517:
-----------------------------

    Description: 
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.

  was:
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.



> 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 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: 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