--- old/src/java.base/share/classes/java/util/Hashtable.java 2019-01-04 10:00:19.778617425 -0800 +++ new/src/java.base/share/classes/java/util/Hashtable.java 2019-01-04 10:00:19.458617689 -0800 @@ -184,10 +184,11 @@ */ public Hashtable(int initialCapacity, float loadFactor) { if (initialCapacity < 0) - throw new IllegalArgumentException("Illegal Capacity: "+ + throw new IllegalArgumentException("Illegal Capacity: " + initialCapacity); - if (loadFactor <= 0 || Float.isNaN(loadFactor)) - throw new IllegalArgumentException("Illegal Load: "+loadFactor); + if (!(loadFactor > 0)) // also checks for NaNs + throw new IllegalArgumentException("Illegal load factor: " + + loadFactor); if (initialCapacity==0) initialCapacity = 1; @@ -1269,8 +1270,9 @@ s.defaultReadObject(); // Validate loadFactor (ignore threshold - it will be re-computed) - if (loadFactor <= 0 || Float.isNaN(loadFactor)) - throw new StreamCorruptedException("Illegal Load: " + loadFactor); + if (!(loadFactor > 0)) // also checks for NaNs + throw new StreamCorruptedException("Illegal load factor: " + + loadFactor); // Read the original length of the array and number of elements int origlength = s.readInt();