All of the hashing based Map implementations: HashMap, Hashtable, LinkedHashMap, WeakHashMap and ConcurrentHashMap are modified to use an enhanced hashing algorithm for string keys when the capacity of the hash table has ever grown beyond 512 entries. The enhanced hashing implementation uses the murmur3 hashing algorithm along with random hash seeds and index masks. These enhancements mitigate cases where colliding String hash values could result in a performance bottleneck.
Reviewed-by: alanb, forax, dl
Extend techniques developed for ConcurrentLinkedQueue and LinkedTransferQueue to implement a non-blocking concurrent Deque with interior removes.
Reviewed-by: martin, dholmes, chegar
LinkedList of size N creates N+1 instead of N+2 objects. Comparing against null is faster than comparing against sentinel node
Reviewed-by: dl, jjb, forax
6815766: LinkedBlockingQueue's iterator can return null if drainTo(c) executes concurrently
Faster, more correct. Use self-linking trick to avoid gc retention
Reviewed-by: martin, dholmes