Hi,
In the meanwhile I have tested a few things. In the attachment you'll find a
FO file ( http://old.nabble.com/file/p31286241/fop1.0-5000-fo.zip
fop1.0-5000-fo.zip ) which has scrambled data because of confidentiality.
I created the FO file with XMLspy and tried to create a PDF file with Apache
FOP 1.0 (fop.bat) on my Windows XP workstation. It produced (what it seems)
this error (see below). No PDF file was created.
---
31-mrt-2011 14:24:02 org.apache.fop.events.LoggingEventListener processEvent
SEVERE: Image not found. URI: file:/image.bmp. (See position 5:918)
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at
org.apache.fop.fo.StaticPropertyList.<init>(StaticPropertyList.java:37)
at org.apache.fop.fo.FOTreeBuilder$1.make(FOTreeBuilder.java:110)
at org.apache.fop.fo.FObj.createPropertyList(FObj.java:133)
at
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:280)
at
org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:171)
at
org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1072)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
Source)
at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown
Source)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
Source)
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
at
org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:299)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:130)
at org.apache.fop.cli.Main.startFOP(Main.java:174)
at org.apache.fop.cli.Main.main(Main.java:205)
--
Best regards,
Dennis van Zoerlandt
Georg Datterl wrote:
>
> Hi Dennis,
>
> F10. Or the button just to the left of the "FO"-Button you are using now.
> It's labeled "XSL" and performs only the first step. (if the button layout
> hasn't changed in newer versions...)
>
> If you want to use FOP 1.0, have a look at Tools->Options->XSL. There you
> can enter a path to XSL-FO transformation engine. Get Fop 1.0 running on
> your system through the batch file, then enter the path to the batch file
> here.
>
> Regards,
>
> Georg Datterl
>
> ------ Kontakt ------
>
> Georg Datterl
>
> Geneon media solutions gmbh
> Gutenstetter Straße 8a
> 90449 Nürnberg
>
> HRB Nürnberg: 17193
> Geschäftsführer: Yong-Harry Steiert
>
> Tel.: 0911/36 78 88 - 26
> Fax: 0911/36 78 88 - 20
>
> www.geneon.de
>
> Weitere Mitglieder der Willmy MediaGroup:
>
> IRS Integrated Realization Services GmbH: www.irs-nbg.de
> Willmy PrintMedia GmbH: www.willmy.de
> Willmy Consult & Content GmbH: www.willmycc.de
>
> -----Ursprüngliche Nachricht-----
> Von: Dennis van Zoerlandt [mailto:[email protected]]
> Gesendet: Freitag, 25. März 2011 15:30
> An: [email protected]
> Betreff: Re: AW: AW: AW: OutOfMemoryException while transforming large XML
> to PDF
>
>
> Hi Georg,
>
> I'm currently running the XML and XSLT through XMLspy with FOP 0.95 (it
> seems Altova doesn't support FOP 1.0).
>
> I'm not really sure how to feed the FO file to FOP? Can I just put the FO
> file as source file for the transformer.transform()?
>
> I'll get back to you when I have a FO file. My pc's currently performing
> very badly, so it seems it's a heavy job.
>
> Best regards,
> Dennis van Zoerlandt
>
>
> Georg Datterl wrote:
>>
>> Hi Dennis,
>>
>> OK, we are definitely in the creation phase. And it seems like it's not
>> an
>> obvious problem. Could you run your xml and your xslt through a
>> transformer (XmlSpy, for example) so we have something to work on? Maybe
>> you could even feed the file to fop then? That should result in the same
>> Exception and give us something to work on, until the real experts can
>> help you.
>>
>> Mit freundlichen Grüßen
>>
>> Georg Datterl
>>
>> ------ Kontakt ------
>>
>> Georg Datterl
>>
>> Geneon media solutions gmbh
>> Gutenstetter Straße 8a
>> 90449 Nürnberg
>>
>> HRB Nürnberg: 17193
>> Geschäftsführer: Yong-Harry Steiert
>>
>> Tel.: 0911/36 78 88 - 26
>> Fax: 0911/36 78 88 - 20
>>
>> www.geneon.de
>>
>> Weitere Mitglieder der Willmy MediaGroup:
>>
>> IRS Integrated Realization Services GmbH: www.irs-nbg.de
>> Willmy PrintMedia GmbH: www.willmy.de
>> Willmy Consult & Content GmbH: www.willmycc.de
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Dennis van Zoerlandt [mailto:[email protected]]
>> Gesendet: Freitag, 25. März 2011 14:09
>> An: [email protected]
>> Betreff: Re: AW: AW: OutOfMemoryException while transforming large XML to
>> PDF
>>
>>
>> Hi Georg,
>>
>> Now I understand. Is it correct to say that during the
>> transformer.transform() method both the transformation as well as the PDF
>> creation is being performed? If not, which part of my code performs the
>> creation of the PDF?
>>
>> Hereby the debug logging before the Exception is thrown:
>>
>> ---
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) BlockLayoutManager:
>> org.apache.fop.layoutmgr.BlockLayoutManager@35e6e3[fobj=org.apache.fop.fo.flow.Block@be76c7[@id=]]:
>> Border Rel
>> Side:after -> MinOptMax[min = 566, opt = 566, max = 566]
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) BlockLayoutManager:
>> org.apache.fop.layoutmgr.BlockLayoutManager@c9630a[fobj=org.apache.fop.fo.flow.Block@115126e[@id=]]:
>> Space Rel
>> Side:before, null-> MinOptMax[min = 14173, opt = 14173, max = 14173]
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) AbstractBreaker: PLM>
>> part: 1, start at pos 0, break at pos 3, break class = ANY
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) AbstractBreaker:
>> addAreas from 0 to 0
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) IDTracker:
>> signalIDProcessed()
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG)
>> AbstractPageSequenceLayoutManager: page finished: 26, current num: 26
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG) AreaTreeHandler: Last
>> page-sequence produced 2 pages.
>> [2011-03-25 13:58:24 thread-fileprinter1] (DEBUG)
>> PageSequenceLayoutManager:
>> Ending layout
>> ---
>>
>> And the first part of the stack trace:
>> ---
>> [2011-03-25 14:02:56] java.lang.OutOfMemoryError: Java heap space
>> at org.apache.fop.fo.FOText.charIterator(FOText.java:223)
>> at
>> org.apache.fop.fo.RecursiveCharIterator.getNextCharIter(RecursiveCharIterator.java:104)
>> at
>> org.apache.fop.fo.RecursiveCharIterator.<init>(RecursiveCharIterator.java:62)
>> at
>> org.apache.fop.fo.XMLWhiteSpaceHandler.handleWhiteSpace(XMLWhiteSpaceHandler.java:157)
>> at
>> org.apache.fop.fo.FObjMixed.handleWhiteSpaceFor(FObjMixed.java:87)
>> at org.apache.fop.fo.FObjMixed.finalizeNode(FObjMixed.java:176)
>> at org.apache.fop.fo.FONode.endOfNode(FONode.java:326)
>> at org.apache.fop.fo.FObjMixed.endOfNode(FObjMixed.java:69)
>> at org.apache.fop.fo.flow.Block.endOfNode(Block.java:148)
>> at
>> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:349)
>> at
>> org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:177)
>> at
>> com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(Unknown
>> Source)
>> at
>> com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(Unknown
>> Source)
>> ---
>>
>> It's notable that between the last debug message (13:58:24) and the
>> exception message (14:02:56) there is more than 3 minutes of no logging.
>> The
>> only thing I see is that the tenured generation memory pool is being
>> filled.
>> In less than a minute from the last debug message the full tenured memory
>> is
>> full. Still, it takes until 14:02:56 to throw an OutOfMemory exception.
>>
>> I tried your VM settings, but unfortunately without success.
>>
>> Best regards,
>> Dennis van Zoerlandt
>>
>>
>> Georg Datterl wrote:
>>>
>>> Hi Dennis,
>>>
>>> There are two steps: XML+XSLT-> FO that's the transformation. Done by
>>> saxon or xerces, usually. Anyway, not the main concern on this list.
>>> FO->PDF that’s the creation. That's FOPs part and the main concern here.
>>> If your process dies during the first step, there's no use in giving you
>>> hints how to reduce memory consumption in the second step, obviously. If
>>> you are not sure, you could post the last few lines of debug output
>>> before
>>> the Exception appears. Maybe that can give a hint.
>>> As for the JVM settings: I create my larger PDFs with -Xmx2000m -Xincgc
>>>
>>> Regards,
>>>
>>> Georg Datterl
>>>
>>> ------ Kontakt ------
>>>
>>> Georg Datterl
>>>
>>> Geneon media solutions gmbh
>>> Gutenstetter Straße 8a
>>> 90449 Nürnberg
>>>
>>> HRB Nürnberg: 17193
>>> Geschäftsführer: Yong-Harry Steiert
>>>
>>> Tel.: 0911/36 78 88 - 26
>>> Fax: 0911/36 78 88 - 20
>>>
>>> www.geneon.de
>>>
>>> Weitere Mitglieder der Willmy MediaGroup:
>>>
>>> IRS Integrated Realization Services GmbH: www.irs-nbg.de
>>> Willmy PrintMedia GmbH: www.willmy.de
>>> Willmy Consult & Content GmbH: www.willmycc.de
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Dennis van Zoerlandt [mailto:[email protected]]
>>> Gesendet: Freitag, 25. März 2011 10:28
>>> An: [email protected]
>>> Betreff: Re: AW: OutOfMemoryException while transforming large XML to
>>> PDF
>>>
>>>
>>> Hi Georg,
>>>
>>> As far as I'm understanding it, the transformation is the PDF creation?
>>>
>>> The image cache is already cleared after each converted file.
>>>
>>> I'll search the list archive for other options. I was hoping for certain
>>> JVM
>>> settings which could increase the tenured memory pool size.
>>>
>>> Best regards,
>>> Dennis van Zoerlandt
>>>
>>>
>>> Georg Datterl wrote:
>>>>
>>>> Hi Dennis,
>>>>
>>>> Make sure you die during pdf creation, not during transformation.
>>>> Keep your page-sequences as short as possible. Starting a new
>>>> page-sequence releases memory used by previous page-sequence
>>>> If you have many images which are only used once, deactivate image
>>>> cache.
>>>> This topic is fairly common in this list, so check the archive for
>>>> details.
>>>>
>>>> Regards,
>>>>
>>>> Georg Datterl
>>>>
>>>> ------ Kontakt ------
>>>>
>>>> Georg Datterl
>>>>
>>>> Geneon media solutions gmbh
>>>> Gutenstetter Straße 8a
>>>> 90449 Nürnberg
>>>>
>>>> HRB Nürnberg: 17193
>>>> Geschäftsführer: Yong-Harry Steiert
>>>>
>>>> Tel.: 0911/36 78 88 - 26
>>>> Fax: 0911/36 78 88 - 20
>>>>
>>>> www.geneon.de
>>>>
>>>> Weitere Mitglieder der Willmy MediaGroup:
>>>>
>>>> IRS Integrated Realization Services GmbH: www.irs-nbg.de
>>>> Willmy PrintMedia GmbH: www.willmy.de
>>>> Willmy Consult & Content GmbH: www.willmycc.de
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Dennis van Zoerlandt [mailto:[email protected]]
>>>> Gesendet: Freitag, 25. März 2011 09:51
>>>> An: [email protected]
>>>> Betreff: OutOfMemoryException while transforming large XML to PDF
>>>>
>>>>
>>>> I get a OutOfMemoryException (Java heap space) while transforming a
>>>> relatively large XML (10 MB) with a XSL-FO to a PDF file. I'm using
>>>> these
>>>> steps for the transformation:
>>>>
>>>> ---
>>>> FOUserAgent userAgent = fopFactory.newFOUserAgent();
>>>> Fop fop = this.fopFactory.newFop(MimeConstants.MIME_PDF, userAgent,
>>>> out);
>>>> TransformerFactory factory = TransformerFactory.newInstance();
>>>> Transformer transformer = factory.newTransformer(new
>>>> StreamSource(xslFile));
>>>> transformer.setParameter("versionParam", "2.0");
>>>> Source src = new StreamSource(xmlFile);
>>>> Result res = new SAXResult(fop.getDefaultHandler());
>>>> transformer.transform(src, res);
>>>> ---
>>>>
>>>> I have tried to increase the initial and maximum heap size (with
>>>> options
>>>> -Xms and -Xmx) at JVM startup but with no success. While transforming,
>>>> I'm
>>>> monitoring the size of the used and maximum tenured generation memory
>>>> pool.
>>>> The options don't seem to affect the tenured pool size: this pool is
>>>> continuously getting full in 3, 4 minutes which results shortly after
>>>> that
>>>> in this exception.
>>>>
>>>> What are my options to prevent the OutOfMemoryException?
>>>>
>>>> Best regards,
>>>> Dennis van Zoerlandt
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/OutOfMemoryException-while-transforming-large-XML-to-PDF-tp31236044p31236044.html
>>>> Sent from the FOP - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/OutOfMemoryException-while-transforming-large-XML-to-PDF-tp31236044p31236224.html
>>> Sent from the FOP - Users mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/OutOfMemoryException-while-transforming-large-XML-to-PDF-tp31236044p31237755.html
>> Sent from the FOP - Users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>>
>
> --
> View this message in context:
> http://old.nabble.com/OutOfMemoryException-while-transforming-large-XML-to-PDF-tp31236044p31238428.html
> Sent from the FOP - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
--
View this message in context:
http://old.nabble.com/OutOfMemoryException-while-transforming-large-XML-to-PDF-tp31236044p31286241.html
Sent from the FOP - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]