The snapshot enumeration is a welcomed change. ConcurrentHashMap has legacy Hashtable methods so you can save a little bit by calling namedLoggers.keys() instead of wrapping the key set.
Jason ---------------------------------------- > Date: Thu, 26 Mar 2015 14:32:23 +0100 > From: daniel.fu...@oracle.com > To: david.hol...@oracle.com; core-libs-dev@openjdk.java.net > Subject: Re: RFR: 7113878: LogManager - namedLoggers should be > ConcurrentHashMap instead of Hashtable > > On 26/03/15 13:28, David Holmes wrote: >> Hi Daniel, >> >> On 26/03/2015 10:08 PM, Daniel Fuchs wrote: >>> Please find below a trivial fix for >>> >>> >>> 7113878: LogManager - namedLoggers should be ConcurrentHashMap >>> instead of Hashtable >> >> As you say in the bug report, now that the map is always accessed within >> synchronized code this serves no purpose. The map not only doesn't need >> to be concurrent, it doesn't even need to be thread-safe! So why not >> replace with a simple HashMap? > > You found me out ;-) I should have mentioned it. > The enumeration of keys returned from the map will be iterated > outside of any synchronized block. > ConcurrentHashMap makes this safe. > > best regards, > > -- daniel > > >> >> David >> >>> https://bugs.openjdk.java.net/browse/JDK-7113878 >>> >>> http://cr.openjdk.java.net/~dfuchs/webrev_7113878/webrev.00 >>> >>> best regards, >>> >>> -- daniel >