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.