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 2003/12/22 17:09:05 UTC

DO NOT REPLY [Bug 25702] New: - HSSF outofmemory exception on 1000 x 50 sheet

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=25702>.
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=25702

HSSF outofmemory exception on 1000 x 50 sheet

           Summary: HSSF outofmemory exception on 1000 x 50 sheet
           Product: POI
           Version: 1.5.1
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: HSSF
        AssignedTo: poi-dev@jakarta.apache.org
        ReportedBy: bshen@lehman.com


Hello, i am using:

redhat linux enterprise
weblogic6.1
java 1.3.1

When generating a 1000+ row x 54 col excel sheet using HSSF, the java servlet 
throws an outofmemory exception everytime (if i do one with 600 rows or less, 
it works fine). This is the first time i am using hssf and I followed the 
tutorial code:

HSSFRow title = sheet.createRow((short)0);
title.createCell((short)0).setCellValue("columnname1");
title.createCell((short)1).setCellValue("columnname2");
......etc.....
title.createCell((short)54).setCellValue("columnname53");

ResultSet rs = getresultset();
int rowcount=1;
rs = executeQuery(sql); //get resultset, leftout some jdbc codes
while (rs.next()) //has 1000+ rows
{
      HSSFRow datarow = sheet.createRow((short)rowcount);
      rowcount++;
      for(int colcount=0; colcount<55;colcount++)
      {	
	datarow.createCell((short)colcount).setCellValue(rs.getString
(colcount+1));
      }
}

Here's memory usage log file from 2 tries, both resulted in outofmemory:

[GC 13773K->10735K(32640K), 0.0287972 secs]
<Dec 22, 2003 10:04:35 AM EST> <Debug> <DEBUG> <*********************FIRST FOR 
LOOP:0> 
......
<Dec 22, 2003 10:07:04 AM EST> <Debug> <DEBUG> <CELL COUNT:50 CELL 
VALUE:0>  //*****Note this row never finished, cell count should reach 54 like 
every other row.
[Full GC 32639K->29327K(32640K), 1.8477303 secs]
[Full GC 29327K->29289K(32640K), 1.8480125 secs]
<Dec 22, 2003 10:07:08 AM EST> <Error> <HTTP> <[WebAppServletContext
(2438883,yyy,/yyy)] Servlet failed with Exception
java.lang.OutOfMemoryError
	<<no stack trace available>>


--------------


[GC 11797K->8490K(32640K), 0.0076758 secs]
[GC 11818K->8461K(32640K), 0.0067751 secs]
<Dec 22, 2003 10:15:11 AM EST> <Debug> <DEBUG> <*********************FIRST FOR 
LOOP:0>
.......
<Dec 22, 2003 10:17:12 AM EST> <Debug> <DEBUG> <CELL COUNT:54 CELL VALUE:0> 
[Full GC 30728K->27639K(32640K), 1.7628752 secs]
[Full GC 32457K->28945K(32640K), 2.1956773 secs]
[Full GC 28945K->28945K(32640K), 1.7103354 secs]
<Dec 22, 2003 10:17:19 AM EST> <Error> <HTTP> <[WebAppServletContext
(2438883,yyy,/yyy)] Servlet failed with Exception
java.lang.OutOfMemoryError
	<<no stack trace available>>


>From the log it seems the machine is not out of memory? I am really not sure 
what is going on with hssf now. Please help, thank you

gaga

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