Index: modules/nio_char/src/test/java/org/apache/harmony/tests/java/nio/charset/CharsetEncoderTest.java =================================================================== --- modules/nio_char/src/test/java/org/apache/harmony/tests/java/nio/charset/CharsetEncoderTest.java (revision 408829) +++ modules/nio_char/src/test/java/org/apache/harmony/tests/java/nio/charset/CharsetEncoderTest.java (working copy) @@ -51,6 +51,15 @@ // expected } } + public void test_ConstructorLjava_nio_charset_CharsetNull() { + // Regression for HARMONY-491 + try { + CharsetEncoder ech=new MockCharsetEncoderForHarmony141(null, 1, 1); + assertNull(ech.charset()); + } catch (NullPointerException e) { + fail("Assert 1: Should not throw NullPointerException"); + } + } /** * Helper for contructor tests Index: modules/nio_char/src/main/java/java/nio/charset/CharsetEncoder.java =================================================================== --- modules/nio_char/src/main/java/java/nio/charset/CharsetEncoder.java (revision 408829) +++ modules/nio_char/src/main/java/java/nio/charset/CharsetEncoder.java (working copy) @@ -202,8 +202,10 @@ status = INIT; malformAction = CodingErrorAction.REPORT; unmapAction = CodingErrorAction.REPORT; - decoder = cs.newDecoder(); - replaceWith(replacement); + if (cs!=null) { + decoder = cs.newDecoder(); + replaceWith(replacement); + } } /*