From 0d184d68b917d9a2b6acd79a1039c6bf1b6a8ec1 Mon Sep 17 00:00:00 2001 From: serb Date: Fri, 27 May 2016 19:12:18 +0300 Subject: [PATCH] 7172749: Xrender: Class cast exception in 2D code running an AWT regression test Reviewed-by: serb, prr --- src/solaris/classes/sun/java2d/xr/XRRenderer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/solaris/classes/sun/java2d/xr/XRRenderer.java b/src/solaris/classes/sun/java2d/xr/XRRenderer.java index 5eb84edc1..9040018cb 100644 --- a/src/solaris/classes/sun/java2d/xr/XRRenderer.java +++ b/src/solaris/classes/sun/java2d/xr/XRRenderer.java @@ -28,6 +28,7 @@ package sun.java2d.xr; import java.awt.*; import java.awt.geom.*; import sun.awt.SunToolkit; +import sun.java2d.InvalidPipeException; import sun.java2d.SunGraphics2D; import sun.java2d.loops.*; import sun.java2d.pipe.Region; @@ -69,7 +70,12 @@ public class XRRenderer implements PixelDrawPipe, PixelFillPipe, ShapeDrawPipe { * destination context. */ private final void validateSurface(SunGraphics2D sg2d) { - XRSurfaceData xrsd = (XRSurfaceData) sg2d.surfaceData; + XRSurfaceData xrsd; + try { + xrsd = (XRSurfaceData) sg2d.surfaceData; + } catch (ClassCastException e) { + throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); + } xrsd.validateAsDestination(sg2d, sg2d.getCompClip()); xrsd.maskBuffer.validateCompositeState(sg2d.composite, sg2d.transform, sg2d.paint, sg2d); -- GitLab