[ 
https://issues.apache.org/jira/browse/CODEC-55?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533466
 ] 

Qingtian Wang commented on CODEC-55:
------------------------------------

First let me mention again, in the user case where

. The thread-unsafe dependencies/setups are invoked once during the object 
instantiation, and subsequently, only the biz methods (such as encode/decode) 
are invoked during the entire life span of the instantiated object.

It's good enough to have only the biz methods thread safe while others are not, 
as long as the such fact is well documented. That way, there is no need to 
deprecate setter style dependency injection since some might like it that way 
over constructor injection, which is just a style matter.

IMO, just to make matters simple, thread-unsafe biz methods like "encode(String 
in, String charset)" should not even be supported (I don't even know whether 
such methods exist currently). If the user needs a different charset, create a 
different instance just for that charset. Usually the number of charsets an 
application needs is always pre-defineable and a finite amount. Therefore, the 
number is instances needed by the application is also finite as opposed to 
runtime decided, which is good enough in terms of memory concerns. 

And secondly, if we agree that the above mentioned use case is the most common 
use case, and it's well documented as to which methods are thread safe and 
which are not, there is no need for extra work such as having factory methods 
or static wrappers to create an "absolutely thread safe" version of the objects.





> make all "business" method implementations of public API thread safe 
> ---------------------------------------------------------------------
>
>                 Key: CODEC-55
>                 URL: https://issues.apache.org/jira/browse/CODEC-55
>             Project: Commons Codec
>          Issue Type: Wish
>            Reporter: Qingtian Wang
>         Attachments: concurrentCodecs.diff, concurrentQDiff.diff, 
> urlcodec.patch
>
>
> Maybe most of the implementations are already thread safe. Just such that 
> codec can say so in general...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to