ok, done for DefaultHTMLCleaner and DefaultObservationManager.

Please all be aware of this and verify the component is thread safe  
when you work on one.

Thanks to Zdenek for suggesting the usage of ConcurrentHashMap.

Thanks
-Vincent

On Oct 1, 2008, at 11:55 AM, Vincent Massol wrote:

>
> On Oct 1, 2008, at 11:32 AM, Zdenek Machac wrote:
>
>> Hi,
>>
>> Vincent Massol napsal(a):
>>> Hi,
>>>
>>> I think we might need to review our singleton components (i.e. all  
>>> of
>>> them ;)) for sync. issues.
>>>
>>> For example take DefaultObservationManager:
>>>
>>>    private Map<String, List<RegisteredListener>> listeners = new
>>> HashMap<String, List<RegisteredListener>>();
>>>
>>> It has for ex a addListener() method.
>>>
>>> Imagine several threads all calling addListener().
>>>
>>> Since HashMap is not synchronized this can cause problems.
>>>
>>> Thus shared objects should all be synchronized or they should only  
>>> be
>>> filled once (as in an initialize method for ex).
>>
>> I prefer more general term "thread safe" then restrictive
>> "synchronized". Some structs are
>> thread safe without synchronization/locking (partly
>> ConcurrentHashMap from JSE 5.0).
>
> yes you're right that's what I meant: "thread safety".
>
> Thanks
> -Vincent
>
>>
>>> WDYT? Do you agree there's a potential bug in the case above?
>>>
>>> Thanks
>>> -Vincent
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to