Mark,

Thanks for the response.

I have a loop going over rows and columns where in I do "XSSFRow row =
sheet.createRow(row_i)"  and "XSSFCell cell = row.createCell(column_j)". I
am under the impression that the "row" and "cell" objects are destroyed
automatically once it comes out the scope of the loop. Am I
misunderstanding something ? Do I need to explicitly destroy them ? If so
how ?

Regards,
-Mohan

On Mon, Oct 27, 2014 at 3:27 PM, MARK GOLDEN <[email protected]>
wrote:

> Hi Mohan,
>
> Are you cleaning up unwanted objects?
>
> The JVM will simply expand, surprising quickly, if you do not 'Destroy'
> objects you no longer need.
>
> Regards,
> Mark.
>
>
> ________________________________
>  From: Mohan Nuggehally <[email protected]>
> To: [email protected]
> Sent: Monday, 27 October 2014, 19:14
> Subject: out of memory and GC overhead limit error
>
>
> I get this error when I try to create an excel sheet using xssf. All I am
> doing is creating rows and columns by reading contents from a file. Of
> course when I change the max heap size from 1GB to 6GB it works. I wonder
> if 1GB is really too small or is the code bad and therefore requires a huge
> heap. Any experiences ? Here is the error stack.
> -------------
> Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
>     at
>
> org.apache.poi.ss.util.CellReference.convertNumToColString(CellReference.java:433)
>     at
>
> org.apache.poi.ss.util.CellReference.appendCellReference(CellReference.java:492)
>     at
> org.apache.poi.ss.util.CellReference.formatAsString(CellReference.java:455)
>     at org.apache.poi.xssf.usermodel.XSSFCell.setCellNum(XSSFCell.java:710)
>     at org.apache.poi.xssf.usermodel.XSSFRow.createCell(XSSFRow.java:175)
>     at org.apache.poi.xssf.usermodel.XSSFRow.createCell(XSSFRow.java:147)
>     at org.apache.poi.xssf.usermodel.XSSFRow.createCell(XSSFRow.java:39)
>     at
> GraphWriteFull_to_Excel.create_sheet(GraphWriteFull_to_Excel.java:150)
>     at GraphWriteFull_to_Excel.main(GraphWriteFull_to_Excel.java:79)
> ----------------
> The error stack is different as below when I set the max heap size to 4GB
> --------------
> Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit
> exceeded
>     at java.util.Arrays.copyOfRange(Arrays.java:2694)
>     at java.lang.String.<init>(String.java:203)
>     at java.lang.String.copyValueOf(String.java:2908)
>     at java.io.StreamTokenizer.nextToken(StreamTokenizer.java:702)
>     at
> GraphWriteFull_to_Excel.create_sheet(GraphWriteFull_to_Excel.java:151)
>     at GraphWriteFull_to_Excel.main(GraphWriteFull_to_Excel.java:79)
> ---------------
> I appreciate any feedback.
>
> Regards,
> -Mohan
>
> --
> Mohan Nuggehally
> Senior Developer, Es-ice
> Office: Direct dial: 1-631-760-3244
>            Internal extension: 25172
> New York
>



-- 
Mohan Nuggehally
Senior Developer, Es-ice
Office: Direct dial: 1-631-760-3244
           Internal extension: 25172
New York

Reply via email to