Ensure subList and keySet overrides are consistent with List.subList and map.keySet w.r.t. returning @JsNonNull.

Change-Id: Iaaaaba2af2d269b413aa5e1484257fa040c08caa
diff --git a/user/super/com/google/gwt/emul/java/util/AbstractList.java b/user/super/com/google/gwt/emul/java/util/AbstractList.java
index 1455e86..9ec2487 100644
--- a/user/super/com/google/gwt/emul/java/util/AbstractList.java
+++ b/user/super/com/google/gwt/emul/java/util/AbstractList.java
@@ -22,6 +22,8 @@
 import static javaemul.internal.InternalPreconditions.checkPositionIndex;
 import static javaemul.internal.InternalPreconditions.checkState;
 
+import jsinterop.annotations.JsNonNull;
+
 /**
  * Skeletal implementation of the List interface. <a
  * href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/AbstractList.html">[Sun
@@ -281,6 +283,7 @@
   }
 
   @Override
+  @JsNonNull
   public List<E> subList(int fromIndex, int toIndex) {
     return new SubList<E>(this, fromIndex, toIndex);
   }
diff --git a/user/super/com/google/gwt/emul/java/util/AbstractMap.java b/user/super/com/google/gwt/emul/java/util/AbstractMap.java
index 03c0343..e8c317c 100644
--- a/user/super/com/google/gwt/emul/java/util/AbstractMap.java
+++ b/user/super/com/google/gwt/emul/java/util/AbstractMap.java
@@ -17,6 +17,8 @@
 
 import static javaemul.internal.InternalPreconditions.checkNotNull;
 
+import jsinterop.annotations.JsNonNull;
+
 /**
  * Skeletal implementation of the Map interface. <a
  * href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/AbstractMap.html">[Sun
@@ -191,6 +193,7 @@
   }
 
   @Override
+  @JsNonNull
   public Set<K> keySet() {
     return new AbstractSet<K>() {
       @Override
diff --git a/user/super/com/google/gwt/emul/java/util/AbstractNavigableMap.java b/user/super/com/google/gwt/emul/java/util/AbstractNavigableMap.java
index 2e7411c..219af93 100644
--- a/user/super/com/google/gwt/emul/java/util/AbstractNavigableMap.java
+++ b/user/super/com/google/gwt/emul/java/util/AbstractNavigableMap.java
@@ -15,6 +15,8 @@
  */
 package java.util;
 
+import jsinterop.annotations.JsNonNull;
+
 /**
  * Skeletal implementation of a NavigableMap.
  */
@@ -377,6 +379,7 @@
   }
 
   @Override
+  @JsNonNull
   public Set<K> keySet() {
     return navigableKeySet();
   }
diff --git a/user/super/com/google/gwt/emul/java/util/Collections.java b/user/super/com/google/gwt/emul/java/util/Collections.java
index 498b321..8ad6e6b 100644
--- a/user/super/com/google/gwt/emul/java/util/Collections.java
+++ b/user/super/com/google/gwt/emul/java/util/Collections.java
@@ -24,6 +24,8 @@
 import java.util.function.Predicate;
 import java.util.function.UnaryOperator;
 
+import jsinterop.annotations.JsNonNull;
+
 /**
  * Utility methods that operate on collections.
  * See <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html">
@@ -186,6 +188,7 @@
     }
 
     @Override
+    @JsNonNull
     public Set keySet() {
       return EMPTY_SET;
     }
@@ -458,6 +461,7 @@
     }
 
     @Override
+    @JsNonNull
     public List<T> subList(int fromIndex, int toIndex) {
       return new UnmodifiableList<T>(list.subList(fromIndex, toIndex));
     }
@@ -626,6 +630,7 @@
     }
 
     @Override
+    @JsNonNull
     public Set<K> keySet() {
       if (keySet == null) {
         keySet = new UnmodifiableSet<K>(map.keySet());
diff --git a/user/super/com/google/gwt/emul/java/util/Vector.java b/user/super/com/google/gwt/emul/java/util/Vector.java
index 5d510bf..a71b5e3 100644
--- a/user/super/com/google/gwt/emul/java/util/Vector.java
+++ b/user/super/com/google/gwt/emul/java/util/Vector.java
@@ -22,6 +22,8 @@
 import java.util.function.Predicate;
 import java.util.function.UnaryOperator;
 
+import jsinterop.annotations.JsNonNull;
+
 /**
  * To keep performance characteristics in line with Java community expectations,
  * <code>Vector</code> is a wrapper around <code>ArrayList</code>.
@@ -246,6 +248,7 @@
   }
 
   @Override
+  @JsNonNull
   public List<E> subList(int fromIndex, int toIndex) {
     return arrayList.subList(fromIndex, toIndex);
   }