You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@poi.apache.org by Ian <ia...@hotmail.com> on 2011/06/23 21:00:22 UTC

Bug: IndexOutOfBoundsException with XSSF createFreezePane contains 0 for col or row

I'm getting IndexOutOfBoundsException when I try to used createFreezePane with
XSSF. It works fine with HSSF.

Tested with version "6 June 2011 - POI 3.8 beta 3"

I did a quick test using test49381() from
testcases\org\apache\poi\xssf\usermodel\TestXSSFBugs.java and modified colSplit
to 0 to produce the error.

Is this a known bug? I searched the bug database and could not find anything. 
It may be related to bug 47964 or bug 50884 but I'm not sure.

Thanks.
Ian

------------ error message -----------
Exception in thread "main" java.lang.IndexOutOfBoundsException
	at org.apache.xmlbeans.impl.store.Xobj.remove_attribute(Xobj.java:2269)
	at
org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTPaneImpl.unsetXSplit
(UnknownSource)
	at org.apache.poi.xssf.usermodel.XSSFSheet.createFreezePane(XSSFSheet.java:
499)
	at FreezePaneTest.test49381(FreezePaneTest.java:38)
	at FreezePaneTest.main(FreezePaneTest.java:14)



------------ FreezePaneTest.java -----------


import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.PaneInformation;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;

public class FreezePaneTest {

    public static void main(String[] args) throws Exception {
        FreezePaneTest t = new FreezePaneTest();
        t.test49381();
    }


    public void test49381() throws Exception {
 	Workbook[] wbs = new Workbook[] { new HSSFWorkbook(), new XSSFWorkbook() };
 	int colSplit = 0;
 	int rowSplit = 2;
 	int leftmostColumn = 3;
 	int topRow = 4;
 	
 	for(Workbook wb : wbs) {
 	Sheet s = wb.createSheet();
 	
 	// Populate
 	for(int rn=0; rn<= topRow; rn++) {
 	Row r = s.createRow(rn);
 	for(int cn=0; cn<leftmostColumn; cn++) {
 	Cell c = r.createCell(cn, Cell.CELL_TYPE_NUMERIC);
 	c.setCellValue(100*rn + cn);
 	}
 	}
 	
 	// Create the Freeze Pane
 	s.createFreezePane(colSplit, rowSplit, leftmostColumn, topRow);
 	PaneInformation paneInfo = s.getPaneInformation();
 	
 	// Now a row only freezepane
 	s.createFreezePane(0, 3);
 	paneInfo = s.getPaneInformation();
 	
 	if(wb == wbs[0]) {
 	} else {
 	}
 	
 	// Now a column only freezepane
 	s.createFreezePane(4, 0);
 	paneInfo = s.getPaneInformation();
 	}
 	}
}



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


Re: Bug: IndexOutOfBoundsException with XSSF createFreezePane contains 0 for col or row

Posted by Ian <ia...@hotmail.com>.
Hi

I have just tested this with POI 3.8 beta 4 and the problem is still there.

Can some one point me to the related bug. 

Thank you.





---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org