Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8188303

Class cast exception in 2D code: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData

    XMLWordPrintable

Details

    • 2d
    • x86_64
    • linux

    Description

      FULL PRODUCT VERSION :
      Java(TM) SE Runtime Environment (build 1.8.0_112-b15)

      ADDITIONAL OS VERSION INFORMATION :
      CentOS release 6.7 (64 bit)
      Linux amansvr_a 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      Internal Intel Graphics are used.

      A DESCRIPTION OF THE PROBLEM :
      When running our desktop application with animated graphics for several minutes, the application crashes with the following back trace:

      Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
      at sun.java2d.xr.XRPMBlitLoops.cacheToTmpSurface(XRPMBlitLoops.java:145)
      at sun.java2d.xr.XrSwToPMBlit.Blit(XRPMBlitLoops.java:353)
      at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:959)
      at sun.java2d.pipe.DrawImage.renderIMageCopy(DrawImage.java:577)
      ...

      The backtrace for final calls looks the same as described within JDK-8147542 "Linux: ClassCastException when repainting after display resolution change".
       We already tried out a locally patched JDK/JRE with the fix of JDK-8147542 (URL: http://hg.openjdk.java.net/jdk9/client/jdk/rev/82ca00fa3824) applied and the problem did no longer occur.
      The fix of JDK-8147542 is actually only available within JDK9 and therefore the required changes are missing in JDK8.

      A possible workaround disabling the XRender pipeline is no option for us and for that reason we would like to request
      a backport of the fix in JDK8.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      No easy how to repeat without our application environment available. But the how to repeats listed in JDK-8147542 lead to the same problem (back trace).

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Our SWING desktop application should run without any rendering based crashes.
      ACTUAL -
      The application crashes occasionally with the following back trace:

      Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
      at sun.java2d.xr.XRPMBlitLoops.cacheToTmpSurface(XRPMBlitLoops.java:145)
      at sun.java2d.xr.XrSwToPMBlit.Blit(XRPMBlitLoops.java:353)
      at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:959)
      at sun.java2d.pipe.DrawImage.renderIMageCopy(DrawImage.java:577)

      REPRODUCIBILITY :
      This bug can be reproduced occasionally.

      CUSTOMER SUBMITTED WORKAROUND :
      Disable the XRender pipeline. But this is no option due to the fact that the X11 Server and the application do not run on the same host. Therefore the rendering without the XRender pipeline would reduce the rendering performance drastically.


      SUPPORT :
      YES

      Attachments

        Issue Links

          Activity

            People

              pardesha Pardeep Sharma
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: