You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2004/03/06 18:13:12 UTC

DO NOT REPLY [Bug 27496] New: - HSSFSheet#getRowBreaks() raises NPE with a brand-new workbook

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27496>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27496

HSSFSheet#getRowBreaks() raises NPE with a brand-new workbook

           Summary: HSSFSheet#getRowBreaks() raises NPE with a brand-new
                    workbook
           Product: POI
           Version: 2.0-dev
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: HSSF
        AssignedTo: poi-dev@jakarta.apache.org
        ReportedBy: hironori@jajakarta.org


I tried page break feature of POI-2.5-FINAL, and got trouble.
I create a new workbook file with Excel and call HSSFSheet#getRowBreaks(), then 
it raises NullPointerException.

(1) create a new workbook file (three sheets and no data) with Excel.
I tried with Excel 2000 and XP.
(2) create HSSFWorkbook instance for (1)'s workbook.
(3) call workbook.getSheetAt() to get sheet.
(4) call sheet.getRowBreaks(). It raises NPE.

Environments:
  Windows2000
  J2SE 1.4.2_03
  MS Excel2000
  POI-2.5-FINAL


Here is the stack trace.
---
java.lang.NullPointerException
	at org.apache.poi.hssf.model.Sheet.getNumRowBreaks(Sheet.java:2764)
	at org.apache.poi.hssf.usermodel.HSSFSheet.getRowBreaks(HSSFSheet.java:
1144)
	at POISample.handleSheet(POISample.java:41)
	at POISample.main(POISample.java:26)
Exception in thread "main" 
---

and sample code
---
public class POISample
{

  public static void main(final String[] args)
    throws Exception
  {
    final HSSFWorkbook book = new HSSFWorkbook(new FileInputStream(args[0]));
    POISample.handleSheet(book.getSheetAt(0));
    book.write(new FileOutputStream(args[1]));
  }

  private static void handleSheet(final HSSFSheet sheet)
  {
    for (int i = 0; i < 5; ++i)
    {
      final HSSFRow row = sheet.createRow(i);
      for (short j = 0; j < 5; ++j)
      {
        final HSSFCell cell = row.createCell(j);
        cell.setCellValue(i + ":" + j);
      }
    }
    final int[] breaks = sheet.getRowBreaks();
    sheet.setRowBreak(1);
  }

}
---

Additionally, in some cases i succeeded calling getRowBreaks().
If the sheet already has some page breaks, or the sheet is created with 
HSSFWorkbook#createSheet(), it succeeds.

kind regards.

IRIE Hironori

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