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

Linux: ClassCastException in XRPMBlitLoops.cacheToTmpSurface when repainting after display resolution change

XMLWordPrintable

    • 2d
    • x86_64
    • linux

      FULL PRODUCT VERSION :
      java version "1.8.0_112"
      Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
      Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)


      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 is used.

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

      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 :
      please refer to how to repeat of JDK-8147542

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      please refer to how to repeat of JDK-8147542
      ACTUAL -
      see backtrace within description

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      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 XRender pipeline via property.
      However, the usage of XRender is for us no feasible option.

            aroy Abhijit Roy (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: