Pivot
  1. Pivot
  2. PIVOT-815

Printing crashes with Out Of Memory exception

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: 2.0.1
    • Component/s: wtk, wtk-terra
    • Environment:
      Windows 7 x64, Java 1.6.0_29

      Description

      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

      1. PrintUtilities.java
        2 kB
        Drazen Dotlic
      2. ApplicationContext.java
        75 kB
        Sandro Martini
      3. pivot_511 - Applet.launch
        1 kB
        Sandro Martini
      4. ApplicationContext.java
        75 kB
        Sandro Martini

        Issue Links

          Activity

            People

            • Assignee:
              Sandro Martini
              Reporter:
              Drazen Dotlic
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development