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
