Blame guava-jdk8-HashMap-testfix.patch
|
Noa Resare |
c1a8a83 |
diff -ur guava-18.0.vanilla/guava/src/com/google/common/collect/Maps.java guava-18.0/guava/src/com/google/common/collect/Maps.java
|
|
Noa Resare |
c1a8a83 |
--- guava-18.0.vanilla/guava/src/com/google/common/collect/Maps.java 2014-08-25 18:39:22.000000000 +0000
|
|
Noa Resare |
c1a8a83 |
+++ guava-18.0/guava/src/com/google/common/collect/Maps.java 2015-06-03 21:02:12.498000000 +0000
|
|
Noa Resare |
c1a8a83 |
@@ -206,11 +206,15 @@
|
|
Noa Resare |
c1a8a83 |
return expectedSize + 1;
|
|
Noa Resare |
c1a8a83 |
}
|
|
Noa Resare |
c1a8a83 |
if (expectedSize < Ints.MAX_POWER_OF_TWO) {
|
|
Noa Resare |
c1a8a83 |
- return expectedSize + expectedSize / 3;
|
|
Noa Resare |
c1a8a83 |
+ // This is the calculation used in JDK8 to resize when a putAll
|
|
Noa Resare |
c1a8a83 |
+ // happens; it seems to be the most conservative calculation we
|
|
Noa Resare |
c1a8a83 |
+ // can make. 0.75 is the default load factor.
|
|
Noa Resare |
c1a8a83 |
+ return (int) ((float) expectedSize / 0.75F + 1.0F);
|
|
Noa Resare |
c1a8a83 |
}
|
|
Noa Resare |
c1a8a83 |
return Integer.MAX_VALUE; // any large value
|
|
Noa Resare |
c1a8a83 |
}
|
|
Noa Resare |
c1a8a83 |
|
|
Noa Resare |
c1a8a83 |
+
|
|
Noa Resare |
c1a8a83 |
/**
|
|
Noa Resare |
c1a8a83 |
* Creates a mutable {@code HashMap} instance with the same mappings as
|
|
Noa Resare |
c1a8a83 |
* the specified map.
|
|
Noa Resare |
c1a8a83 |
diff -ur guava-18.0.vanilla/guava-tests/test/com/google/common/collect/MapsTest.java guava-18.0/guava-tests/test/com/google/common/collect/MapsTest.java
|
|
Noa Resare |
c1a8a83 |
--- guava-18.0.vanilla/guava-tests/test/com/google/common/collect/MapsTest.java 2014-08-25 18:39:22.000000000 +0000
|
|
Noa Resare |
c1a8a83 |
+++ guava-18.0/guava-tests/test/com/google/common/collect/MapsTest.java 2015-06-03 21:04:15.463000000 +0000
|
|
Noa Resare |
c1a8a83 |
@@ -156,7 +156,8 @@
|
|
Noa Resare |
c1a8a83 |
Field tableField = HashMap.class.getDeclaredField("table");
|
|
Noa Resare |
c1a8a83 |
tableField.setAccessible(true);
|
|
Noa Resare |
c1a8a83 |
Object[] table = (Object[]) tableField.get(hashMap);
|
|
Noa Resare |
c1a8a83 |
- return table.length;
|
|
Noa Resare |
c1a8a83 |
+ // In JDK8, table is set lazily, so it may be null.
|
|
Noa Resare |
c1a8a83 |
+ return table == null ? 0 : table.length;
|
|
Noa Resare |
c1a8a83 |
}
|
|
Noa Resare |
c1a8a83 |
|
|
Noa Resare |
c1a8a83 |
public void testCapacityForLargeSizes() {
|