Index: tests/functional/src/test/functional/org/apache/harmony/test/func/api/java/io/share/OutputStreamWriter/OutputStreamWriterTestShared.java =================================================================== --- tests/functional/src/test/functional/org/apache/harmony/test/func/api/java/io/share/OutputStreamWriter/OutputStreamWriterTestShared.java (revision 552461) +++ tests/functional/src/test/functional/org/apache/harmony/test/func/api/java/io/share/OutputStreamWriter/OutputStreamWriterTestShared.java (working copy) @@ -192,31 +192,42 @@ } public Result testConstructorCharset() throws IOException { - try { - MultiThreadRunner.waitAtBarrier(); - for (Iterator iter = Charset.availableCharsets().entrySet() - .iterator(); iter.hasNext();) { - Map.Entry entry = (Map.Entry) iter.next(); - new OutputStreamWriter(new ByteArrayOutputStream(), - (String) entry.getKey()); - new OutputStreamWriter(new ByteArrayOutputStream(), - (Charset) entry.getValue()); + boolean failed = false; + String failMsg = "Ctor failed with parameter(s):\n"; + MultiThreadRunner.waitAtBarrier(); + for (Iterator iter = Charset.availableCharsets().entrySet() + .iterator(); iter.hasNext();) { + Map.Entry entry = (Map.Entry) iter.next(); + Charset cs = (Charset) entry.getValue(); + String cs_name = (String) entry.getKey(); + if (cs.canEncode()) { + try { + new OutputStreamWriter(new ByteArrayOutputStream(), cs_name); + } catch (Throwable e) { + e.printStackTrace(); + failed = true; + failMsg += ("String " + cs_name + "\n"); } - for (int i = 0; i < Utils.MINIMAL_CHARSETS.length; ++i) { - new OutputStreamWriter(new ByteArrayOutputStream(), - Utils.MINIMAL_CHARSETS[i]); - } try { - new OutputStreamWriter(new ByteArrayOutputStream(), - "this\nis\na\nname\r\tof\0anonexistentcharset"); - } catch (UnsupportedEncodingException e) { + new OutputStreamWriter(new ByteArrayOutputStream(), cs); + } catch (Throwable e) { + e.printStackTrace(); + failed = true; + failMsg += ("Charset " + cs.toString() + "\n"); } - } catch (Throwable e) { - e.printStackTrace(); - return failed("bad luck"); + } } + for (int i = 0; i < Utils.MINIMAL_CHARSETS.length; ++i) { + new OutputStreamWriter(new ByteArrayOutputStream(), + Utils.MINIMAL_CHARSETS[i]); + } + try { + new OutputStreamWriter(new ByteArrayOutputStream(), + "this\nis\na\nname\r\tof\0anonexistentcharset"); + } catch (UnsupportedEncodingException e) { + } - return passed(); + return failed ? failed(failMsg) : passed(); } public Result testGetEncoding() throws IOException {