--- old/src/share/classes/java/util/LinkedHashMap.java 2012-05-24 12:20:59.000000000 -0700 +++ new/src/share/classes/java/util/LinkedHashMap.java 2012-05-24 12:20:59.000000000 -0700 @@ -236,6 +236,7 @@ * readObject) before any entries are inserted into the map. Initializes * the chain. */ + @Override void init() { header = new Entry<>(-1, null, null, null); header.before = header.after = header; @@ -246,6 +247,7 @@ * by superclass resize. It is overridden for performance, as it is * faster to iterate using our linked list. */ + @Override @SuppressWarnings("unchecked") void transfer(HashMap.Entry[] newTable) { int newCapacity = newTable.length; @@ -421,15 +423,12 @@ * removes the eldest entry if appropriate. */ void addEntry(int hash, K key, V value, int bucketIndex) { - createEntry(hash, key, value, bucketIndex); - - // Remove eldest entry if instructed, else grow capacity if appropriate + super.addEntry(hash, key, value, bucketIndex); + + // Remove eldest entry if instructed Entry eldest = header.after; if (removeEldestEntry(eldest)) { removeEntryForKey(eldest.key); - } else { - if (size >= threshold) - resize(2 * table.length); } }