[ 
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

        

Reply via email to