https://issues.apache.org/bugzilla/show_bug.cgi?id=57572

            Bug ID: 57572
           Summary: Extensive comments easily trigger OOM
           Product: POI
           Version: 3.11-FINAL
          Hardware: PC
            Status: NEW
          Severity: critical
          Priority: P2
         Component: SXSSF
          Assignee: [email protected]
          Reporter: [email protected]

Created attachment 32458
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=32458&action=edit
Test harness based on your original impl.

Multiple comments easily lead to OOM.

See attached test to reproduce. 
It should be run as follows 
... -Xmx512M -Dexcel.comments=all SSPerformanceTest SXSSF 10000 6 1

Above, we generate a fairly short comment for every single cell, 60,000
comments total, which isn't a big deal, from the business app perspective.

The OOM stack always points to allocation of XML objects related to comments
and anchors, such as:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit
exceeded
    at org.apache.xmlbeans.impl.store.Xobj.ensureParent(Xobj.java:614)
    at org.apache.xmlbeans.impl.store.Xobj.getNormal(Xobj.java:661)
    at org.apache.xmlbeans.impl.store.Cur.moveNode(Cur.java:1958)
    at org.apache.xmlbeans.impl.store.Cur.moveNode(Cur.java:1846)
    at org.apache.xmlbeans.impl.store.Cursor.insertNode(Cursor.java:189)
    at
org.apache.xmlbeans.impl.store.Cursor._insertAttributeWithValue(Cursor.java:1765)
    at
org.apache.xmlbeans.impl.store.Cursor._insertAttributeWithValue(Cursor.java:1755)
    at
org.apache.xmlbeans.impl.store.Cursor.insertAttributeWithValue(Cursor.java:4271)
    at
org.apache.poi.xssf.usermodel.XSSFVMLDrawing.write(XSSFVMLDrawing.java:152)
    at
org.apache.poi.xssf.usermodel.XSSFVMLDrawing.commit(XSSFVMLDrawing.java:176)
    at org.apache.poi.POIXMLDocumentPart.onSave(POIXMLDocumentPart.java:323)
    at org.apache.poi.POIXMLDocumentPart.onSave(POIXMLDocumentPart.java:327)
    at org.apache.poi.POIXMLDocumentPart.onSave(POIXMLDocumentPart.java:327)
    at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:195)
    at
org.apache.poi.xssf.streaming.SXSSFWorkbook.write(SXSSFWorkbook.java:856)
    at SSPerformanceTest.main(SSPerformanceTest.java:132)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to