mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (VYSPER-342) Access to UTF-8 encoding and decoding is not thread safe
Date Mon, 17 Jun 2013 12:17:20 GMT

    [ https://issues.apache.org/jira/browse/VYSPER-342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13685488#comment-13685488

Emmanuel Lecharny commented on VYSPER-342:

When you have a synchronized block, one single thread can access it. Assuming that the code
is CPU intensive, you can quickly make it a bottleneck in your application (This is in theory,
it's not necessarily the case here).

Using a ThreadLocal just remove this constraint : you will have one instance in each thread,
with no sync at all (ThreadLocal storage is done in a Map, not synchronized).

This is a really good pattern to use in most of the case, especially when the operation is
costly. If it's about incrementing a counter, of course, that would be dumb...

Makes me think that most of the SimpleDateFormat instances should also be stored in ThreadLocal...
> Access to UTF-8 encoding and decoding is not thread safe
> --------------------------------------------------------
>                 Key: VYSPER-342
>                 URL: https://issues.apache.org/jira/browse/VYSPER-342
>             Project: VYSPER
>          Issue Type: Bug
>          Components: core protocol
>    Affects Versions: 0.8
>            Reporter: Mikko Multanen
>         Attachments: fix_charset_util.patch
> Bug was found when testing server with several simultaneous clients connecting at the
same time. CharsetDecoder would throw IllegalStateException and Stanza XML parsing would fail.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message