[ 
https://issues.apache.org/jira/browse/XALANJ-2608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joe Kesselman resolved XALANJ-2608.
-----------------------------------
    Resolution: Incomplete

Insufficient information to reproduce. Breaking up the document and later 
reassembling, or filtering irrelevant parts out of the input, or using 
incremental with the discard extension, or simply increasing heap size, are the 
usual approaches. Some day sone if that may be able to be di e automatically 
--IBM has a few patents related to that – or the XSLT 3.0 streaming model, may 
help with large documents, but Xalan does not currently implement those 
concepts.

 

One thought: If you are using DOM input, try switching to SAX. Our DTM document 
model was explicitly designed to pack large documents into less memory than an 
object based DOM can.

 

 

 

> Java Heap Space Error from DTMDefaultBase
> -----------------------------------------
>
>                 Key: XALANJ-2608
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2608
>             Project: XalanJ2
>          Issue Type: Bug
>      Security Level: No security risk; visible to anyone(Ordinary problems in 
> Xalan projects.  Anybody can view the issue.) 
>          Components: DTM
>    Affects Versions: 2.7.1, 2.7.2
>         Environment: Windows 7 Entreprise Service Pack 1
> Java 8 update 122 - MaxHeapSize = 4GB
>            Reporter: khaled khalifa
>            Assignee: Steven J. Hathaway
>            Priority: Major
>         Attachments: IBXsltUtils.java, PIM_export.xslt, XSLTSample.java, 
> java_leak_problem.PNG
>
>
> When trying to gnerate a large xml file (1.5 GB) via un batch (spring-batch) 
> we get a *java.lang.OutOfMemoryError: Java heap space*
> {code}
> java.lang.OutOfMemoryError: Java heap space
>       at 
> org.apache.xml.dtm.ref.DTMDefaultBase.ensureSizeOfIndex(DTMDefaultBase.java:302)
>       at 
> org.apache.xml.dtm.ref.DTMDefaultBase.indexNode(DTMDefaultBase.java:328)
>       at 
> org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.startElement(SAX2DTM.java:1887)
>       at 
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown
>  Source)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
>  Source)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown
>  Source)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown 
> Source)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown 
> Source)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>  Source)
>       at 
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
> Source)
>       at 
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
> Source)
>       at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown 
> Source)
>       at 
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown 
> Source)
>       at 
> org.apache.xml.dtm.ref.DTMManagerDefault.getDTM(DTMManagerDefault.java:439)
>       at 
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:701)
>       at 
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275)
>       at 
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253)
> {code}
> In the attachment you may find a screenshot of the java analyser for the leak



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@xalan.apache.org
For additional commands, e-mail: dev-h...@xalan.apache.org

Reply via email to