Merge
diff --git a/.hgtags-top-repo b/.hgtags-top-repo
index dad9de6..2b4ff20 100644
--- a/.hgtags-top-repo
+++ b/.hgtags-top-repo
@@ -311,3 +311,5 @@
 0dccc4aca1859b1ff7dca9db214f7f38c4ddbbce jdk8u20-b21
 6c1fb59fa5d7095d93a023553a949f873f324c6b jdk8u20-b22
 b14daf2459c5430dfe5d435483d6f424cff09584 jdk8u20-b23
+1710841b0229403f4af85eac8b68ea5065a26c81 jdk8u20-b24
+1710841b0229403f4af85eac8b68ea5065a26c81 jdk8u20-b25
diff --git a/corba/.hgtags b/corba/.hgtags
index 32df196..25ed5d3 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -309,3 +309,5 @@
 7d1e0f0b63f1d66c77924d8b2a1accdf8f7480db jdk8u20-b21
 7677bf14d105ca23ab045f5041ceb19ee88b86c6 jdk8u20-b22
 919405d7316dfcbddee5ad8dd08905916df88e04 jdk8u20-b23
+34c930eaa6b591621afde05ca2e24571c91cdc9b jdk8u20-b24
+34c930eaa6b591621afde05ca2e24571c91cdc9b jdk8u20-b25
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index b5ebe0d..9e915f0 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -497,4 +497,6 @@
 f7429096a202cab5c36a0f20dea33c554026010f jdk8u20-b22
 7c56530b11496459e66cb9ea933035002311672c hs25.20-b22
 f09d1f6a401e25a54dad44bb7bea482e47558af5 jdk8u20-b23
+42ddd0bbcb6630fe463ec9bc1893c838d5edff1b jdk8u20-b24
 00cf2b6f51b9560b01030e8f4c28c466f0b21fe3 hs25.20-b23
+19408d5fd31c25ce60c43dd33e92b96e8df4a4ea jdk8u20-b25
diff --git a/jaxp/.hgtags b/jaxp/.hgtags
index aba59fa..65ce842 100644
--- a/jaxp/.hgtags
+++ b/jaxp/.hgtags
@@ -311,3 +311,5 @@
 3a1bba8076da4e54882123e98e219eab1c31ccef jdk8u20-b21
 bf115689d89bb82dc1efbe0348657e993715e850 jdk8u20-b22
 d6ded60cfdc53861ae7d1a010f95b5036d610e80 jdk8u20-b23
+dd09d8b9edefb5684941941e5d9b35c84ee066f3 jdk8u20-b24
+dd09d8b9edefb5684941941e5d9b35c84ee066f3 jdk8u20-b25
diff --git a/jaxws/.hgtags b/jaxws/.hgtags
index e88935a..ca1be9d 100644
--- a/jaxws/.hgtags
+++ b/jaxws/.hgtags
@@ -309,3 +309,5 @@
 31d43d250c836c13fcc87025837783788c5cd0de jdk8u20-b21
 2d360fb1b2b89c90133231f9ed5f823997b70c19 jdk8u20-b22
 f3bf1b270fea8b17aa2846f962f7514b6f772ab4 jdk8u20-b23
+1277c0d492fd9253f1ea2730eb160953397bd939 jdk8u20-b24
+1277c0d492fd9253f1ea2730eb160953397bd939 jdk8u20-b25
diff --git a/jdk/.hgtags b/jdk/.hgtags
index 2110c4b..355a03d 100644
--- a/jdk/.hgtags
+++ b/jdk/.hgtags
@@ -309,3 +309,5 @@
 693025bbc45d683676fa78bb76201b665e0d8f2d jdk8u20-b21
 0c2393744b29175de5204140d4dfbf12ca3d364f jdk8u20-b22
 be30cb2a3088f2b7b334b499f7eddbd5312312a7 jdk8u20-b23
+dfb9f24d56b51e5a2ca26e77fc69a2464d51a4d3 jdk8u20-b24
+dfb9f24d56b51e5a2ca26e77fc69a2464d51a4d3 jdk8u20-b25
diff --git a/jdk/src/share/classes/java/util/Collections.java b/jdk/src/share/classes/java/util/Collections.java
index f236077..3e1d72f 100644
--- a/jdk/src/share/classes/java/util/Collections.java
+++ b/jdk/src/share/classes/java/util/Collections.java
@@ -3497,6 +3497,7 @@
          */
         @Override
         public void replaceAll(UnaryOperator<E> operator) {
+            Objects.requireNonNull(operator);
             list.replaceAll(e -> typeCheck(operator.apply(e)));
         }
 
diff --git a/jdk/test/java/util/Collections/CheckedListReplaceAll.java b/jdk/test/java/util/Collections/CheckedListReplaceAll.java
index 8ac05d0..19042db 100644
--- a/jdk/test/java/util/Collections/CheckedListReplaceAll.java
+++ b/jdk/test/java/util/Collections/CheckedListReplaceAll.java
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug     8047795
+ * @bug     8047795 8053938
  * @summary Ensure that replaceAll operator cannot add bad elements
  * @author  Mike Duigou
  */
@@ -46,5 +46,16 @@
             thwarted.printStackTrace(System.out);
             System.out.println("Curses! Foiled again!");
         }
+
+        unwrapped = Arrays.asList(new Object[]{});  // Empty list
+        wrapped = Collections.checkedList(unwrapped, Integer.class);
+        try {
+            wrapped.replaceAll((UnaryOperator)null);
+            System.out.printf("Bwahaha! I have defeated you! %s\n", wrapped);
+            throw new RuntimeException("NPE not thrown when passed a null operator");
+        } catch (NullPointerException thwarted) {
+            thwarted.printStackTrace(System.out);
+            System.out.println("Curses! Foiled again!");
+        }
     }
 }
diff --git a/langtools/.hgtags b/langtools/.hgtags
index b8b8538..59e50e2 100644
--- a/langtools/.hgtags
+++ b/langtools/.hgtags
@@ -309,3 +309,5 @@
 7de1481c6cd88b42d815ae65e2d5b1cd918e11d1 jdk8u20-b21
 61fb0d8b169164ad5db15b6c497489cb30efb9c6 jdk8u20-b22
 5c1d6da1445aa3a2e5cf6101c70e79bfbe2745a5 jdk8u20-b23
+9239118487dfb47ee850d2cc9b10a0a2e510da3c jdk8u20-b24
+9239118487dfb47ee850d2cc9b10a0a2e510da3c jdk8u20-b25
diff --git a/nashorn/.hgtags b/nashorn/.hgtags
index 8f3445c..8d2def7 100644
--- a/nashorn/.hgtags
+++ b/nashorn/.hgtags
@@ -297,3 +297,5 @@
 f2925491b61b22ac42f8c30ee9c6723ffa401a4c jdk8u20-b21
 5332595fe7ba2a1fc5564cc2689f378b04a56eb4 jdk8u20-b22
 ad36f9454ce38d78be39fc819902e1223765ee5e jdk8u20-b23
+d3da140e179343011017669a6dbfcc52b0e56f52 jdk8u20-b24
+d3da140e179343011017669a6dbfcc52b0e56f52 jdk8u20-b25