You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "George Harley (JIRA)" <ji...@apache.org> on 2006/06/26 13:39:30 UTC

[jira] Assigned: (HARMONY-665) [classlib][nio]Charset.encode()/decode() should be more safer for multi thread using

     [ http://issues.apache.org/jira/browse/HARMONY-665?page=all ]

George Harley reassigned HARMONY-665:
-------------------------------------

    Assign To: George Harley

> [classlib][nio]Charset.encode()/decode() should be more safer for multi thread using
> ------------------------------------------------------------------------------------
>
>          Key: HARMONY-665
>          URL: http://issues.apache.org/jira/browse/HARMONY-665
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Paulex Yang
>     Assignee: George Harley
>  Attachments: Harmony-665.diff
>
> As discussion on the mailing list, current Harmony codes may throw exception for the scenario below:
>          for (int i = 0; i < THREAD_NUM; i++) {
>               thread[i] = new Thread() {
>                   public void run() {
>                      sink.write(ByteBuffer.wrap("bytes"
>                                         .getBytes(ISO8859_1)));
>                     }
>         }
> String.getBytes() actually invokes Charset.encode(), while spec requires Charset.encode() to be thread-safe. Current Harmony implementation of Charset.encode() holds lock on this Charset instance, but doesn't synchronize on the system wide cached CharsetEncoder, so it is not safe for multi Charset instances in multi threads to encode() concurrently. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira