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 14:27:03 UTC
svn commit: r488267 - in /harmony/enhanced/classlib/trunk/modules/awt/src:
main/java/common/java/awt/font/NumericShaper.java
test/api/java/common/org/apache/harmony/awt/tests/java/awt/font/NumericShaperTest.java
Author: apetrenko
Date: Mon Dec 18 05:27:02 2006
New Revision: 488267
URL: http://svn.apache.org/viewvc?view=rev&rev=488267
Log:
Patch for HARMONY-1584 "[classlib][awt]Compatibility: java.awt.font.NumericShaper.shape() methods throw different exceptions for illegal parameters on RI and Harmony"
Modified:
harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/font/NumericShaper.java
harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/org/apache/harmony/awt/tests/java/awt/font/NumericShaperTest.java
Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/font/NumericShaper.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/font/NumericShaper.java?view=diff&rev=488267&r1=488266&r2=488267
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/font/NumericShaper.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/font/NumericShaper.java Mon Dec 18 05:27:02 2006
@@ -537,18 +537,6 @@
}
public void shape(char[] text, int start, int count, int context) {
- int len = text.length;
-
- if ((start < 0) || ((start + count) > len)) {
- // awt.19A=start or count arguments are out of text range
- throw new IndexOutOfBoundsException(Messages.getString("awt.19A")); //$NON-NLS-1$
- }
-
- if (count < 0) {
- // awt.19B=count argument must be positive
- throw new IllegalArgumentException(Messages.getString("awt.19B")); //$NON-NLS-1$
- }
-
if (isContextual()){
contextualShape(text, start, count, getIndexFromRange(context));
} else {
@@ -557,18 +545,6 @@
}
public void shape(char[] text, int start, int count) {
- int len = text.length;
-
- if ((start < 0) || ((start + count) > len)) {
- // awt.19A=start or count arguments are out of text range
- throw new IndexOutOfBoundsException(Messages.getString("awt.19A")); //$NON-NLS-1$
- }
-
- if (count < 0) {
- // awt.19B=count argument must be positive
- throw new IllegalArgumentException(Messages.getString("awt.19B")); //$NON-NLS-1$
- }
-
if (isContextual()){
contextualShape(text, start, count, fDefaultContextIndex);
} else {
Modified: harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/org/apache/harmony/awt/tests/java/awt/font/NumericShaperTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/org/apache/harmony/awt/tests/java/awt/font/NumericShaperTest.java?view=diff&rev=488267&r1=488266&r2=488267
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/org/apache/harmony/awt/tests/java/awt/font/NumericShaperTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/org/apache/harmony/awt/tests/java/awt/font/NumericShaperTest.java Mon Dec 18 05:27:02 2006
@@ -357,4 +357,95 @@
}
+ /*
+ * Test method for 'java.awt.font.NumericShaper.shape(char[], int, int)' with
+ * illegal parameters.
+ */
+ public final void testShapeCharArrayIntInt_IllegalArguments() {
+ // regression test for Harmony-1584
+ int ranges = NumericShaper.ARABIC;
+ NumericShaper localNumericShaper = NumericShaper
+ .getContextualShaper(ranges);
+ char[] chars = new char[] {};
+ int start = 0;
+ int count = 1;
+ try {
+ localNumericShaper.shape(chars, start, count);
+ fail("len = 0: ArrayIndexOutOfBoundsException expected!");
+ } catch (ArrayIndexOutOfBoundsException expectedException) {
+ // expected
+ }
+
+ chars = new char[] {'a', 'b', 'c'};
+ start = -1;
+ count = 1;
+ try {
+ localNumericShaper.shape(chars, start, count);
+ fail("start < 0: ArrayIndexOutOfBoundsException expected!");
+ } catch (ArrayIndexOutOfBoundsException expectedException) {
+ // expected
+ }
+
+ // count < 0: silent run expected
+ start = 1;
+ count = -1;
+ localNumericShaper.shape(chars, start, count);
+
+ start = 3;
+ count = 5;
+ try {
+ localNumericShaper.shape(chars, start, count);
+ fail("start + count > len: ArrayIndexOutOfBoundsException expected!");
+ } catch (ArrayIndexOutOfBoundsException expectedException) {
+ // expected
+ }
+
+ }
+
+ /*
+ * Test method for 'java.awt.font.NumericShaper.shape(char[], int, int, int)' with
+ * illegal parameters.
+ */
+ public final void testShapeCharArrayIntIntInt_IllegalArguments() {
+ // regression test for Harmony-1584
+ int ranges = NumericShaper.ARABIC;
+ NumericShaper localNumericShaper = NumericShaper
+ .getContextualShaper(ranges);
+ char[] chars = new char[] {};
+ int start = 0;
+ int count = 1;
+ int index = NumericShaper.ARABIC;
+ try {
+ localNumericShaper.shape(chars, start, count, index);
+ fail("len = 0: ArrayIndexOutOfBoundsException expected!");
+ } catch (ArrayIndexOutOfBoundsException expectedException) {
+ //expected
+ }
+
+ chars = new char[] {'a', 'b', 'c'};
+ start = -1;
+ count = 1;
+ try {
+ localNumericShaper.shape(chars, start, count, index);
+ fail("start < 0: ArrayIndexOutOfBoundsException expected!");
+ } catch (ArrayIndexOutOfBoundsException expectedException) {
+ // expected
+ }
+
+ // count < 0: silent run expected
+ start = 1;
+ count = -1;
+ localNumericShaper.shape(chars, start, count, index);
+
+ start = 3;
+ count = 5;
+ try {
+ localNumericShaper.shape(chars, start, count, index);
+ fail("start + count > len: ArrayIndexOutOfBoundsException expected!");
+ } catch (ArrayIndexOutOfBoundsException expectedException) {
+ // expected
+ }
+
+ }
+
}