The failing test does this (amongst other things):

        final int THREAD_NUM = 20;
        Thread[] thread = new Thread[THREAD_NUM];
        for (int i = 0; i < THREAD_NUM; i++) {
            thread[i] = new Thread() {
                public void run() {
                    try {
                        sink
                                .write(ByteBuffer.wrap("bytes"
*****                                   .getBytes(ISO8859_1)));
                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    }
                }
            };
        }
        for (int i = 0; i < THREAD_NUM; i++) {
            thread[i].start();
        }

If String#getBytes(String) is not thread safe then we are doomed ;-)

How about:


@@ -104,14 +104,13 @@
        public void test_write_LByteBuffer_mutliThread() throws IOException,
                InterruptedException {
         final int THREAD_NUM = 20;
+        final byte[] strbytes = "bytes".getBytes(ISO8859_1);
         Thread[] thread = new Thread[THREAD_NUM];
         for (int i = 0; i < THREAD_NUM; i++) {
             thread[i] = new Thread() {
                 public void run() {
                     try {
-                        sink
-                                .write(ByteBuffer.wrap("bytes"
-                                        .getBytes(ISO8859_1)));
+                        sink.write(ByteBuffer.wrap(strbytes));
                     } catch (IOException e) {
                         throw new RuntimeException(e);
                     }


Regards,
Tim


Apache Harmony Build wrote:
<snip>
>      [exec]     [junit] java.lang.IllegalStateException
>      [exec]     [junit]       at 
> java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:480)
>      [exec]     [junit]       at 
> java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:347)
>      [exec]     [junit]       at 
> java.nio.charset.Charset.encode(Charset.java:639)
>      [exec]     [junit]       at java.lang.String.getBytes(String.java:838)
>      [exec]     [junit]       at 
> org.apache.harmony.tests.java.nio.channels.SinkChannelTest$1.run(SinkChannelTest.java:112)
>      [exec]     [junit] Tests FAILED


-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to