diff --git a/user/test/com/google/gwt/emultest/java8/util/OptionalDoubleTest.java b/user/test/com/google/gwt/emultest/java8/util/OptionalDoubleTest.java
index 880106f..12d97d3 100644
--- a/user/test/com/google/gwt/emultest/java8/util/OptionalDoubleTest.java
+++ b/user/test/com/google/gwt/emultest/java8/util/OptionalDoubleTest.java
@@ -75,7 +75,9 @@
     try {
       present.ifPresent(null);
       fail("Non-Empty Optional must throw NullPointerException if consumer is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -99,7 +101,9 @@
     try {
       empty.orElseGet(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -117,14 +121,18 @@
     try {
       empty.orElseThrow(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
     try {
       empty.orElseThrow(() -> null);
       fail("Empty Optional must throw NullPointerException if supplier returns null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
diff --git a/user/test/com/google/gwt/emultest/java8/util/OptionalIntTest.java b/user/test/com/google/gwt/emultest/java8/util/OptionalIntTest.java
index dd6c229..8c2779d 100644
--- a/user/test/com/google/gwt/emultest/java8/util/OptionalIntTest.java
+++ b/user/test/com/google/gwt/emultest/java8/util/OptionalIntTest.java
@@ -75,7 +75,9 @@
     try {
       present.ifPresent(null);
       fail("Non-Empty Optional must throw NullPointerException if consumer is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -99,7 +101,9 @@
     try {
       empty.orElseGet(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -117,14 +121,18 @@
     try {
       empty.orElseThrow(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
     try {
       empty.orElseThrow(() -> null);
       fail("Empty Optional must throw NullPointerException if supplier returns null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
diff --git a/user/test/com/google/gwt/emultest/java8/util/OptionalLongTest.java b/user/test/com/google/gwt/emultest/java8/util/OptionalLongTest.java
index 5a4aac6..940b844 100644
--- a/user/test/com/google/gwt/emultest/java8/util/OptionalLongTest.java
+++ b/user/test/com/google/gwt/emultest/java8/util/OptionalLongTest.java
@@ -75,7 +75,9 @@
     try {
       present.ifPresent(null);
       fail("Non-Empty Optional must throw NullPointerException if consumer is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -99,7 +101,9 @@
     try {
       empty.orElseGet(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -117,14 +121,18 @@
     try {
       empty.orElseThrow(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
     try {
       empty.orElseThrow(() -> null);
       fail("Empty Optional must throw NullPointerException if supplier returns null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
diff --git a/user/test/com/google/gwt/emultest/java8/util/OptionalTest.java b/user/test/com/google/gwt/emultest/java8/util/OptionalTest.java
index c292cc6..77ce11b 100644
--- a/user/test/com/google/gwt/emultest/java8/util/OptionalTest.java
+++ b/user/test/com/google/gwt/emultest/java8/util/OptionalTest.java
@@ -81,7 +81,9 @@
     try {
       present.ifPresent(null);
       fail("Non-Empty Optional must throw NullPointerException if consumer is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -199,7 +201,9 @@
     try {
       empty.orElseGet(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
@@ -217,14 +221,18 @@
     try {
       empty.orElseThrow(null);
       fail("Empty Optional must throw NullPointerException if supplier is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
     try {
       empty.<RuntimeException>orElseThrow(() -> null);
       fail("Empty Optional must throw NullPointerException if supplier returns null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
 
diff --git a/user/test/com/google/gwt/emultest/java8/util/PrimitiveIteratorTest.java b/user/test/com/google/gwt/emultest/java8/util/PrimitiveIteratorTest.java
index 8a8e0dc..5bca7fc 100644
--- a/user/test/com/google/gwt/emultest/java8/util/PrimitiveIteratorTest.java
+++ b/user/test/com/google/gwt/emultest/java8/util/PrimitiveIteratorTest.java
@@ -53,14 +53,20 @@
       it = createTestPrimitiveDoubleIterator();
       it.forEachRemaining((Consumer<Double>) null);
       fail();
-    } catch (JavaScriptException | NullPointerException expected) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
+      // expected
     }
 
     try {
       it = createTestPrimitiveDoubleIterator();
       it.forEachRemaining((DoubleConsumer) null);
       fail();
-    } catch (JavaScriptException | NullPointerException expected) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
+      // expected
     }
   }
 
@@ -81,14 +87,20 @@
       it = createTestPrimitiveIntIterator();
       it.forEachRemaining((Consumer<Integer>) null);
       fail();
-    } catch (JavaScriptException | NullPointerException expected) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
+      // expected
     }
 
     try {
       it = createTestPrimitiveIntIterator();
       it.forEachRemaining((IntConsumer) null);
       fail();
-    } catch (JavaScriptException | NullPointerException expected) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
+      // expected
     }
   }
 
@@ -109,14 +121,20 @@
       it = createTestPrimitiveLongIterator();
       it.forEachRemaining((Consumer<Long>) null);
       fail();
-    } catch (JavaScriptException | NullPointerException expected) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
+      // expected
     }
 
     try {
       it = createTestPrimitiveLongIterator();
       it.forEachRemaining((LongConsumer) null);
       fail();
-    } catch (JavaScriptException | NullPointerException expected) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
+      // expected
     }
   }
 
diff --git a/user/test/com/google/gwt/emultest/java8/util/StringJoinerTest.java b/user/test/com/google/gwt/emultest/java8/util/StringJoinerTest.java
index b94879a..33950cc 100644
--- a/user/test/com/google/gwt/emultest/java8/util/StringJoinerTest.java
+++ b/user/test/com/google/gwt/emultest/java8/util/StringJoinerTest.java
@@ -74,7 +74,9 @@
     try {
       joiner.merge(null);
       fail("NullPointerException must be thrown if other joiner is null");
-    } catch (NullPointerException | JavaScriptException e) {
+    } catch (NullPointerException e) {
+      // expected
+    } catch (JavaScriptException e) {
       // expected
     }
   }
