--- old/src/share/classes/sun/java2d/SunGraphics2D.java 2012-12-13 14:44:48.880601300 +0400 +++ new/src/share/classes/sun/java2d/SunGraphics2D.java 2012-12-13 14:44:48.687590300 +0400 @@ -82,7 +82,6 @@ import sun.java2d.loops.SurfaceType; import sun.java2d.loops.Blit; import sun.java2d.loops.MaskFill; -import sun.font.FontManager; import java.awt.font.FontRenderContext; import sun.java2d.loops.XORComposite; import sun.awt.ConstrainableGraphics; @@ -1749,11 +1748,13 @@ if (usrClip instanceof Rectangle) { r = new Rectangle((Rectangle) usrClip); } else { - r = usrClip.getBounds(); + r = new Rectangle(); + r.setFrame(usrClip.getBounds2D()); } r.translate(-transX, -transY); } else { - r = getClip().getBounds(); + r = new Rectangle(); + r.setFrame(getClip().getBounds2D()); } return r; } @@ -1764,11 +1765,11 @@ if (usrClip instanceof Rectangle) { r.setBounds((Rectangle) usrClip); } else { - r.setBounds(usrClip.getBounds()); + r.setFrame(usrClip.getBounds2D()); } r.translate(-transX, -transY); } else { - r.setBounds(getClip().getBounds()); + r.setFrame(getClip().getBounds2D()); } } else if (r == null) { throw new NullPointerException("null rectangle parameter"); @@ -1943,9 +1944,9 @@ matrix[2] = matrix[0] + rect.getWidth(); matrix[3] = matrix[1] + rect.getHeight(); tx.transform(matrix, 0, matrix, 0, 2); - rect = new Rectangle2D.Float(); - rect.setFrameFromDiagonal(matrix[0], matrix[1], - matrix[2], matrix[3]); + rect = new Rectangle2D.Double(matrix[0], matrix[1], + matrix[2] - matrix[0], + matrix[3] - matrix[1]); return rect; }