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/12 20:18:51 UTC

svn commit: r486283 - in /harmony/enhanced/classlib/trunk/modules/awt/src: main/java/common/java/awt/image/ main/java/common/org/apache/harmony/awt/internal/nls/ test/api/java/common/java/awt/image/

Author: apetrenko
Date: Tue Dec 12 11:18:51 2006
New Revision: 486283

URL: http://svn.apache.org/viewvc?view=rev&rev=486283
Log:
Patch for HARMONY-2183 "[classlib][awt] DataBufferUShort(short[] dataArray, int size, int offset) doesn't throw IllegalArgumentException when dataArray.length less than size + offset"

Modified:
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties
    harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/image/DataBufferUShortTest.java

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java?view=diff&rev=486283&r1=486282&r2=486283
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java Tue Dec 12 11:18:51 2006
@@ -20,6 +20,8 @@
  */
 package java.awt.image;
 
+import org.apache.harmony.awt.internal.nls.Messages;
+
 
 public final class DataBufferUShort extends DataBuffer {
 
@@ -27,6 +29,12 @@
 
     public DataBufferUShort(short dataArrays[][], int size, int offsets[]) {
         super(TYPE_USHORT, size, dataArrays.length, offsets);
+        for(int i = 0; i < dataArrays.length; i++){
+            if(dataArrays[i].length < offsets[i] + size){
+                // awt.28d=Length of dataArray[{0}] is less than size + offset[{1}]
+                throw new IllegalArgumentException(Messages.getString("awt.28D", i, i));  //$NON-NLS-1$
+            }
+        }
         data = dataArrays.clone();
     }
 
@@ -37,6 +45,10 @@
 
     public DataBufferUShort(short dataArray[], int size, int offset) {
         super(TYPE_USHORT, size, 1, offset);
+        if(dataArray.length < size + offset){
+            // awt.28E=Length of dataArray is less than size + offset
+            throw new IllegalArgumentException(Messages.getString("awt.28E")); //$NON-NLS-1$
+        }
         data = new short[1][];
         data[0] = dataArray;
     }

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties?view=diff&rev=486283&r1=486282&r2=486283
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties Tue Dec 12 11:18:51 2006
@@ -476,6 +476,8 @@
 awt.28A=childMinX + width results in integer overflow
 awt.28B=childMinY + height results in integer overflow
 awt.28C=Rect is null
+awt.28D=Length of dataArray[{0}] is less than size + offset[{1}]
+awt.28E=Length of dataArray is less than size + offset
 
 awt.err.00=file dialog {0} error!
 awt.err.01=error: {0}

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/image/DataBufferUShortTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/image/DataBufferUShortTest.java?view=diff&rev=486283&r1=486282&r2=486283
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/image/DataBufferUShortTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/image/DataBufferUShortTest.java Tue Dec 12 11:18:51 2006
@@ -69,6 +69,33 @@
     public DataBufferUShortTest(String name) {
         super(name);
     }
+    
+    public final void testDataBufferUShort_1(){
+        // Test for constructor DataBufferUShort(short[] dataArray, int size, int offset)
+        short data[] = new short[10];
+        DataBufferUShort dbus = null;
+        try{
+            dbus = new DataBufferUShort(data, 10, 10);
+            fail("No IllegalArgumentException");
+        }catch(IllegalArgumentException e){
+            assertTrue(true);
+        }
+    }
+    
+    public final void testDataBufferUShort_2(){
+        // Test for constructor DataBufferUShort(short[][] dataArray, int size, int[] offsets)
+        short data[][] = new short[2][0];
+        data[0] = new short[20];
+        data[1] = new short[10];
+        int offsets[] = new int[]{10, 10};
+        DataBufferUShort dbus = null;
+        try{
+            dbus = new DataBufferUShort(data, 10, offsets);
+            fail("No IllegalArgumentException");
+        }catch(IllegalArgumentException e){
+            assertTrue(true);
+        }
+    }
 
     public final void testGetDataType(){
         assertEquals(DataBuffer.TYPE_USHORT, db1.getDataType());