Index: modules/nio/src/main/java/java/nio/CharBuffer.java =================================================================== --- modules/nio/src/main/java/java/nio/CharBuffer.java.orig 2006-03-28 15:47:24.000000000 +0100 +++ modules/nio/src/main/java/java/nio/CharBuffer.java 2006-03-28 15:51:25.000000000 +0100 @@ -139,9 +139,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; 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-03-28 15:47:24.000000000 +0100 +++ modules/nio/src/test/java/org/apache/harmony/tests/java/nio/CharBufferTest.java 2006-03-28 19:43:53.000000000 +0100 @@ -1225,4 +1225,19 @@ } catch (IllegalArgumentException e) { } } + + /** + * @tests java.nio.CharBuffer.wrap(CharSequence,int,int) + */ + public void testWrapNPE() { + // Regression for HARMONY-264 + try { + CharBuffer cb = 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()); + } + } + }