♬ ♪ "Who am I to disagree..." ♫ This should be a P2 and fixed for Java 8.
Mike On Dec 9 2013, at 02:51 , Doug Lea <d...@cs.oswego.edu> wrote: > On 12/09/2013 05:11 AM, Paul Sandoz wrote: >> Hi Roman, >> >> On Dec 8, 2013, at 10:29 PM, Roman Leventov <leven...@ya.ru> wrote: >>> Especially getDefault(). Doesn't this violate principle of least >>> astonishment? Details and proof: >>> http://stackoverflow.com/questions/20440136/why-doesnt-new-map-methods-generate-entry-accesses-on-linkedhashmap >>> >> >> Thanks. I believe that all the new (default) Map methods but getOrDefault >> behave correctly. So i think it is a bug, we need to add something like the >> following to LinkedHashMap: >> > > I agree. Please do this. > > -Doug > > >> public V getOrDefault(Object key, V defaultValue) { >> Node<K,V> e; >> if ((e = getNode(hash(key), key)) == null) >> return defaultValue; >> if (accessOrder) >> afterNodeAccess(e); >> return e.value; >> } >> >> and also update the documentation to clarify (via the implementation >> specification of the default methods it can be inferred what the behaviour >> is, but that ain't obvious). >> >> I have logged this bug: >> >> https://bugs.openjdk.java.net/browse/JDK-8029795 >> >> Paul. >> >> >> >