You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ap...@apache.org on 2006/12/18 15:34:35 UTC
svn commit: r488286 - in /harmony/enhanced/classlib/trunk/modules/awt/src:
main/java/common/java/awt/Font.java
test/api/java/common/java/awt/FontTest.java
Author: apetrenko
Date: Mon Dec 18 06:34:34 2006
New Revision: 488286
URL: http://svn.apache.org/viewvc?view=rev&rev=488286
Log:
Patch for HARMONY-1591 "[classlib][awt]Compatibility: awt.Font.getStringBounds() exception order on Harmony differs from RI"
Modified:
harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java
harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/FontTest.java
Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java?view=diff&rev=488286&r1=488285&r2=488286
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java Mon Dec 18 06:34:34 2006
@@ -701,32 +701,17 @@
public Rectangle2D getStringBounds(String str, int start, int end,
FontRenderContext frc) {
- if (start < 0) {
- // awt.95=Wrong start index: {0}
- throw new IndexOutOfBoundsException(Messages.getString("awt.95", start)); //$NON-NLS-1$
- }
- if ( end > str.length()) {
- // awt.96=Wrong finish index: {0}
- throw new IndexOutOfBoundsException(Messages.getString("awt.96", end)); //$NON-NLS-1$
- }
- if (start > end) {
- // awt.97=Wrong range length: {0}
- throw new IndexOutOfBoundsException(Messages.getString("awt.97", //$NON-NLS-1$
- (end-start)));
- }
return this.getStringBounds((str.substring(start, end)), frc);
}
public Rectangle2D getStringBounds(char[] chars, int start, int end,
FontRenderContext frc) {
- int finish = chars.length;
-
if (start < 0) {
// awt.95=Wrong start index: {0}
throw new IndexOutOfBoundsException(Messages.getString("awt.95", start)); //$NON-NLS-1$
}
- if ( end > finish) {
+ if ( end > chars.length) {
// awt.96=Wrong finish index: {0}
throw new IndexOutOfBoundsException(Messages.getString("awt.96", end)); //$NON-NLS-1$
}
Modified: harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/FontTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/FontTest.java?view=diff&rev=488286&r1=488285&r2=488286
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/FontTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/FontTest.java Mon Dec 18 06:34:34 2006
@@ -17,10 +17,13 @@
package java.awt;
+import java.awt.font.FontRenderContext;
import java.awt.font.TextAttribute;
import java.text.AttributedString;
+import java.text.CharacterIterator;
import java.text.AttributedCharacterIterator.Attribute;
import java.util.Collections;
+
import junit.framework.TestCase;
public class FontTest extends TestCase {
@@ -105,6 +108,38 @@
} catch (NullPointerException e) {
// expected
}
+ }
+
+ /*
+ * Compatibility test. We check that Harmony throws same
+ * exceptions as RI does.
+ */
+ public void test_Font_getStringBounds_WithNullTextSource() {
+ // regression test for Harmony-1591
+ Font font = new Font("dialog", Font.PLAIN, 12);
+ FontRenderContext cnt = new FontRenderContext(null, false, true);
+ try {
+ font.getStringBounds((char[]) null, -16, 1, cnt);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ font.getStringBounds((String) null, -16, 1, cnt);
+ } catch (NullPointerException e) {
+ // expected
+ }
+
+ try {
+ font.getStringBounds((CharacterIterator) null, -16, 1, cnt);
+ } catch (NullPointerException e) {
+ // expected
+ }
+ try {
+ font.getStringBounds((String) null, cnt);
+ } catch (NullPointerException e) {
+ // expected
+ }
}
}