Index: modules/nio/src/main/java/java/nio/ByteBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/ByteBuffer.java.orig 2006-03-29 10:26:28.000000000 +0100 +++ modules/nio/src/main/java/java/nio/ByteBuffer.java 2006-04-07 06:22:03.000000000 +0100 @@ -101,9 +101,12 @@ * invalid */ public static ByteBuffer wrap(byte[] array, int start, int len) { - if ((start< 0 ) || (len < 0) || start+ len > array.length) { - throw new IndexOutOfBoundsException(); - } + if (array == null) { + throw new NullPointerException(); + } + if ((start< 0 ) || (len < 0) || start+ len > array.length) { + throw new IndexOutOfBoundsException(); + } ByteBuffer buf = BufferFactory.newByteBuffer(array); buf.position = start; Index: modules/nio/src/main/java/java/nio/CharBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/CharBuffer.java.orig 2006-04-06 21:53:33.000000000 +0100 +++ modules/nio/src/main/java/java/nio/CharBuffer.java 2006-04-07 06:19:34.000000000 +0100 @@ -91,9 +91,12 @@ * invalid */ public static CharBuffer wrap(char[] array, int start, int len) { - if ((start < 0 ) || (len < 0) || start + len > array.length) { - throw new IndexOutOfBoundsException(); - } + if (array == null) { + throw new NullPointerException(); + } + if ((start < 0 ) || (len < 0) || start + len > array.length) { + throw new IndexOutOfBoundsException(); + } CharBuffer buf = BufferFactory.newCharBuffer(array); buf.position = start; Index: modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java =================================================================== --- modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java.orig 2006-03-29 10:26:26.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java 2006-04-07 06:21:09.000000000 +0100 @@ -2193,6 +2193,21 @@ testByteBufferInstanceThoroughly(buf); } + /** + * @tests java.nio.ByteBuffer.wrap(byte[],int,int) + */ + public void testWrappedByteBuffer_null_array() { + // Regression for HARMONY-264 + byte array[] = null; + try { + ByteBuffer.wrap(array, -1, 0); + fail("Should throw Exception"); //$NON-NLS-1$ + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + } + private void testByteBufferInstanceThoroughly(ByteBuffer buf) { assertTrue(buf.capacity() > 240); buf.clear(); Index: modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java =================================================================== --- modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java.orig 2006-04-06 21:53:33.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java 2006-04-07 06:18:32.000000000 +0100 @@ -1232,12 +1232,21 @@ public void testWrapNPE() { // Regression for HARMONY-264 try { - CharBuffer cb = CharBuffer.wrap((CharSequence)null,1,0); + CharBuffer.wrap((CharSequence)null,1,0); fail("CharBuffer.wrap((CharSequence)null,1,0) should throw NullPointerException"); } catch (Exception e) { assertEquals("java.lang.NullPointerException", e.getClass().getName()); } + + char[] array = null; + try { + CharBuffer.wrap(array,-1,0); + fail("CharBuffer.wrap((char[])null,-1,0) should throw NullPointerException"); + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } } } Index: modules/nio/src/main/java/java/nio/DoubleBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/DoubleBuffer.java.orig 2006-04-07 06:23:47.000000000 +0100 +++ modules/nio/src/main/java/java/nio/DoubleBuffer.java 2006-04-07 06:30:08.000000000 +0100 @@ -83,9 +83,12 @@ * invalid */ public static DoubleBuffer wrap(double[] array, int start, int len) { - if (start < 0 || len < 0 || start+ len > array.length) { - throw new IndexOutOfBoundsException(); - } + if (array == null) { + throw new NullPointerException(); + } + if (start < 0 || len < 0 || start+ len > array.length) { + throw new IndexOutOfBoundsException(); + } DoubleBuffer buf = BufferFactory.newDoubleBuffer(array); buf.position = start; Index: modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java =================================================================== --- modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java.orig 2006-04-07 06:23:30.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java 2006-04-07 06:26:07.000000000 +0100 @@ -829,6 +829,21 @@ testDoubleBufferInstanceThoroughly(buf); } + /** + * @tests java.nio.DoubleBuffer.wrap(double[],int,int) + */ + public void testWrappedDoubleBuffer_null_array() { + // Regression for HARMONY-264 + double array[] = null; + try { + DoubleBuffer.wrap(array, -1, 0); + fail("Should throw Exception"); //$NON-NLS-1$ + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + } + public void testByteBufferAsDoubleBuffer() { DoubleBuffer buf = ByteBuffer.allocate(160).asDoubleBuffer(); testDoubleBufferInstanceThoroughly(buf); Index: modules/nio/src/main/java/java/nio/FloatBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/FloatBuffer.java.orig 2006-03-29 10:26:28.000000000 +0100 +++ modules/nio/src/main/java/java/nio/FloatBuffer.java 2006-04-07 06:31:51.000000000 +0100 @@ -82,9 +82,12 @@ * invalid */ public static FloatBuffer wrap(float[] array, int start, int len) { - if (start < 0 || len < 0 || start + len > array.length) { - throw new IndexOutOfBoundsException(); - } + if (array == null) { + throw new NullPointerException(); + } + if (start < 0 || len < 0 || start + len > array.length) { + throw new IndexOutOfBoundsException(); + } FloatBuffer buf = BufferFactory.newFloatBuffer(array); buf.position = start; Index: modules/nio/src/main/java/java/nio/IntBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/IntBuffer.java.orig 2006-03-29 10:26:28.000000000 +0100 +++ modules/nio/src/main/java/java/nio/IntBuffer.java 2006-04-07 06:31:16.000000000 +0100 @@ -85,9 +85,12 @@ * invalid */ public static IntBuffer wrap(int[] array, int start, int len) { - if (start < 0 || len < 0 || len + start > array.length) { - throw new IndexOutOfBoundsException(); - } + if (array == null) { + throw new NullPointerException(); + } + if (start < 0 || len < 0 || len + start > array.length) { + throw new IndexOutOfBoundsException(); + } IntBuffer buf = BufferFactory.newIntBuffer(array); buf.position = start; Index: modules/nio/src/main/java/java/nio/LongBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/LongBuffer.java.orig 2006-03-29 10:26:28.000000000 +0100 +++ modules/nio/src/main/java/java/nio/LongBuffer.java 2006-04-07 06:32:13.000000000 +0100 @@ -86,9 +86,12 @@ * invalid */ public static LongBuffer wrap(long[] array, int start, int len) { - if (start < 0 || len < 0 || len + start > array.length) { - throw new IndexOutOfBoundsException(); - } + if (array == null) { + throw new NullPointerException(); + } + if (start < 0 || len < 0 || len + start > array.length) { + throw new IndexOutOfBoundsException(); + } LongBuffer buf = BufferFactory.newLongBuffer(array); buf.position = start; Index: modules/nio/src/main/java/java/nio/ShortBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/ShortBuffer.java.orig 2006-03-29 10:26:28.000000000 +0100 +++ modules/nio/src/main/java/java/nio/ShortBuffer.java 2006-04-07 06:32:27.000000000 +0100 @@ -86,9 +86,12 @@ * invalid */ public static ShortBuffer wrap(short[] array, int start, int len) { - if (start< 0 || len < 0 || start + len > array.length) { - throw new IndexOutOfBoundsException(); - } + if (array == null) { + throw new NullPointerException(); + } + if (start< 0 || len < 0 || start + len > array.length) { + throw new IndexOutOfBoundsException(); + } ShortBuffer buf = BufferFactory.newShortBuffer(array); buf.position = start; Index: modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java =================================================================== --- modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java.orig 2006-03-29 10:26:26.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java 2006-04-07 06:28:48.000000000 +0100 @@ -806,6 +806,21 @@ testFloatBufferInstanceThoroughly(buf); } + /** + * @tests java.nio.FloatBuffer.wrap(float[],int,int) + */ + public void testWrappedFloatBuffer_null_array() { + // Regression for HARMONY-264 + float array[] = null; + try { + FloatBuffer.wrap(array, -1, 0); + fail("Should throw Exception"); //$NON-NLS-1$ + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + } + public void testByteBufferAsFloatBuffer() { FloatBuffer buf = ByteBuffer.allocate(160).asFloatBuffer(); testFloatBufferInstanceThoroughly(buf); Index: modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java =================================================================== --- modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java.orig 2006-03-29 10:26:26.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java 2006-04-07 06:28:23.000000000 +0100 @@ -806,6 +806,21 @@ testIntBufferInstanceThoroughly(buf); } + /** + * @tests java.nio.IntBuffer.wrap(int[],int,int) + */ + public void testWrappedIntBuffer_null_array() { + // Regression for HARMONY-264 + int array[] = null; + try { + IntBuffer.wrap(array, -1, 0); + fail("Should throw Exception"); //$NON-NLS-1$ + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + } + public void testByteBufferAsIntBuffer() { IntBuffer buf = ByteBuffer.allocate(160).asIntBuffer(); testIntBufferInstanceThoroughly(buf); Index: modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java =================================================================== --- modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java.orig 2006-03-29 10:26:26.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java 2006-04-07 06:28:05.000000000 +0100 @@ -806,6 +806,21 @@ testLongBufferInstanceThoroughly(buf); } + /** + * @tests java.nio.LongBuffer.wrap(long[],int,int) + */ + public void testWrappedLongBuffer_null_array() { + // Regression for HARMONY-264 + long array[] = null; + try { + LongBuffer.wrap(array, -1, 0); + fail("Should throw Exception"); //$NON-NLS-1$ + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + } + public void testByteBufferAsLongBuffer() { LongBuffer buf = ByteBuffer.allocate(160).asLongBuffer(); testLongBufferInstanceThoroughly(buf); Index: modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java =================================================================== --- modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java.orig 2006-03-29 10:26:26.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java 2006-04-07 06:29:12.000000000 +0100 @@ -806,6 +806,21 @@ testShortBufferInstanceThoroughly(buf); } + /** + * @tests java.nio.ShortBuffer.wrap(short[],int,int) + */ + public void testWrappedShortBuffer_null_array() { + // Regression for HARMONY-264 + short array[] = null; + try { + ShortBuffer.wrap(array, -1, 0); + fail("Should throw Exception"); //$NON-NLS-1$ + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + } + public void testByteBufferAsShortBuffer() { ShortBuffer buf = ByteBuffer.allocate(160).asShortBuffer(); testShortBufferInstanceThoroughly(buf);