You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ca...@apache.org on 2007/11/07 06:37:15 UTC

svn commit: r592616 - /xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java

Author: cam
Date: Tue Nov  6 21:37:08 2007
New Revision: 592616

URL: http://svn.apache.org/viewvc?rev=592616&view=rev
Log:
Avoid ClassCastException when checking for zero-dimension gradient
bounding boxes.

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java?rev=592616&r1=592615&r2=592616&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java Tue Nov  6 21:37:08 2007
@@ -24,9 +24,11 @@
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 
+import org.apache.batik.dom.svg.SVGContext;
 import org.apache.batik.ext.awt.LinearGradientPaint;
 import org.apache.batik.ext.awt.MultipleGradientPaint;
 import org.apache.batik.gvt.GraphicsNode;
+
 import org.w3c.dom.Element;
 
 /**
@@ -116,10 +118,11 @@
         // The last paragraph of section 7.11 in SVG 1.1 states that objects
         // with zero width or height bounding boxes that use gradients with
         // gradientUnits="objectBoundingBox" must not use the gradient.
-        AbstractGraphicsNodeBridge bridge = (AbstractGraphicsNodeBridge)
-            BridgeContext.getSVGContext(paintedElement);
-        if (bridge != null) {
-            Rectangle2D bbox = bridge.getBBox();
+        SVGContext bridge = BridgeContext.getSVGContext(paintedElement);
+        if (bridge instanceof AbstractGraphicsNodeBridge) {
+            // XXX Make this work for non-AbstractGraphicsNodeBridges, like
+            // the various text child bridges.
+            Rectangle2D bbox = ((AbstractGraphicsNodeBridge) bridge).getBBox();
             if (bbox != null && bbox.getWidth() == 0 || bbox.getHeight() == 0) {
                 return null;
             }