You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by nd...@apache.org on 2006/07/03 21:06:15 UTC
svn commit: r418829 - in
/incubator/harmony/enhanced/classlib/trunk/modules/nio/src:
main/java/java/nio/ test/java/org/apache/harmony/tests/java/nio/
Author: ndbeyer
Date: Mon Jul 3 12:06:14 2006
New Revision: 418829
URL: http://svn.apache.org/viewvc?rev=418829&view=rev
Log:
Apply patch for HARMONY-264: java.nio.CharBuffer.wrap NullPointerException behaviour
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ByteBuffer.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/CharBuffer.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/DoubleBuffer.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/FloatBuffer.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/IntBuffer.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/LongBuffer.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ShortBuffer.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ByteBuffer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ByteBuffer.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ByteBuffer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ByteBuffer.java Mon Jul 3 12:06:14 2006
@@ -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;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/CharBuffer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/CharBuffer.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/CharBuffer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/CharBuffer.java Mon Jul 3 12:06:14 2006
@@ -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;
@@ -139,9 +142,11 @@
* invalid
*/
public static CharBuffer wrap(CharSequence chseq, int start, int end) {
- if (start < 0 || end < start || end > chseq.length()) {
- throw new IndexOutOfBoundsException();
- }
+ if (chseq == null)
+ throw new NullPointerException();
+ if (start < 0 || end < start || end > chseq.length()) {
+ throw new IndexOutOfBoundsException();
+ }
CharBuffer result = BufferFactory.newCharBuffer(chseq);
result.position = start;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/DoubleBuffer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/DoubleBuffer.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/DoubleBuffer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/DoubleBuffer.java Mon Jul 3 12:06:14 2006
@@ -82,9 +82,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;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/FloatBuffer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/FloatBuffer.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/FloatBuffer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/FloatBuffer.java Mon Jul 3 12:06:14 2006
@@ -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;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/IntBuffer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/IntBuffer.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/IntBuffer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/IntBuffer.java Mon Jul 3 12:06:14 2006
@@ -84,9 +84,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;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/LongBuffer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/LongBuffer.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/LongBuffer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/LongBuffer.java Mon Jul 3 12:06:14 2006
@@ -85,9 +85,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;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ShortBuffer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ShortBuffer.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ShortBuffer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/java/nio/ShortBuffer.java Mon Jul 3 12:06:14 2006
@@ -85,9 +85,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;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ByteBufferTest.java Mon Jul 3 12:06:14 2006
@@ -1872,6 +1872,19 @@
buf.order(ByteOrder.BIG_ENDIAN);
}
+
+ /**
+ * @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 NPE"); //$NON-NLS-1$
+ } catch (NullPointerException e) {
+ }
+ }
private void loadTestData1(byte array[], int offset, int length) {
for (int i = 0; i < length; i++) {
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java Mon Jul 3 12:06:14 2006
@@ -1008,4 +1008,24 @@
public void testIsReadOnly() {
assertFalse(buf.isReadOnly());
}
+
+ /**
+ * @tests java.nio.CharBuffer.wrap(CharSequence,int,int)
+ */
+ public void testWrapNPE() {
+ // Regression for HARMONY-264
+ try {
+ CharBuffer.wrap((CharSequence)null,1,0);
+ fail("CharBuffer.wrap((CharSequence)null,1,0) should throw NullPointerException");
+ } catch (NullPointerException e) {
+ }
+
+
+ char[] array = null;
+ try {
+ CharBuffer.wrap(array,-1,0);
+ fail("CharBuffer.wrap((char[])null,-1,0) should throw NullPointerException");
+ } catch (NullPointerException e) {
+ }
+ }
}
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/DoubleBufferTest.java Mon Jul 3 12:06:14 2006
@@ -812,6 +812,19 @@
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 NPE"); //$NON-NLS-1$
+ } catch (NullPointerException e) {
+ }
+ }
+
public void testByteBufferAsDoubleBuffer() {
DoubleBuffer buf = ByteBuffer.allocate(160).asDoubleBuffer();
testDoubleBufferInstanceThoroughly(buf);
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/FloatBufferTest.java Mon Jul 3 12:06:14 2006
@@ -789,6 +789,19 @@
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 NPE"); //$NON-NLS-1$
+ } catch (NullPointerException e) {
+ }
+ }
+
public void testByteBufferAsFloatBuffer() {
FloatBuffer buf = ByteBuffer.allocate(160).asFloatBuffer();
testFloatBufferInstanceThoroughly(buf);
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/IntBufferTest.java Mon Jul 3 12:06:14 2006
@@ -789,6 +789,19 @@
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 NPE"); //$NON-NLS-1$
+ } catch (NullPointerException e) {
+ }
+ }
+
public void testByteBufferAsIntBuffer() {
IntBuffer buf = ByteBuffer.allocate(160).asIntBuffer();
testIntBufferInstanceThoroughly(buf);
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/LongBufferTest.java Mon Jul 3 12:06:14 2006
@@ -789,6 +789,19 @@
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 NPE"); //$NON-NLS-1$
+ } catch (NullPointerException e) {
+ }
+ }
+
public void testByteBufferAsLongBuffer() {
LongBuffer buf = ByteBuffer.allocate(160).asLongBuffer();
testLongBufferInstanceThoroughly(buf);
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java?rev=418829&r1=418828&r2=418829&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/java/nio/ShortBufferTest.java Mon Jul 3 12:06:14 2006
@@ -789,6 +789,19 @@
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 NPE"); //$NON-NLS-1$
+ } catch (NullPointerException e) {
+ }
+ }
+
public void testByteBufferAsShortBuffer() {
ShortBuffer buf = ByteBuffer.allocate(160).asShortBuffer();
testShortBufferInstanceThoroughly(buf);