Snap for 11164065 from 760ead8ff40dd106162c96aa891bfd4064948ad1 to mainline-wifi-release

Change-Id: I519973b1f7d35a3aacd30d0023a856f9888a2116
diff --git a/api/current.txt b/api/current.txt
index f1f7f21..d459f72 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -3095,8 +3095,10 @@
     method @Nullable public Object[] getSigners();
     method @NonNull public String getSimpleName();
     method @Nullable public Class<? super T> getSuperclass();
+    method @NonNull public String getTypeName();
     method @NonNull public java.lang.reflect.TypeVariable<java.lang.Class<T>>[] getTypeParameters();
     method public boolean isAnnotation();
+    method public boolean isAnnotationPresent(@NonNull Class<? extends java.lang.annotation.Annotation>);
     method public boolean isAnonymousClass();
     method public boolean isArray();
     method public boolean isAssignableFrom(@NonNull Class<?>);
@@ -3695,6 +3697,7 @@
     method public String getSpecificationTitle();
     method public String getSpecificationVendor();
     method public String getSpecificationVersion();
+    method public boolean isAnnotationPresent(Class<? extends java.lang.annotation.Annotation>);
     method public boolean isCompatibleWith(String) throws java.lang.NumberFormatException;
     method public boolean isSealed();
     method public boolean isSealed(java.net.URL);
@@ -4046,9 +4049,11 @@
     ctor public String(@NonNull StringBuffer);
     ctor public String(@NonNull StringBuilder);
     method public char charAt(int);
+    method @NonNull public java.util.stream.IntStream chars();
     method public int codePointAt(int);
     method public int codePointBefore(int);
     method public int codePointCount(int, int);
+    method @NonNull public java.util.stream.IntStream codePoints();
     method public int compareTo(@NonNull String);
     method public int compareToIgnoreCase(@NonNull String);
     method @NonNull public String concat(@NonNull String);
@@ -4145,9 +4150,11 @@
     method @NonNull public StringBuffer appendCodePoint(int);
     method public int capacity();
     method public char charAt(int);
+    method @NonNull public java.util.stream.IntStream chars();
     method public int codePointAt(int);
     method public int codePointBefore(int);
     method public int codePointCount(int, int);
+    method @NonNull public java.util.stream.IntStream codePoints();
     method public int compareTo(@NonNull StringBuffer);
     method @NonNull public StringBuffer delete(int, int);
     method @NonNull public StringBuffer deleteCharAt(int);
@@ -4203,9 +4210,11 @@
     method @NonNull public StringBuilder appendCodePoint(int);
     method public int capacity();
     method public char charAt(int);
+    method @NonNull public java.util.stream.IntStream chars();
     method public int codePointAt(int);
     method public int codePointBefore(int);
     method public int codePointCount(int, int);
+    method @NonNull public java.util.stream.IntStream codePoints();
     method public int compareTo(@NonNull StringBuilder);
     method @NonNull public StringBuilder delete(int, int);
     method @NonNull public StringBuilder deleteCharAt(int);
@@ -4564,8 +4573,8 @@
     method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
     method public java.lang.invoke.MethodHandle asVarargsCollector(Class<?>);
     method public java.lang.invoke.MethodHandle bindTo(Object);
-    method public final Object invoke(java.lang.Object...) throws java.lang.Throwable;
-    method public final Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
+    method public final native Object invoke(java.lang.Object...) throws java.lang.Throwable;
+    method public final native Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
     method public Object invokeWithArguments(java.lang.Object...) throws java.lang.Throwable;
     method public Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
     method public boolean isVarargsCollector();
@@ -4738,45 +4747,45 @@
   public abstract class VarHandle {
     method public final java.lang.invoke.MethodType accessModeType(java.lang.invoke.VarHandle.AccessMode);
     method public static void acquireFence();
-    method public final Object compareAndExchange(java.lang.Object...);
-    method public final Object compareAndExchangeAcquire(java.lang.Object...);
-    method public final Object compareAndExchangeRelease(java.lang.Object...);
-    method public final boolean compareAndSet(java.lang.Object...);
+    method public final native Object compareAndExchange(java.lang.Object...);
+    method public final native Object compareAndExchangeAcquire(java.lang.Object...);
+    method public final native Object compareAndExchangeRelease(java.lang.Object...);
+    method public final native boolean compareAndSet(java.lang.Object...);
     method public final java.util.List<java.lang.Class<?>> coordinateTypes();
     method public static void fullFence();
-    method public final Object get(java.lang.Object...);
-    method public final Object getAcquire(java.lang.Object...);
-    method public final Object getAndAdd(java.lang.Object...);
-    method public final Object getAndAddAcquire(java.lang.Object...);
-    method public final Object getAndAddRelease(java.lang.Object...);
-    method public final Object getAndBitwiseAnd(java.lang.Object...);
-    method public final Object getAndBitwiseAndAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseAndRelease(java.lang.Object...);
-    method public final Object getAndBitwiseOr(java.lang.Object...);
-    method public final Object getAndBitwiseOrAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseOrRelease(java.lang.Object...);
-    method public final Object getAndBitwiseXor(java.lang.Object...);
-    method public final Object getAndBitwiseXorAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseXorRelease(java.lang.Object...);
-    method public final Object getAndSet(java.lang.Object...);
-    method public final Object getAndSetAcquire(java.lang.Object...);
-    method public final Object getAndSetRelease(java.lang.Object...);
-    method public final Object getOpaque(java.lang.Object...);
-    method public final Object getVolatile(java.lang.Object...);
+    method public final native Object get(java.lang.Object...);
+    method public final native Object getAcquire(java.lang.Object...);
+    method public final native Object getAndAdd(java.lang.Object...);
+    method public final native Object getAndAddAcquire(java.lang.Object...);
+    method public final native Object getAndAddRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseAnd(java.lang.Object...);
+    method public final native Object getAndBitwiseAndAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseAndRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseOr(java.lang.Object...);
+    method public final native Object getAndBitwiseOrAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseOrRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseXor(java.lang.Object...);
+    method public final native Object getAndBitwiseXorAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseXorRelease(java.lang.Object...);
+    method public final native Object getAndSet(java.lang.Object...);
+    method public final native Object getAndSetAcquire(java.lang.Object...);
+    method public final native Object getAndSetRelease(java.lang.Object...);
+    method public final native Object getOpaque(java.lang.Object...);
+    method public final native Object getVolatile(java.lang.Object...);
     method public final boolean isAccessModeSupported(java.lang.invoke.VarHandle.AccessMode);
     method public static void loadLoadFence();
     method public static void releaseFence();
-    method public final void set(java.lang.Object...);
-    method public final void setOpaque(java.lang.Object...);
-    method public final void setRelease(java.lang.Object...);
-    method public final void setVolatile(java.lang.Object...);
+    method public final native void set(java.lang.Object...);
+    method public final native void setOpaque(java.lang.Object...);
+    method public final native void setRelease(java.lang.Object...);
+    method public final native void setVolatile(java.lang.Object...);
     method public static void storeStoreFence();
     method public final java.lang.invoke.MethodHandle toMethodHandle(java.lang.invoke.VarHandle.AccessMode);
     method public final Class<?> varType();
-    method public final boolean weakCompareAndSet(java.lang.Object...);
-    method public final boolean weakCompareAndSetAcquire(java.lang.Object...);
-    method public final boolean weakCompareAndSetPlain(java.lang.Object...);
-    method public final boolean weakCompareAndSetRelease(java.lang.Object...);
+    method public final native boolean weakCompareAndSet(java.lang.Object...);
+    method public final native boolean weakCompareAndSetAcquire(java.lang.Object...);
+    method public final native boolean weakCompareAndSetPlain(java.lang.Object...);
+    method public final native boolean weakCompareAndSetRelease(java.lang.Object...);
   }
 
   public enum VarHandle.AccessMode {
@@ -4880,8 +4889,12 @@
     ctor protected AccessibleObject();
     method @Nullable public <T extends java.lang.annotation.Annotation> T getAnnotation(@NonNull Class<T>);
     method @NonNull public java.lang.annotation.Annotation[] getAnnotations();
+    method public <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(@NonNull Class<T>);
+    method @Nullable public <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(@NonNull Class<T>);
     method @NonNull public java.lang.annotation.Annotation[] getDeclaredAnnotations();
+    method public <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(@NonNull Class<T>);
     method public boolean isAccessible();
+    method public boolean isAnnotationPresent(@NonNull Class<? extends java.lang.annotation.Annotation>);
     method public static void setAccessible(java.lang.reflect.AccessibleObject[], boolean) throws java.lang.SecurityException;
     method public void setAccessible(boolean) throws java.lang.SecurityException;
   }
@@ -5073,7 +5086,10 @@
   public final class Parameter implements java.lang.reflect.AnnotatedElement {
     method @Nullable public <T extends java.lang.annotation.Annotation> T getAnnotation(@NonNull Class<T>);
     method @NonNull public java.lang.annotation.Annotation[] getAnnotations();
+    method public <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(@NonNull Class<T>);
+    method @Nullable public <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(@NonNull Class<T>);
     method @NonNull public java.lang.annotation.Annotation[] getDeclaredAnnotations();
+    method public <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(@NonNull Class<T>);
     method @NonNull public java.lang.reflect.Executable getDeclaringExecutable();
     method public int getModifiers();
     method @NonNull public String getName();
@@ -6292,6 +6308,7 @@
     method public final int arrayOffset();
     method public abstract java.nio.CharBuffer asReadOnlyBuffer();
     method public final char charAt(int);
+    method public java.util.stream.IntStream chars();
     method public abstract java.nio.CharBuffer compact();
     method public int compareTo(java.nio.CharBuffer);
     method public abstract java.nio.CharBuffer duplicate();
@@ -8076,14 +8093,17 @@
   public static class KeyStore.PasswordProtection implements javax.security.auth.Destroyable java.security.KeyStore.ProtectionParameter {
     ctor public KeyStore.PasswordProtection(char[]);
     ctor public KeyStore.PasswordProtection(char[], String, java.security.spec.AlgorithmParameterSpec);
+    method public void destroy() throws javax.security.auth.DestroyFailedException;
     method public char[] getPassword();
     method public String getProtectionAlgorithm();
     method public java.security.spec.AlgorithmParameterSpec getProtectionParameters();
+    method public boolean isDestroyed();
   }
 
   public static final class KeyStore.PrivateKeyEntry implements java.security.KeyStore.Entry {
     ctor public KeyStore.PrivateKeyEntry(java.security.PrivateKey, java.security.cert.Certificate[]);
     ctor public KeyStore.PrivateKeyEntry(java.security.PrivateKey, java.security.cert.Certificate[], java.util.Set<java.security.KeyStore.Entry.Attribute>);
+    method public java.util.Set<java.security.KeyStore.Entry.Attribute> getAttributes();
     method public java.security.cert.Certificate getCertificate();
     method public java.security.cert.Certificate[] getCertificateChain();
     method public java.security.PrivateKey getPrivateKey();
@@ -8095,12 +8115,14 @@
   public static final class KeyStore.SecretKeyEntry implements java.security.KeyStore.Entry {
     ctor public KeyStore.SecretKeyEntry(javax.crypto.SecretKey);
     ctor public KeyStore.SecretKeyEntry(javax.crypto.SecretKey, java.util.Set<java.security.KeyStore.Entry.Attribute>);
+    method public java.util.Set<java.security.KeyStore.Entry.Attribute> getAttributes();
     method public javax.crypto.SecretKey getSecretKey();
   }
 
   public static final class KeyStore.TrustedCertificateEntry implements java.security.KeyStore.Entry {
     ctor public KeyStore.TrustedCertificateEntry(java.security.cert.Certificate);
     ctor public KeyStore.TrustedCertificateEntry(java.security.cert.Certificate, java.util.Set<java.security.KeyStore.Entry.Attribute>);
+    method public java.util.Set<java.security.KeyStore.Entry.Attribute> getAttributes();
     method public java.security.cert.Certificate getTrustedCertificate();
   }
 
@@ -11184,6 +11206,7 @@
     ctor protected Clock();
     method public static java.time.Clock fixed(java.time.Instant, java.time.ZoneId);
     method public abstract java.time.ZoneId getZone();
+    method public long millis();
     method public static java.time.Clock offset(java.time.Clock, java.time.Duration);
     method public static java.time.Clock system(java.time.ZoneId);
     method public static java.time.Clock systemDefaultZone();
@@ -11285,6 +11308,7 @@
     method public java.time.ZonedDateTime atZone(java.time.ZoneId);
     method public int compareTo(java.time.Instant);
     method public static java.time.Instant from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public long getEpochSecond();
     method public long getLong(java.time.temporal.TemporalField);
     method public int getNano();
@@ -11308,6 +11332,8 @@
     method public java.time.Instant plusMillis(long);
     method public java.time.Instant plusNanos(long);
     method public java.time.Instant plusSeconds(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public long toEpochMilli();
     method public java.time.Instant truncatedTo(java.time.temporal.TemporalUnit);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
@@ -11329,6 +11355,7 @@
   }
 
   public final class LocalDate implements java.time.chrono.ChronoLocalDate java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+    method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.LocalDateTime atStartOfDay();
     method public java.time.ZonedDateTime atStartOfDay(java.time.ZoneId);
     method public java.time.LocalDateTime atTime(java.time.LocalTime);
@@ -11336,22 +11363,31 @@
     method public java.time.LocalDateTime atTime(int, int, int);
     method public java.time.LocalDateTime atTime(int, int, int, int);
     method public java.time.OffsetDateTime atTime(java.time.OffsetTime);
+    method public int compareTo(java.time.chrono.ChronoLocalDate);
     method public java.util.stream.Stream<java.time.LocalDate> datesUntil(java.time.LocalDate);
     method public java.util.stream.Stream<java.time.LocalDate> datesUntil(java.time.LocalDate, java.time.Period);
     method public boolean equals(Object);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.LocalDate from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public java.time.chrono.IsoChronology getChronology();
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
     method public int getDayOfYear();
+    method public java.time.chrono.Era getEra();
     method public long getLong(java.time.temporal.TemporalField);
     method public java.time.Month getMonth();
     method public int getMonthValue();
     method public int getYear();
     method public int hashCode();
+    method public boolean isAfter(java.time.chrono.ChronoLocalDate);
+    method public boolean isBefore(java.time.chrono.ChronoLocalDate);
+    method public boolean isEqual(java.time.chrono.ChronoLocalDate);
+    method public boolean isLeapYear();
     method public boolean isSupported(java.time.temporal.TemporalField);
     method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public int lengthOfMonth();
+    method public int lengthOfYear();
     method public java.time.LocalDate minus(java.time.temporal.TemporalAmount);
     method public java.time.LocalDate minus(long, java.time.temporal.TemporalUnit);
     method public java.time.LocalDate minusDays(long);
@@ -11374,6 +11410,9 @@
     method public java.time.LocalDate plusMonths(long);
     method public java.time.LocalDate plusWeeks(long);
     method public java.time.LocalDate plusYears(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
+    method public long toEpochDay();
     method public long toEpochSecond(java.time.LocalTime, java.time.ZoneOffset);
     method public String toString();
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
@@ -11390,10 +11429,14 @@
   }
 
   public final class LocalDateTime implements java.time.chrono.ChronoLocalDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+    method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.OffsetDateTime atOffset(java.time.ZoneOffset);
     method public java.time.ZonedDateTime atZone(java.time.ZoneId);
+    method public int compareTo(java.time.chrono.ChronoLocalDateTime<?>);
     method public boolean equals(Object);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.LocalDateTime from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
     method public int getDayOfYear();
@@ -11406,6 +11449,9 @@
     method public int getSecond();
     method public int getYear();
     method public int hashCode();
+    method public boolean isAfter(java.time.chrono.ChronoLocalDateTime<?>);
+    method public boolean isBefore(java.time.chrono.ChronoLocalDateTime<?>);
+    method public boolean isEqual(java.time.chrono.ChronoLocalDateTime<?>);
     method public boolean isSupported(java.time.temporal.TemporalField);
     method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime minus(java.time.temporal.TemporalAmount);
@@ -11442,6 +11488,8 @@
     method public java.time.LocalDateTime plusSeconds(long);
     method public java.time.LocalDateTime plusWeeks(long);
     method public java.time.LocalDateTime plusYears(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public java.time.LocalDate toLocalDate();
     method public java.time.LocalTime toLocalTime();
     method public String toString();
@@ -11468,6 +11516,7 @@
     method public int compareTo(java.time.LocalTime);
     method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.LocalTime from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public int getHour();
     method public long getLong(java.time.temporal.TemporalField);
     method public int getMinute();
@@ -11500,6 +11549,8 @@
     method public java.time.LocalTime plusMinutes(long);
     method public java.time.LocalTime plusNanos(long);
     method public java.time.LocalTime plusSeconds(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public long toEpochSecond(java.time.LocalDate, java.time.ZoneOffset);
     method public long toNanoOfDay();
     method public int toSecondOfDay();
@@ -11552,6 +11603,7 @@
     method public int compareTo(java.time.MonthDay);
     method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.MonthDay from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public int getDayOfMonth();
     method public long getLong(java.time.temporal.TemporalField);
     method public java.time.Month getMonth();
@@ -11567,6 +11619,8 @@
     method public static java.time.MonthDay of(int, int);
     method public static java.time.MonthDay parse(CharSequence);
     method public static java.time.MonthDay parse(CharSequence, java.time.format.DateTimeFormatter);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public java.time.MonthDay with(java.time.Month);
     method public java.time.MonthDay withDayOfMonth(int);
     method public java.time.MonthDay withMonth(int);
@@ -11579,6 +11633,7 @@
     method public int compareTo(java.time.OffsetDateTime);
     method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.OffsetDateTime from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
     method public int getDayOfYear();
@@ -11625,6 +11680,8 @@
     method public java.time.OffsetDateTime plusSeconds(long);
     method public java.time.OffsetDateTime plusWeeks(long);
     method public java.time.OffsetDateTime plusYears(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public static java.util.Comparator<java.time.OffsetDateTime> timeLineOrder();
     method public long toEpochSecond();
     method public java.time.Instant toInstant();
@@ -11657,6 +11714,7 @@
     method public int compareTo(java.time.OffsetTime);
     method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.OffsetTime from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public int getHour();
     method public long getLong(java.time.temporal.TemporalField);
     method public int getMinute();
@@ -11688,6 +11746,8 @@
     method public java.time.OffsetTime plusMinutes(long);
     method public java.time.OffsetTime plusNanos(long);
     method public java.time.OffsetTime plusSeconds(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public long toEpochSecond(java.time.LocalDate);
     method public java.time.LocalTime toLocalTime();
     method public java.time.OffsetTime truncatedTo(java.time.temporal.TemporalUnit);
@@ -11716,6 +11776,8 @@
     method public java.util.List<java.time.temporal.TemporalUnit> getUnits();
     method public int getYears();
     method public int hashCode();
+    method public boolean isNegative();
+    method public boolean isZero();
     method public java.time.Period minus(java.time.temporal.TemporalAmount);
     method public java.time.Period minusDays(long);
     method public java.time.Period minusMonths(long);
@@ -11751,6 +11813,7 @@
     method public int compareTo(java.time.Year);
     method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.Year from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public long getLong(java.time.temporal.TemporalField);
     method public int getValue();
     method public boolean isAfter(java.time.Year);
@@ -11773,6 +11836,8 @@
     method public java.time.Year plus(java.time.temporal.TemporalAmount);
     method public java.time.Year plus(long, java.time.temporal.TemporalUnit);
     method public java.time.Year plusYears(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.Year with(java.time.temporal.TemporalAdjuster);
     method public java.time.Year with(java.time.temporal.TemporalField, long);
@@ -11787,6 +11852,7 @@
     method public int compareTo(java.time.YearMonth);
     method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.YearMonth from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public long getLong(java.time.temporal.TemporalField);
     method public java.time.Month getMonth();
     method public int getMonthValue();
@@ -11814,6 +11880,8 @@
     method public java.time.YearMonth plus(long, java.time.temporal.TemporalUnit);
     method public java.time.YearMonth plusMonths(long);
     method public java.time.YearMonth plusYears(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.YearMonth with(java.time.temporal.TemporalAdjuster);
     method public java.time.YearMonth with(java.time.temporal.TemporalField, long);
@@ -11839,6 +11907,7 @@
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public int compareTo(java.time.ZoneOffset);
     method public static java.time.ZoneOffset from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public String getId();
     method public long getLong(java.time.temporal.TemporalField);
     method public java.time.zone.ZoneRules getRules();
@@ -11849,6 +11918,8 @@
     method public static java.time.ZoneOffset ofHoursMinutes(int, int);
     method public static java.time.ZoneOffset ofHoursMinutesSeconds(int, int, int);
     method public static java.time.ZoneOffset ofTotalSeconds(int);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     field public static final java.time.ZoneOffset MAX;
     field public static final java.time.ZoneOffset MIN;
     field public static final java.time.ZoneOffset UTC;
@@ -11856,7 +11927,9 @@
 
   public final class ZonedDateTime implements java.time.chrono.ChronoZonedDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal {
     method public boolean equals(Object);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.ZonedDateTime from(java.time.temporal.TemporalAccessor);
+    method public int get(java.time.temporal.TemporalField);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
     method public int getDayOfYear();
@@ -11905,8 +11978,11 @@
     method public java.time.ZonedDateTime plusSeconds(long);
     method public java.time.ZonedDateTime plusWeeks(long);
     method public java.time.ZonedDateTime plusYears(long);
+    method public <R> R query(java.time.temporal.TemporalQuery<R>);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public java.time.LocalDate toLocalDate();
     method public java.time.LocalDateTime toLocalDateTime();
+    method public java.time.LocalTime toLocalTime();
     method public java.time.OffsetDateTime toOffsetDateTime();
     method public String toString();
     method public java.time.ZonedDateTime truncatedTo(java.time.temporal.TemporalUnit);
@@ -12119,7 +12195,9 @@
     method public java.time.chrono.HijrahChronology getChronology();
     method public java.time.chrono.HijrahEra getEra();
     method public long getLong(java.time.temporal.TemporalField);
+    method public boolean isLeapYear();
     method public int lengthOfMonth();
+    method public int lengthOfYear();
     method public java.time.chrono.HijrahDate minus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.HijrahDate minus(long, java.time.temporal.TemporalUnit);
     method public static java.time.chrono.HijrahDate now();
@@ -12128,6 +12206,8 @@
     method public static java.time.chrono.HijrahDate of(int, int, int);
     method public java.time.chrono.HijrahDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.HijrahDate plus(long, java.time.temporal.TemporalUnit);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
+    method public long toEpochDay();
     method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
@@ -12152,6 +12232,7 @@
     method public java.time.LocalDate dateNow(java.time.Clock);
     method public java.time.LocalDate dateYearDay(java.time.chrono.Era, int, int);
     method public java.time.LocalDate dateYearDay(int, int);
+    method public long epochSecond(int, int, int, int, int, int, java.time.ZoneOffset);
     method public java.time.chrono.IsoEra eraOf(int);
     method public java.util.List<java.time.chrono.Era> eras();
     method public String getCalendarType();
@@ -12204,7 +12285,9 @@
     method public java.time.chrono.JapaneseChronology getChronology();
     method public java.time.chrono.JapaneseEra getEra();
     method public long getLong(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalField);
     method public int lengthOfMonth();
+    method public int lengthOfYear();
     method public java.time.chrono.JapaneseDate minus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.JapaneseDate minus(long, java.time.temporal.TemporalUnit);
     method public static java.time.chrono.JapaneseDate now();
@@ -12214,6 +12297,8 @@
     method public static java.time.chrono.JapaneseDate of(int, int, int);
     method public java.time.chrono.JapaneseDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.JapaneseDate plus(long, java.time.temporal.TemporalUnit);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
+    method public long toEpochDay();
     method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
@@ -12222,8 +12307,10 @@
   }
 
   public final class JapaneseEra implements java.time.chrono.Era java.io.Serializable {
+    method public String getDisplayName(java.time.format.TextStyle, java.util.Locale);
     method public int getValue();
     method public static java.time.chrono.JapaneseEra of(int);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
     method public static java.time.chrono.JapaneseEra valueOf(String);
     method public static java.time.chrono.JapaneseEra[] values();
     field public static final java.time.chrono.JapaneseEra HEISEI;
@@ -12272,6 +12359,8 @@
     method public static java.time.chrono.MinguoDate of(int, int, int);
     method public java.time.chrono.MinguoDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.MinguoDate plus(long, java.time.temporal.TemporalUnit);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
+    method public long toEpochDay();
     method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
@@ -12325,6 +12414,8 @@
     method public static java.time.chrono.ThaiBuddhistDate of(int, int, int);
     method public java.time.chrono.ThaiBuddhistDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.ThaiBuddhistDate plus(long, java.time.temporal.TemporalUnit);
+    method public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
+    method public long toEpochDay();
     method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
@@ -12884,9 +12975,11 @@
     method public E remove();
     method public E removeFirst();
     method public boolean removeFirstOccurrence(@Nullable Object);
+    method public boolean removeIf(@NonNull java.util.function.Predicate<? super E>);
     method public E removeLast();
     method public boolean removeLastOccurrence(@Nullable Object);
     method public int size();
+    method @NonNull public java.util.Spliterator<E> spliterator();
   }
 
   public class ArrayList<E> extends java.util.AbstractList<E> implements java.lang.Cloneable java.util.List<E> java.util.RandomAccess java.io.Serializable {
@@ -12897,7 +12990,11 @@
     method public void ensureCapacity(int);
     method public void forEach(@NonNull java.util.function.Consumer<? super E>);
     method public E get(int);
+    method public boolean removeIf(@NonNull java.util.function.Predicate<? super E>);
+    method public void replaceAll(@NonNull java.util.function.UnaryOperator<E>);
     method public int size();
+    method public void sort(@Nullable java.util.Comparator<? super E>);
+    method @NonNull public java.util.Spliterator<E> spliterator();
     method public void trimToSize();
   }
 
@@ -13541,6 +13638,7 @@
     ctor public EnumMap(java.util.Map<K,? extends V>);
     method public java.util.EnumMap<K,V> clone();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public V put(K, V);
   }
 
   public abstract class EnumSet<E extends java.lang.Enum<E>> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.io.Serializable {
@@ -13663,7 +13761,18 @@
     ctor public HashMap();
     ctor public HashMap(@NonNull java.util.Map<? extends K,? extends V>);
     method @NonNull public Object clone();
+    method @Nullable public V compute(K, @NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
+    method @Nullable public V computeIfAbsent(K, @NonNull java.util.function.Function<? super K,? extends V>);
+    method @Nullable public V computeIfPresent(K, @NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
     method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public void forEach(@NonNull java.util.function.BiConsumer<? super K,? super V>);
+    method @Nullable public V getOrDefault(@Nullable Object, @Nullable V);
+    method @Nullable public V merge(K, @NonNull V, @NonNull java.util.function.BiFunction<? super V,? super V,? extends V>);
+    method @Nullable public V putIfAbsent(K, V);
+    method public boolean remove(@Nullable Object, @Nullable Object);
+    method public boolean replace(K, @Nullable V, V);
+    method @Nullable public V replace(K, V);
+    method public void replaceAll(@NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
   }
 
   public class HashSet<E> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.io.Serializable java.util.Set<E> {
@@ -13674,6 +13783,7 @@
     method @NonNull public Object clone();
     method @NonNull public java.util.Iterator<E> iterator();
     method public int size();
+    method @NonNull public java.util.Spliterator<E> spliterator();
   }
 
   public class Hashtable<K, V> extends java.util.Dictionary<K,V> implements java.lang.Cloneable java.util.Map<K,V> java.io.Serializable {
@@ -13683,21 +13793,32 @@
     ctor public Hashtable(java.util.Map<? extends K,? extends V>);
     method public void clear();
     method public Object clone();
+    method public V compute(K, java.util.function.BiFunction<? super K,? super V,? extends V>);
+    method public V computeIfAbsent(K, java.util.function.Function<? super K,? extends V>);
+    method public V computeIfPresent(K, java.util.function.BiFunction<? super K,? super V,? extends V>);
     method public boolean contains(Object);
     method public boolean containsKey(Object);
     method public boolean containsValue(Object);
     method public java.util.Enumeration<V> elements();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
     method public boolean equals(Object);
+    method public void forEach(java.util.function.BiConsumer<? super K,? super V>);
     method public V get(Object);
+    method public V getOrDefault(Object, V);
     method public int hashCode();
     method public boolean isEmpty();
     method public java.util.Set<K> keySet();
     method public java.util.Enumeration<K> keys();
+    method public V merge(K, V, java.util.function.BiFunction<? super V,? super V,? extends V>);
     method public V put(K, V);
     method public void putAll(java.util.Map<? extends K,? extends V>);
+    method public V putIfAbsent(K, V);
     method protected void rehash();
     method public V remove(Object);
+    method public boolean remove(Object, Object);
+    method public boolean replace(K, V, V);
+    method public V replace(K, V);
+    method public void replaceAll(java.util.function.BiFunction<? super K,? super V,? extends V>);
     method public int size();
     method public java.util.Collection<V> values();
   }
@@ -13744,6 +13865,8 @@
     ctor public IdentityHashMap(java.util.Map<? extends K,? extends V>);
     method public Object clone();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public void forEach(java.util.function.BiConsumer<? super K,? super V>);
+    method public void replaceAll(java.util.function.BiFunction<? super K,? super V,? extends V>);
   }
 
   public class IllegalFormatCodePointException extends java.util.IllegalFormatException {
@@ -13855,6 +13978,7 @@
     method public E removeLast();
     method public boolean removeLastOccurrence(@Nullable Object);
     method public int size();
+    method @NonNull public java.util.Spliterator<E> spliterator();
   }
 
   public interface List<E> extends java.util.Collection<E> {
@@ -14289,6 +14413,7 @@
     method public boolean offer(E);
     method public E peek();
     method public E poll();
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public int size();
     method public final java.util.Spliterator<E> spliterator();
   }
@@ -14469,6 +14594,7 @@
     method public short nextShort();
     method public short nextShort(int);
     method public int radix();
+    method public void remove();
     method public java.util.Scanner reset();
     method public java.util.Scanner skip(java.util.regex.Pattern);
     method public java.util.Scanner skip(String);
@@ -14785,6 +14911,7 @@
     method public K firstKey();
     method @Nullable public java.util.Map.Entry<K,V> floorEntry(K);
     method @Nullable public K floorKey(K);
+    method public void forEach(@NonNull java.util.function.BiConsumer<? super K,? super V>);
     method @NonNull public java.util.NavigableMap<K,V> headMap(K, boolean);
     method @NonNull public java.util.SortedMap<K,V> headMap(K);
     method @Nullable public java.util.Map.Entry<K,V> higherEntry(K);
@@ -14796,6 +14923,9 @@
     method @NonNull public java.util.NavigableSet<K> navigableKeySet();
     method @Nullable public java.util.Map.Entry<K,V> pollFirstEntry();
     method @Nullable public java.util.Map.Entry<K,V> pollLastEntry();
+    method public boolean replace(K, @Nullable V, V);
+    method public V replace(K, V);
+    method public void replaceAll(@NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
     method @NonNull public java.util.NavigableMap<K,V> subMap(K, boolean, K, boolean);
     method @NonNull public java.util.SortedMap<K,V> subMap(K, K);
     method @NonNull public java.util.NavigableMap<K,V> tailMap(K, boolean);
@@ -14823,6 +14953,7 @@
     method public E pollFirst();
     method public E pollLast();
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public java.util.NavigableSet<E> subSet(E, boolean, E, boolean);
     method public java.util.SortedSet<E> subSet(E, E);
     method public java.util.NavigableSet<E> tailSet(E, boolean);
@@ -14876,9 +15007,13 @@
     method public void removeAllElements();
     method public boolean removeElement(@Nullable Object);
     method public void removeElementAt(int);
+    method public boolean removeIf(@NonNull java.util.function.Predicate<? super E>);
+    method public void replaceAll(@NonNull java.util.function.UnaryOperator<E>);
     method public void setElementAt(E, int);
     method public void setSize(int);
     method public int size();
+    method public void sort(@Nullable java.util.Comparator<? super E>);
+    method @NonNull public java.util.Spliterator<E> spliterator();
     method public void trimToSize();
     field protected int capacityIncrement;
     field protected int elementCount;
@@ -14891,6 +15026,8 @@
     ctor public WeakHashMap();
     ctor public WeakHashMap(@NonNull java.util.Map<? extends K,? extends V>);
     method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public void forEach(@NonNull java.util.function.BiConsumer<? super K,? super V>);
+    method public void replaceAll(@NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
   }
 
 }
@@ -14925,7 +15062,9 @@
     method public E poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public void put(E) throws java.lang.InterruptedException;
     method public int remainingCapacity();
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public E take() throws java.lang.InterruptedException;
   }
 
@@ -15124,9 +15263,13 @@
     ctor public ConcurrentHashMap(@NonNull java.util.Map<? extends K,? extends V>);
     ctor public ConcurrentHashMap(int, float);
     ctor public ConcurrentHashMap(int, float, int);
+    method @Nullable public V compute(@NonNull K, @NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
+    method @Nullable public V computeIfAbsent(@NonNull K, @NonNull java.util.function.Function<? super K,? extends V>);
+    method @Nullable public V computeIfPresent(@NonNull K, @NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
     method public boolean contains(@NonNull Object);
     method @NonNull public java.util.Enumeration<V> elements();
     method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public void forEach(@NonNull java.util.function.BiConsumer<? super K,? super V>);
     method public void forEach(long, @NonNull java.util.function.BiConsumer<? super K,? super V>);
     method public <U> void forEach(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>, @NonNull java.util.function.Consumer<? super U>);
     method public void forEachEntry(long, @NonNull java.util.function.Consumer<? super java.util.Map.Entry<K,V>>);
@@ -15135,9 +15278,11 @@
     method public <U> void forEachKey(long, @NonNull java.util.function.Function<? super K,? extends U>, @NonNull java.util.function.Consumer<? super U>);
     method public void forEachValue(long, @NonNull java.util.function.Consumer<? super V>);
     method public <U> void forEachValue(long, @NonNull java.util.function.Function<? super V,? extends U>, @NonNull java.util.function.Consumer<? super U>);
+    method @Nullable public V getOrDefault(@NonNull Object, @Nullable V);
     method @NonNull public java.util.concurrent.ConcurrentHashMap.KeySetView<K,V> keySet(@NonNull V);
     method @NonNull public java.util.Enumeration<K> keys();
     method public long mappingCount();
+    method @Nullable public V merge(@NonNull K, @NonNull V, @NonNull java.util.function.BiFunction<? super V,? super V,? extends V>);
     method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet();
     method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet(int);
     method @Nullable public V putIfAbsent(@NonNull K, @NonNull V);
@@ -15163,6 +15308,7 @@
     method public boolean remove(@NonNull Object, @Nullable Object);
     method public boolean replace(@NonNull K, @NonNull V, @NonNull V);
     method @Nullable public V replace(@NonNull K, @NonNull V);
+    method public void replaceAll(@NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
     method @Nullable public <U> U search(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>);
     method @Nullable public <U> U searchEntries(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>);
     method @Nullable public <U> U searchKeys(long, @NonNull java.util.function.Function<? super K,? extends U>);
@@ -15217,9 +15363,11 @@
     method public E remove();
     method public E removeFirst();
     method public boolean removeFirstOccurrence(Object);
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public E removeLast();
     method public boolean removeLastOccurrence(Object);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
   }
 
   public class ConcurrentLinkedQueue<E> extends java.util.AbstractQueue<E> implements java.util.Queue<E> java.io.Serializable {
@@ -15230,7 +15378,9 @@
     method public boolean offer(E);
     method public E peek();
     method public E poll();
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
   }
 
   public interface ConcurrentMap<K, V> extends java.util.Map<K,V> {
@@ -15260,6 +15410,9 @@
     method public K ceilingKey(K);
     method public java.util.concurrent.ConcurrentSkipListMap<K,V> clone();
     method public java.util.Comparator<? super K> comparator();
+    method public V compute(K, java.util.function.BiFunction<? super K,? super V,? extends V>);
+    method public V computeIfAbsent(K, java.util.function.Function<? super K,? extends V>);
+    method public V computeIfPresent(K, java.util.function.BiFunction<? super K,? super V,? extends V>);
     method public java.util.NavigableSet<K> descendingKeySet();
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> descendingMap();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
@@ -15267,6 +15420,8 @@
     method public K firstKey();
     method public java.util.Map.Entry<K,V> floorEntry(K);
     method public K floorKey(K);
+    method public void forEach(java.util.function.BiConsumer<? super K,? super V>);
+    method public V getOrDefault(Object, V);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> headMap(K, boolean);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> headMap(K);
     method public java.util.Map.Entry<K,V> higherEntry(K);
@@ -15276,6 +15431,7 @@
     method public K lastKey();
     method public java.util.Map.Entry<K,V> lowerEntry(K);
     method public K lowerKey(K);
+    method public V merge(K, V, java.util.function.BiFunction<? super V,? super V,? extends V>);
     method public java.util.NavigableSet<K> navigableKeySet();
     method public java.util.Map.Entry<K,V> pollFirstEntry();
     method public java.util.Map.Entry<K,V> pollLastEntry();
@@ -15283,6 +15439,7 @@
     method public boolean remove(Object, Object);
     method public boolean replace(K, V, V);
     method public V replace(K, V);
+    method public void replaceAll(java.util.function.BiFunction<? super K,? super V,? extends V>);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, boolean, K, boolean);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, K);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> tailMap(K, boolean);
@@ -15310,6 +15467,7 @@
     method public E pollFirst();
     method public E pollLast();
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public java.util.NavigableSet<E> subSet(E, boolean, E, boolean);
     method public java.util.NavigableSet<E> subSet(E, E);
     method public java.util.NavigableSet<E> tailSet(E, boolean);
@@ -15345,9 +15503,13 @@
     method public E remove(int);
     method public boolean remove(@Nullable Object);
     method public boolean removeAll(@NonNull java.util.Collection<?>);
+    method public boolean removeIf(@NonNull java.util.function.Predicate<? super E>);
+    method public void replaceAll(@NonNull java.util.function.UnaryOperator<E>);
     method public boolean retainAll(@NonNull java.util.Collection<?>);
     method public E set(int, E);
     method public int size();
+    method public void sort(@Nullable java.util.Comparator<? super E>);
+    method @NonNull public java.util.Spliterator<E> spliterator();
     method @NonNull public java.util.List<E> subList(int, int);
     method @NonNull public Object[] toArray();
     method @NonNull public <T> T[] toArray(@NonNull T[]);
@@ -15358,7 +15520,9 @@
     ctor public CopyOnWriteArraySet(java.util.Collection<? extends E>);
     method public void forEach(java.util.function.Consumer<? super E>);
     method public java.util.Iterator<E> iterator();
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
   }
 
   public class CountDownLatch {
@@ -15409,6 +15573,7 @@
   public class DelayQueue<E extends java.util.concurrent.Delayed> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> {
     ctor public DelayQueue();
     ctor public DelayQueue(java.util.Collection<? extends E>);
+    method public boolean add(E);
     method public int drainTo(java.util.Collection<? super E>);
     method public int drainTo(java.util.Collection<? super E>, int);
     method public java.util.Iterator<E> iterator();
@@ -15675,9 +15840,11 @@
     method public int remainingCapacity();
     method public E removeFirst();
     method public boolean removeFirstOccurrence(Object);
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public E removeLast();
     method public boolean removeLastOccurrence(Object);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public E take() throws java.lang.InterruptedException;
     method public E takeFirst() throws java.lang.InterruptedException;
     method public E takeLast() throws java.lang.InterruptedException;
@@ -15698,7 +15865,9 @@
     method public E poll();
     method public void put(E) throws java.lang.InterruptedException;
     method public int remainingCapacity();
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public E take() throws java.lang.InterruptedException;
   }
 
@@ -15718,7 +15887,9 @@
     method public E poll();
     method public void put(E);
     method public int remainingCapacity();
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public E take() throws java.lang.InterruptedException;
     method public void transfer(E) throws java.lang.InterruptedException;
     method public boolean tryTransfer(E);
@@ -15766,7 +15937,9 @@
     method public E poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public void put(E);
     method public int remainingCapacity();
+    method public boolean removeIf(java.util.function.Predicate<? super E>);
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public E take() throws java.lang.InterruptedException;
   }
 
@@ -15892,6 +16065,7 @@
     method public void put(E) throws java.lang.InterruptedException;
     method public int remainingCapacity();
     method public int size();
+    method public java.util.Spliterator<E> spliterator();
     method public E take() throws java.lang.InterruptedException;
   }
 
@@ -17892,6 +18066,8 @@
     method public void reset();
     method public void update(int);
     method public void update(byte[], int, int);
+    method public void update(byte[]);
+    method public void update(java.nio.ByteBuffer);
   }
 
   public class CRC32 implements java.util.zip.Checksum {
@@ -17900,6 +18076,8 @@
     method public void reset();
     method public void update(int);
     method public void update(byte[], int, int);
+    method public void update(byte[]);
+    method public void update(java.nio.ByteBuffer);
   }
 
   public final class CRC32C implements java.util.zip.Checksum {
@@ -17908,6 +18086,7 @@
     method public void reset();
     method public void update(int);
     method public void update(byte[], int, int);
+    method public void update(java.nio.ByteBuffer);
   }
 
   public class CheckedInputStream extends java.io.FilterInputStream {
diff --git a/luni/src/test/java/libcore/java/net/URLConnectionTest.java b/luni/src/test/java/libcore/java/net/URLConnectionTest.java
index 7a2d74a..7b00d1d 100644
--- a/luni/src/test/java/libcore/java/net/URLConnectionTest.java
+++ b/luni/src/test/java/libcore/java/net/URLConnectionTest.java
@@ -3142,7 +3142,7 @@
         // Leave out one protocol.  First in the array will be the oldest protocol with
         // Conscrypt, but it shouldn't matter which we omit.
         String[] expectedProtocols =
-            Arrays.copyOfRange(platformProtocols, 1, platformProtocols.length - 1);
+            Arrays.copyOfRange(platformProtocols, 1, platformProtocols.length);
 
         TestSSLContext testSSLContext = createDefaultTestSSLContext();
         SSLSocketFactory serverSocketFactory =
@@ -3166,7 +3166,10 @@
     }
 
     private String[] platformDefaultTlsProtocols() throws Exception {
-        return SSLContext.getDefault().getSupportedSSLParameters().getProtocols();
+        try (SSLSocket socket = (SSLSocket) SSLContext.getDefault().getSocketFactory()
+            .createSocket()) {
+            return socket.getEnabledProtocols();
+        }
     }
 
     private static void assertSslSocket(TlsFallbackDisabledScsvSSLSocket socket,