pivot-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Drazen Dotlic (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PIVOT-815) Printing crashes with Out Of Memory exception
Date Thu, 03 Nov 2011 08:55:32 GMT

    [ https://issues.apache.org/jira/browse/PIVOT-815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13142965#comment-13142965
] 

Drazen Dotlic commented on PIVOT-815:
-------------------------------------

Hi Noel,

thanks for the very quick response.

Unfortunately, we can't call a different method - our PrintService is actually based on this
code: http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Printing/PrintUtilities.java (we renamed
PrintUtilities to PrintService, we added a bit of code to better support scaling content to
the page but nothing of significance has been modified; I've also attached the original file
to this issue).

Ultimately, what we're printing is an AWT Component, so there's no Pivot (conceptually) at
this level (PrintService class is in a JAR "low" in our dependency graph and does not depend
on Pivot in any way).

There is a way for you to detect this situation - Graphics instance will be of a different
type when you print - it will be PrintGraphics. This has been confirmed by an unrelated patch
for the issue 805: https://issues.apache.org/jira/browse/PIVOT-805

Hope this helps, if not, just let me know. We're very grateful for your support and all the
effort in building Pivot. Keep up the good work!

                
> Printing crashes with Out Of Memory exception
> ---------------------------------------------
>
>                 Key: PIVOT-815
>                 URL: https://issues.apache.org/jira/browse/PIVOT-815
>             Project: Pivot
>          Issue Type: Bug
>          Components: wtk, wtk-terra
>    Affects Versions: 2.0
>         Environment: Windows 7 x64, Java 1.6.0_29
>            Reporter: Drazen Dotlic
>            Assignee: Sandro Martini
>              Labels: crash, outofmemory, printing
>             Fix For: 2.0.1
>
>
> Printing using Java's Printable interface... We have a single Pivot Window (it's an applet)
and the layout isn't really complicated. Implementing print method of the Printable interface
in our case boils down to drawing into the provided Graphics.
> This has worked perfectly until recently (not sure which version broke things, but we're
talking last few weeks). Now when we print we get an "Out of Memory" exception. Call stack
does not show any obvious anomalies like infinite loops and such, here it is:
> java.lang.OutOfMemoryError: Java heap space
> 	at java.awt.image.DataBufferInt.<init>(Unknown Source)
> 	at java.awt.image.Raster.createPackedRaster(Unknown Source)
> 	at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source)
> 	at java.awt.image.BufferedImage.<init>(Unknown Source)
> 	at sun.java2d.loops.GraphicsPrimitive.convertFrom(Unknown Source)
> 	at sun.java2d.loops.GraphicsPrimitive.convertFrom(Unknown Source)
> 	at sun.java2d.loops.MaskBlit$General.MaskBlit(Unknown Source)
> 	at sun.java2d.loops.Blit$GeneralMaskBlit.Blit(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.blitSurfaceData(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.renderImageCopy(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
> 	at sun.java2d.pipe.ValidatePipe.copyImage(Unknown Source)
> 	at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
> 	at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.makeBufferedImage(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.renderImageXform(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.transformImage(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.scaleImage(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
> 	at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
> 	at sun.java2d.pipe.ValidatePipe.copyImage(Unknown Source)
> 	at sun.java2d.SunGraphics2D.copyImage(Unknown Source)
> 	at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
> 	at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
> 	at sun.print.PeekGraphics.drawImage(Unknown Source)
> 	at org.apache.pivot.wtk.ApplicationContext$DisplayHost.paintVolatileBuffered(ApplicationContext.java:541)
> 	at org.apache.pivot.wtk.ApplicationContext$DisplayHost.paint(ApplicationContext.java:436)
> 	at com.barchart.realtime.core.service.PrintService.paint(PrintService.java:60)
> 	at com.barchart.realtime.core.service.PrintService.print(PrintService.java:84)
> 	at sun.print.RasterPrinterJob.printPage(Unknown Source)
> 	at sun.print.RasterPrinterJob.print(Unknown Source)
> If you need more info, do not hesitate to ask. I would have provided a test case, but
it's not easy to extract code from a commercial product. Besides, I suspect this is some kind
of obvious accidental mistake which should be easy to repeat with a very simple test case.pr

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message