From 81dcb5c8e4eb8da470a3613f36eb8206ae2719dc Mon Sep 17 00:00:00 2001 From: prr Date: Tue, 13 May 2008 16:18:30 -0700 Subject: 6699843: IllegalArgumentException when using Graphics.drawString( "", 0, 0 ) Reviewed-by: igor, tdv --- src/share/classes/sun/java2d/SunGraphics2D.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/share/classes/sun/java2d') diff --git a/src/share/classes/sun/java2d/SunGraphics2D.java b/src/share/classes/sun/java2d/SunGraphics2D.java index 887f4c91e..921ece415 100644 --- a/src/share/classes/sun/java2d/SunGraphics2D.java +++ b/src/share/classes/sun/java2d/SunGraphics2D.java @@ -2805,6 +2805,9 @@ public final class SunGraphics2D } if (font.hasLayoutAttributes()) { + if (str.length() == 0) { + return; + } new TextLayout(str, font, getFontRenderContext()).draw(this, x, y); return; } @@ -2831,6 +2834,9 @@ public final class SunGraphics2D } if (font.hasLayoutAttributes()) { + if (str.length() == 0) { + return; + } new TextLayout(str, font, getFontRenderContext()).draw(this, x, y); return; } @@ -2856,6 +2862,9 @@ public final class SunGraphics2D if (iterator == null) { throw new NullPointerException("AttributedCharacterIterator is null"); } + if (iterator.getBeginIndex() == iterator.getEndIndex()) { + return; /* nothing to draw */ + } TextLayout tl = new TextLayout(iterator, getFontRenderContext()); tl.draw(this, (float) x, (float) y); } @@ -2865,6 +2874,9 @@ public final class SunGraphics2D if (iterator == null) { throw new NullPointerException("AttributedCharacterIterator is null"); } + if (iterator.getBeginIndex() == iterator.getEndIndex()) { + return; /* nothing to draw */ + } TextLayout tl = new TextLayout(iterator, getFontRenderContext()); tl.draw(this, x, y); } @@ -2900,6 +2912,9 @@ public final class SunGraphics2D throw new ArrayIndexOutOfBoundsException("bad offset/length"); } if (font.hasLayoutAttributes()) { + if (data.length == 0) { + return; + } new TextLayout(new String(data, offset, length), font, getFontRenderContext()).draw(this, x, y); return; @@ -2934,6 +2949,9 @@ public final class SunGraphics2D chData[i] = (char)(data[i+offset] & 0xff); } if (font.hasLayoutAttributes()) { + if (data.length == 0) { + return; + } new TextLayout(new String(chData), font, getFontRenderContext()).draw(this, x, y); return; -- cgit v1.2.3