JDK-8170973 : Linux: ClassCastException in XRPMBlitLoops.cacheToTmpSurface when repainting after display resolution change
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 8
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux
  • CPU: x86_64
  • Submitted: 2016-11-28
  • Updated: 2016-12-09
  • Resolved: 2016-12-09
Related Reports
Duplicate :  
Description
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.


Comments
This issue is duplicate of JDK-8147542. Submitter is requesting a backport for 8 on JDK-8147542
02-12-2016