Hi!

I am facing a strange memory problem with FOP 0.95. I have a rather large xsl-fo file (size 10 574 859 bytes) containing references to 1062 svg images and resulting in a 683 page pdf. What is strange is that FOP renders this fine on a 32-bit jvm, but fails with "GC overhead limit exceeded" on a 64-bit jvm even if given double the memory the 32-bit process is given.

  Here's the exception:


14.6.2010 11:33:10 org.apache.fop.render.AbstractRenderer renderXML
SEVERE: Some XML content will be ignored. Could not render XML
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOfRange(Unknown Source)
        at java.lang.String.<init>(Unknown Source)
        at java.lang.StringBuffer.toString(Unknown Source)
at org.apache.batik.bridge.SVGFontUtilities.getFontFamily(Unknown Source) at org.apache.batik.bridge.SVGTextElementBridge.getFontList(Unknown Source) at org.apache.batik.bridge.SVGTextElementBridge.getAttributeMap(Unknown Source) at org.apache.batik.bridge.SVGTextElementBridge.fillAttributedStringBuffer(Unknown Source) at org.apache.batik.bridge.SVGTextElementBridge.buildAttributedString(Unknown Source) at org.apache.batik.bridge.SVGTextElementBridge.computeLaidoutText(Unknown Source) at org.apache.batik.bridge.SVGTextElementBridge.buildGraphicsNode(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildComposite(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildComposite(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildComposite(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(Unknown Source) at org.apache.batik.bridge.GVTBuilder.buildComposite(Unknown Source)
        at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
at org.apache.fop.render.pdf.PDFSVGHandler.renderSVGDocument(PDFSVGHandler.java:188) at org.apache.fop.render.AbstractGenericSVGHandler.handleXML(AbstractGenericSVGHandler.java:57) at org.apache.fop.render.AbstractRenderer.renderXML(AbstractRenderer.java:808) at org.apache.fop.render.PrintRenderer.renderDocument(PrintRenderer.java:169) at org.apache.fop.render.pdf.PDFImageHandlerXML.generateImage(PDFImageHandlerXML.java:55) at org.apache.fop.render.pdf.PDFRenderer.putImage(PDFRenderer.java:1745) at org.apache.fop.render.pdf.PDFRenderer.renderImage(PDFRenderer.java:1679) at org.apache.fop.render.AbstractRenderer.renderViewport(AbstractRenderer.java:743) at org.apache.fop.render.AbstractPathOrientedRenderer.renderViewport(AbstractPathOrientedRenderer.java:621) at org.apache.fop.render.AbstractRenderer.renderInlineArea(AbstractRenderer.java:626) at org.apache.fop.render.pdf.PDFRenderer.renderInlineArea(PDFRenderer.java:1345) at org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:601) at org.apache.fop.render.pdf.PDFRenderer.renderLineArea(PDFRenderer.java:1336)

FOP does not stop at the first one - there are several of these in FOP output. The resulting pdf is broken, though.


Here's version information on the 32-bit jvm (that is able to perform the task both with -client and -server jvms):

C:\Temp>java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)


And here's the corresponding info for the 64-bit jvm (only -server jvm available):

g:\work>java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) 64-Bit Server VM (build 11.2-b01, mixed mode)


On 32-bit jvm -Xmx500m is sufficient, but on the 64-bit jvm even -Xmx1000m is not enough.


  Any ideas on how to get around this are much appreciated.



       ::Antti::


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

Reply via email to