Bug 41954

Summary: AWT Renderer fails with heap memory error
Product: Fop - Now in Jira Reporter: Barry Pearce <barry.pearce>
Component: awt rendererAssignee: fop-dev
Status: CLOSED INVALID    
Severity: normal    
Priority: P2    
Version: 0.93   
Target Milestone: ---   
Hardware: PC   
OS: other   
Attachments: Example PDF output produced from the code.
XSL-FO which formats the page.
XML input data.
Image included in the test
Complete test source code.

Description Barry Pearce 2007-03-26 16:45:09 UTC
The attached code fails with the following trace on the AWT Renderer. All the
other pieces of code execute and produce the correct output (PDF etc). However,
the AWT Renderer displays the print preview window, with 'Generating' in the
status bar at the bottom, and then the following exception is reported.

27-Mar-2007 00:43:55 org.apache.fop.render.java2d.Java2DRenderer getPageImage
INFO: Rendering Page 1 (pageWidth 595, pageHeight 842)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
	at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
	at java.awt.image.Raster.createPackedRaster(Raster.java:458)
	at
java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:321)
	at
org.apache.fop.render.java2d.Java2DRenderer.getBufferedImage(Java2DRenderer.java:376)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:317)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:404)
	at
org.apache.fop.render.awt.viewer.ImageProxyPanel.paintComponent(ImageProxyPanel.java:124)
	at javax.swing.JComponent.paint(JComponent.java:1022)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JViewport.paint(JViewport.java:747)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5104)
	at
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5052)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4862)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:727)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:683)
	at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:663)
	at
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
java.lang.IllegalArgumentException: Printing cancelled by operator
	at
org.apache.fop.render.print.PrintRenderer.initializePrinterJob(PrintRenderer.java:91)
	at org.apache.fop.render.print.PrintRenderer.<init>(PrintRenderer.java:63)
	at
org.apache.fop.render.print.PrintRendererMaker.makeRenderer(PrintRendererMaker.java:37)
	at org.apache.fop.render.RendererFactory.createRenderer(RendererFactory.java:186)
	at org.apache.fop.area.RenderPagesModel.<init>(RenderPagesModel.java:70)
	at org.apache.fop.area.AreaTreeHandler.setupModel(AreaTreeHandler.java:146)
	at org.apache.fop.area.AreaTreeHandler.<init>(AreaTreeHandler.java:123)
	at
org.apache.fop.render.RendererFactory.createFOEventHandler(RendererFactory.java:236)
	at org.apache.fop.fo.FOTreeBuilder.<init>(FOTreeBuilder.java:98)
	at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:147)
	at org.apache.fop.apps.Fop.<init>(Fop.java:82)
	at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:227)
	at TestFOP.FOPIt(TestFOP.java:123)
	at TestFOP.main(TestFOP.java:78)
27-Mar-2007 00:44:09 org.apache.fop.render.java2d.Java2DRenderer getPageImage
INFO: Rendering Page 1 (pageWidth 595, pageHeight 842)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
	at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
	at java.awt.image.Raster.createPackedRaster(Raster.java:458)
	at
java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:321)
	at
org.apache.fop.render.java2d.Java2DRenderer.getBufferedImage(Java2DRenderer.java:376)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:317)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:404)
	at
org.apache.fop.render.awt.viewer.ImageProxyPanel.paintComponent(ImageProxyPanel.java:124)
	at javax.swing.JComponent.paint(JComponent.java:1022)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5104)
	at
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
	at javax.swing.JComponent.paintForceDoubleBuffered(JComponent.java:1058)
	at javax.swing.JViewport.blitDoubleBuffered(JViewport.java:1612)
	at javax.swing.JViewport.windowBlitPaint(JViewport.java:1573)
	at javax.swing.JViewport.setViewPosition(JViewport.java:1118)
	at
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.hsbStateChanged(BasicScrollPaneUI.java:1060)
	at
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1011)
	at
javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:348)
	at
javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:285)
	at javax.swing.DefaultBoundedRangeModel.setValue(DefaultBoundedRangeModel.java:151)
	at javax.swing.JScrollBar.setValue(JScrollBar.java:446)
	at
javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.setValueFrom(BasicScrollBarUI.java:1169)
	at
javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.mouseDragged(BasicScrollBarUI.java:1106)
	at java.awt.Component.processMouseMotionEvent(Component.java:6086)
	at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3278)
	at java.awt.Component.processEvent(Component.java:5807)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
27-Mar-2007 00:44:09 org.apache.fop.render.java2d.Java2DRenderer getPageImage
INFO: Rendering Page 1 (pageWidth 595, pageHeight 842)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
	at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
	at java.awt.image.Raster.createPackedRaster(Raster.java:458)
	at
java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:321)
	at
org.apache.fop.render.java2d.Java2DRenderer.getBufferedImage(Java2DRenderer.java:376)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:317)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:404)
	at
org.apache.fop.render.awt.viewer.ImageProxyPanel.paintComponent(ImageProxyPanel.java:124)
	at javax.swing.JComponent.paint(JComponent.java:1022)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JViewport.paint(JViewport.java:747)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5104)
	at
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5052)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4862)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:727)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:683)
	at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:663)
	at
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
27-Mar-2007 00:44:10 org.apache.fop.render.java2d.Java2DRenderer getPageImage
INFO: Rendering Page 1 (pageWidth 595, pageHeight 842)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
	at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
	at java.awt.image.Raster.createPackedRaster(Raster.java:458)
	at
java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:321)
	at
org.apache.fop.render.java2d.Java2DRenderer.getBufferedImage(Java2DRenderer.java:376)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:317)
	at
org.apache.fop.render.java2d.Java2DRenderer.getPageImage(Java2DRenderer.java:404)
	at
org.apache.fop.render.awt.viewer.ImageProxyPanel.paintComponent(ImageProxyPanel.java:124)
	at javax.swing.JComponent.paint(JComponent.java:1022)
	at javax.swing.JComponent.paintChildren(JComponent.java:859)
	at javax.swing.JComponent.paint(JComponent.java:1031)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5104)
	at
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
	at javax.swing.JComponent.paintForceDoubleBuffered(JComponent.java:1058)
	at javax.swing.JViewport.blitDoubleBuffered(JViewport.java:1612)
	at javax.swing.JViewport.windowBlitPaint(JViewport.java:1573)
	at javax.swing.JViewport.setViewPosition(JViewport.java:1118)
	at
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.hsbStateChanged(BasicScrollPaneUI.java:1060)
	at
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1011)
	at
javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:348)
	at
javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:285)
	at javax.swing.DefaultBoundedRangeModel.setValue(DefaultBoundedRangeModel.java:151)
	at javax.swing.JScrollBar.setValue(JScrollBar.java:446)
	at
javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.setValueFrom(BasicScrollBarUI.java:1169)
	at
javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.mouseDragged(BasicScrollBarUI.java:1106)
	at java.awt.Component.processMouseMotionEvent(Component.java:6086)
	at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3278)
	at java.awt.Component.processEvent(Component.java:5807)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
27-Mar-2007 00:44:10 org.apache.fop.render.java2d.Java2DRenderer getPageImage
INFO: Rendering Page 1 (pageWidth 595, pageHeight 842)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space

(This is under Java 1.6)
Comment 1 Barry Pearce 2007-03-26 16:45:37 UTC
Created attachment 19805 [details]
Example PDF output produced from the code.
Comment 2 Barry Pearce 2007-03-26 16:46:04 UTC
Created attachment 19806 [details]
XSL-FO which formats the page.
Comment 3 Barry Pearce 2007-03-26 16:46:35 UTC
Created attachment 19807 [details]
XML input data.
Comment 4 Barry Pearce 2007-03-26 16:47:05 UTC
Created attachment 19808 [details]
Image included in the test
Comment 5 Barry Pearce 2007-03-26 16:47:30 UTC
Created attachment 19809 [details]
Complete test source code.
Comment 6 Barry Pearce 2007-03-27 16:08:01 UTC
This is not a fault. This is caused by my stupidity!!!

Ive set the resolution on the user agent to 600 for the rendering to PS, PDF and
print....but left it at this resolution for the AWT preview as well...given most
screens are at 72-96 dpi this leads to a rather interesting increase in
size...thus it fails....no great surprise!
Comment 7 Glenn Adams 2012-04-01 13:49:55 UTC
batch transition to closed remaining pre-FOP1.0 resolved bugs