Assuming that iteration in someOtherMethod does not
change the map, ie, that the only updates are in
someMethod then it seems thread safe to me.

When someMethod is called it any ongoing iterations
will still be safe because the iterator is refering
to the old map that was copied, the insert is into
a new map.

I think struts has som utility classes FastXXX (FastHashMap)
that works like this in "fast" mode, when it is assumed
that updates are very infrequent.

Regards
/Mikael

>I have seen this usage construct in a few places in the code and 
it makes
>no sense to me:
>
>class X
>{
>    HashMap clients = new HashMap();
>
>    public void someMethod()
>    {
>       synchronized(clients)
>        {
>            HashMap m = new HashMap(clients);
>            m.put(dc, cq);
>            clients=m;
>       }
>        ...
>    }
>    public void someOtherMethod()
>    {
>        Iterator i = clients.keySet().iterator();
>        while( i.hasNext() )
>        {
>            ...
>        }
>    }
>}
>
>The unsynchronized clients HashMap is synchronized and copied when
>modified and accessed without synchronization in other contexts.
This is
>not thread safe for the accesses and makes for very expensive updates.
>Why isn't the HashMap simply synchronized and used without copying?
>
>xxxxxxxxxxxxxxxxxxxxxxxx
>Scott Stark
>Chief Technology Officer
>JBoss Group, LLC
>xxxxxxxxxxxxxxxxxxxxxxxx
>
>-------------------------------------------------------
>This SF.NET email is sponsored by: FREE  SSL Guide from Thawte
>are you planning your Web Server Security? Click here to get a FREE
>Thawte SSL guide and find the answers to all your  SSL security issues.
>http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
>_______________________________________________
>Jboss-development mailing list
>[EMAIL PROTECTED]
>https://lists.sourceforge.net/lists/listinfo/jboss-development
>




===================================================================
Skickat genom Swedish Connection WebMail
===================================================================




-------------------------------------------------------
This SF.NET email is sponsored by: FREE  SSL Guide from Thawte
are you planning your Web Server Security? Click here to get a FREE
Thawte SSL guide and find the answers to all your  SSL security issues.
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to