API update for OpenJdk based libcore

Bug: 25758743
Change-Id: Ic91a29e41d83798b3558438ddd9e0f60d3e5ab59
diff --git a/api/current.txt b/api/current.txt
index 2f5686e..70df266 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -42755,13 +42755,18 @@
 package java.awt.font {
 
   public final class NumericShaper implements java.io.Serializable {
-    method public static java.awt.font.NumericShaper getContextualShaper(int, int);
     method public static java.awt.font.NumericShaper getContextualShaper(int);
+    method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>);
+    method public static java.awt.font.NumericShaper getContextualShaper(int, int);
+    method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>, java.awt.font.NumericShaper.Range);
+    method public java.util.Set<java.awt.font.NumericShaper.Range> getRangeSet();
     method public int getRanges();
     method public static java.awt.font.NumericShaper getShaper(int);
+    method public static java.awt.font.NumericShaper getShaper(java.awt.font.NumericShaper.Range);
     method public boolean isContextual();
-    method public void shape(char[], int, int, int);
     method public void shape(char[], int, int);
+    method public void shape(char[], int, int, int);
+    method public void shape(char[], int, int, java.awt.font.NumericShaper.Range);
     field public static final int ALL_RANGES = 524287; // 0x7ffff
     field public static final int ARABIC = 2; // 0x2
     field public static final int BENGALI = 16; // 0x10
@@ -42784,6 +42789,46 @@
     field public static final int TIBETAN = 16384; // 0x4000
   }
 
+  public static class NumericShaper.Range extends java.lang.Enum {
+    method public static java.awt.font.NumericShaper.Range valueOf(java.lang.String);
+    method public static final java.awt.font.NumericShaper.Range[] values();
+    enum_constant public static final java.awt.font.NumericShaper.Range ARABIC;
+    enum_constant public static final java.awt.font.NumericShaper.Range BALINESE;
+    enum_constant public static final java.awt.font.NumericShaper.Range BENGALI;
+    enum_constant public static final java.awt.font.NumericShaper.Range CHAM;
+    enum_constant public static final java.awt.font.NumericShaper.Range DEVANAGARI;
+    enum_constant public static final java.awt.font.NumericShaper.Range EASTERN_ARABIC;
+    enum_constant public static final java.awt.font.NumericShaper.Range ETHIOPIC;
+    enum_constant public static final java.awt.font.NumericShaper.Range EUROPEAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range GUJARATI;
+    enum_constant public static final java.awt.font.NumericShaper.Range GURMUKHI;
+    enum_constant public static final java.awt.font.NumericShaper.Range JAVANESE;
+    enum_constant public static final java.awt.font.NumericShaper.Range KANNADA;
+    enum_constant public static final java.awt.font.NumericShaper.Range KAYAH_LI;
+    enum_constant public static final java.awt.font.NumericShaper.Range KHMER;
+    enum_constant public static final java.awt.font.NumericShaper.Range LAO;
+    enum_constant public static final java.awt.font.NumericShaper.Range LEPCHA;
+    enum_constant public static final java.awt.font.NumericShaper.Range LIMBU;
+    enum_constant public static final java.awt.font.NumericShaper.Range MALAYALAM;
+    enum_constant public static final java.awt.font.NumericShaper.Range MEETEI_MAYEK;
+    enum_constant public static final java.awt.font.NumericShaper.Range MONGOLIAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR;
+    enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR_SHAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range NEW_TAI_LUE;
+    enum_constant public static final java.awt.font.NumericShaper.Range NKO;
+    enum_constant public static final java.awt.font.NumericShaper.Range OL_CHIKI;
+    enum_constant public static final java.awt.font.NumericShaper.Range ORIYA;
+    enum_constant public static final java.awt.font.NumericShaper.Range SAURASHTRA;
+    enum_constant public static final java.awt.font.NumericShaper.Range SUNDANESE;
+    enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_HORA;
+    enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_THAM;
+    enum_constant public static final java.awt.font.NumericShaper.Range TAMIL;
+    enum_constant public static final java.awt.font.NumericShaper.Range TELUGU;
+    enum_constant public static final java.awt.font.NumericShaper.Range THAI;
+    enum_constant public static final java.awt.font.NumericShaper.Range TIBETAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range VAI;
+  }
+
   public final class TextAttribute extends java.text.AttributedCharacterIterator.Attribute {
     ctor protected TextAttribute(java.lang.String);
     field public static final java.awt.font.TextAttribute BACKGROUND;
@@ -42877,20 +42922,20 @@
 
   public class PropertyChangeSupport implements java.io.Serializable {
     ctor public PropertyChangeSupport(java.lang.Object);
-    method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
     method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
+    method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
     method public void fireIndexedPropertyChange(java.lang.String, int, java.lang.Object, java.lang.Object);
-    method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
     method public void fireIndexedPropertyChange(java.lang.String, int, int, int);
+    method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
     method public void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
-    method public void firePropertyChange(java.lang.String, boolean, boolean);
     method public void firePropertyChange(java.lang.String, int, int);
+    method public void firePropertyChange(java.lang.String, boolean, boolean);
     method public void firePropertyChange(java.beans.PropertyChangeEvent);
-    method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
     method public java.beans.PropertyChangeListener[] getPropertyChangeListeners();
+    method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
     method public boolean hasListeners(java.lang.String);
-    method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
     method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
+    method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
   }
 
 }
@@ -42915,8 +42960,8 @@
   }
 
   public class BufferedReader extends java.io.Reader {
-    ctor public BufferedReader(java.io.Reader);
     ctor public BufferedReader(java.io.Reader, int);
+    ctor public BufferedReader(java.io.Reader);
     method public void close() throws java.io.IOException;
     method public int read(char[], int, int) throws java.io.IOException;
     method public java.lang.String readLine() throws java.io.IOException;
@@ -42945,10 +42990,10 @@
     ctor public ByteArrayOutputStream();
     ctor public ByteArrayOutputStream(int);
     method public synchronized void reset();
-    method public int size();
+    method public synchronized int size();
     method public synchronized byte[] toByteArray();
-    method public deprecated java.lang.String toString(int);
-    method public java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+    method public synchronized java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+    method public deprecated synchronized java.lang.String toString(int);
     method public synchronized void write(int);
     method public synchronized void writeTo(java.io.OutputStream) throws java.io.IOException;
     field protected byte[] buf;
@@ -42990,13 +43035,15 @@
   }
 
   public final class Console implements java.io.Flushable {
+    method public static java.io.Console console();
     method public void flush();
     method public java.io.Console format(java.lang.String, java.lang.Object...);
+    method public static synchronized java.io.Console getConsole();
     method public java.io.Console printf(java.lang.String, java.lang.Object...);
-    method public java.lang.String readLine();
     method public java.lang.String readLine(java.lang.String, java.lang.Object...);
-    method public char[] readPassword();
+    method public java.lang.String readLine();
     method public char[] readPassword(java.lang.String, java.lang.Object...);
+    method public char[] readPassword();
     method public java.io.Reader reader();
     method public java.io.PrintWriter writer();
   }
@@ -43042,9 +43089,9 @@
   }
 
   public abstract interface DataOutput {
+    method public abstract void write(int) throws java.io.IOException;
     method public abstract void write(byte[]) throws java.io.IOException;
     method public abstract void write(byte[], int, int) throws java.io.IOException;
-    method public abstract void write(int) throws java.io.IOException;
     method public abstract void writeBoolean(boolean) throws java.io.IOException;
     method public abstract void writeByte(int) throws java.io.IOException;
     method public abstract void writeBytes(java.lang.String) throws java.io.IOException;
@@ -43086,17 +43133,17 @@
   }
 
   public class File implements java.lang.Comparable java.io.Serializable {
-    ctor public File(java.io.File, java.lang.String);
     ctor public File(java.lang.String);
     ctor public File(java.lang.String, java.lang.String);
+    ctor public File(java.io.File, java.lang.String);
     ctor public File(java.net.URI);
     method public boolean canExecute();
     method public boolean canRead();
     method public boolean canWrite();
     method public int compareTo(java.io.File);
     method public boolean createNewFile() throws java.io.IOException;
-    method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
     method public static java.io.File createTempFile(java.lang.String, java.lang.String, java.io.File) throws java.io.IOException;
+    method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
     method public boolean delete();
     method public void deleteOnExit();
     method public boolean exists();
@@ -43134,6 +43181,7 @@
     method public boolean setReadable(boolean);
     method public boolean setWritable(boolean, boolean);
     method public boolean setWritable(boolean);
+    method public java.nio.file.Path toPath();
     method public java.net.URI toURI();
     method public deprecated java.net.URL toURL() throws java.net.MalformedURLException;
     field public static final java.lang.String pathSeparator;
@@ -43156,9 +43204,9 @@
   }
 
   public class FileInputStream extends java.io.InputStream {
+    ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
     ctor public FileInputStream(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileInputStream(java.io.FileDescriptor);
-    ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
     method public java.nio.channels.FileChannel getChannel();
     method public final java.io.FileDescriptor getFD() throws java.io.IOException;
     method public int read() throws java.io.IOException;
@@ -43170,11 +43218,11 @@
   }
 
   public class FileOutputStream extends java.io.OutputStream {
+    ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
+    ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.File, boolean) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.FileDescriptor);
-    ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
-    ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
     method public java.nio.channels.FileChannel getChannel();
     method public final java.io.FileDescriptor getFD() throws java.io.IOException;
     method public void write(int) throws java.io.IOException;
@@ -43182,22 +43230,24 @@
 
   public final class FilePermission extends java.security.Permission implements java.io.Serializable {
     ctor public FilePermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
   public class FileReader extends java.io.InputStreamReader {
+    ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
     ctor public FileReader(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileReader(java.io.FileDescriptor);
-    ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
   }
 
   public class FileWriter extends java.io.OutputStreamWriter {
+    ctor public FileWriter(java.lang.String) throws java.io.IOException;
+    ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
     ctor public FileWriter(java.io.File) throws java.io.IOException;
     ctor public FileWriter(java.io.File, boolean) throws java.io.IOException;
     ctor public FileWriter(java.io.FileDescriptor);
-    ctor public FileWriter(java.lang.String) throws java.io.IOException;
-    ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
   }
 
   public abstract interface FilenameFilter {
@@ -43250,7 +43300,7 @@
     ctor public InputStream();
     method public int available() throws java.io.IOException;
     method public void close() throws java.io.IOException;
-    method public void mark(int);
+    method public synchronized void mark(int);
     method public boolean markSupported();
     method public abstract int read() throws java.io.IOException;
     method public int read(byte[]) throws java.io.IOException;
@@ -43262,8 +43312,8 @@
   public class InputStreamReader extends java.io.Reader {
     ctor public InputStreamReader(java.io.InputStream);
     ctor public InputStreamReader(java.io.InputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
     ctor public InputStreamReader(java.io.InputStream, java.nio.charset.Charset);
+    ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
     method public void close() throws java.io.IOException;
     method public java.lang.String getEncoding();
     method public int read(char[], int, int) throws java.io.IOException;
@@ -43272,6 +43322,7 @@
   public class InterruptedIOException extends java.io.IOException {
     ctor public InterruptedIOException();
     ctor public InterruptedIOException(java.lang.String);
+    ctor public InterruptedIOException(java.lang.Throwable);
     field public int bytesTransferred;
   }
 
@@ -43299,13 +43350,13 @@
   }
 
   public class NotActiveException extends java.io.ObjectStreamException {
-    ctor public NotActiveException();
     ctor public NotActiveException(java.lang.String);
+    ctor public NotActiveException();
   }
 
   public class NotSerializableException extends java.io.ObjectStreamException {
-    ctor public NotSerializableException();
     ctor public NotSerializableException(java.lang.String);
+    ctor public NotSerializableException();
   }
 
   public abstract interface ObjectInput implements java.lang.AutoCloseable java.io.DataInput {
@@ -43319,32 +43370,32 @@
   }
 
   public class ObjectInputStream extends java.io.InputStream implements java.io.ObjectInput java.io.ObjectStreamConstants {
-    ctor protected ObjectInputStream() throws java.io.IOException;
-    ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException, java.io.StreamCorruptedException;
-    method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
-    method protected boolean enableResolveObject(boolean);
+    ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException;
+    ctor protected ObjectInputStream() throws java.io.IOException, java.lang.SecurityException;
+    method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method protected boolean enableResolveObject(boolean) throws java.lang.SecurityException;
     method public int read() throws java.io.IOException;
     method public boolean readBoolean() throws java.io.IOException;
     method public byte readByte() throws java.io.IOException;
     method public char readChar() throws java.io.IOException;
     method protected java.io.ObjectStreamClass readClassDescriptor() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public double readDouble() throws java.io.IOException;
-    method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
+    method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public float readFloat() throws java.io.IOException;
     method public void readFully(byte[]) throws java.io.IOException;
     method public void readFully(byte[], int, int) throws java.io.IOException;
     method public int readInt() throws java.io.IOException;
     method public deprecated java.lang.String readLine() throws java.io.IOException;
     method public long readLong() throws java.io.IOException;
-    method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
-    method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
+    method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public short readShort() throws java.io.IOException;
     method protected void readStreamHeader() throws java.io.IOException, java.io.StreamCorruptedException;
     method public java.lang.String readUTF() throws java.io.IOException;
     method public java.lang.Object readUnshared() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public int readUnsignedByte() throws java.io.IOException;
     method public int readUnsignedShort() throws java.io.IOException;
-    method public synchronized void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
+    method public void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
     method protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass) throws java.lang.ClassNotFoundException, java.io.IOException;
     method protected java.lang.Object resolveObject(java.lang.Object) throws java.io.IOException;
     method protected java.lang.Class<?> resolveProxyClass(java.lang.String[]) throws java.lang.ClassNotFoundException, java.io.IOException;
@@ -43353,16 +43404,16 @@
 
   public static abstract class ObjectInputStream.GetField {
     ctor public ObjectInputStream.GetField();
-    method public abstract boolean defaulted(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract char get(java.lang.String, char) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract byte get(java.lang.String, byte) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract short get(java.lang.String, short) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract int get(java.lang.String, int) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract long get(java.lang.String, long) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract float get(java.lang.String, float) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract double get(java.lang.String, double) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException, java.lang.IllegalArgumentException;
+    method public abstract boolean defaulted(java.lang.String) throws java.io.IOException;
+    method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException;
+    method public abstract byte get(java.lang.String, byte) throws java.io.IOException;
+    method public abstract char get(java.lang.String, char) throws java.io.IOException;
+    method public abstract short get(java.lang.String, short) throws java.io.IOException;
+    method public abstract int get(java.lang.String, int) throws java.io.IOException;
+    method public abstract long get(java.lang.String, long) throws java.io.IOException;
+    method public abstract float get(java.lang.String, float) throws java.io.IOException;
+    method public abstract double get(java.lang.String, double) throws java.io.IOException;
+    method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException;
     method public abstract java.io.ObjectStreamClass getObjectStreamClass();
   }
 
@@ -43373,20 +43424,20 @@
   public abstract interface ObjectOutput implements java.lang.AutoCloseable java.io.DataOutput {
     method public abstract void close() throws java.io.IOException;
     method public abstract void flush() throws java.io.IOException;
+    method public abstract void write(int) throws java.io.IOException;
     method public abstract void write(byte[]) throws java.io.IOException;
     method public abstract void write(byte[], int, int) throws java.io.IOException;
-    method public abstract void write(int) throws java.io.IOException;
     method public abstract void writeObject(java.lang.Object) throws java.io.IOException;
   }
 
   public class ObjectOutputStream extends java.io.OutputStream implements java.io.ObjectOutput java.io.ObjectStreamConstants {
-    ctor protected ObjectOutputStream() throws java.io.IOException;
     ctor public ObjectOutputStream(java.io.OutputStream) throws java.io.IOException;
+    ctor protected ObjectOutputStream() throws java.io.IOException, java.lang.SecurityException;
     method protected void annotateClass(java.lang.Class<?>) throws java.io.IOException;
     method protected void annotateProxyClass(java.lang.Class<?>) throws java.io.IOException;
     method public void defaultWriteObject() throws java.io.IOException;
     method protected void drain() throws java.io.IOException;
-    method protected boolean enableReplaceObject(boolean);
+    method protected boolean enableReplaceObject(boolean) throws java.lang.SecurityException;
     method public java.io.ObjectOutputStream.PutField putFields() throws java.io.IOException;
     method protected java.lang.Object replaceObject(java.lang.Object) throws java.io.IOException;
     method public void reset() throws java.io.IOException;
@@ -43414,8 +43465,8 @@
   public static abstract class ObjectOutputStream.PutField {
     ctor public ObjectOutputStream.PutField();
     method public abstract void put(java.lang.String, boolean);
-    method public abstract void put(java.lang.String, char);
     method public abstract void put(java.lang.String, byte);
+    method public abstract void put(java.lang.String, char);
     method public abstract void put(java.lang.String, short);
     method public abstract void put(java.lang.String, int);
     method public abstract void put(java.lang.String, long);
@@ -43469,8 +43520,8 @@
   }
 
   public abstract class ObjectStreamException extends java.io.IOException {
-    ctor protected ObjectStreamException();
     ctor protected ObjectStreamException(java.lang.String);
+    ctor protected ObjectStreamException();
   }
 
   public class ObjectStreamField implements java.lang.Comparable {
@@ -43496,14 +43547,14 @@
     ctor public OutputStream();
     method public void close() throws java.io.IOException;
     method public void flush() throws java.io.IOException;
+    method public abstract void write(int) throws java.io.IOException;
     method public void write(byte[]) throws java.io.IOException;
     method public void write(byte[], int, int) throws java.io.IOException;
-    method public abstract void write(int) throws java.io.IOException;
   }
 
   public class OutputStreamWriter extends java.io.Writer {
-    ctor public OutputStreamWriter(java.io.OutputStream);
     ctor public OutputStreamWriter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public OutputStreamWriter(java.io.OutputStream);
     ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.Charset);
     ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.CharsetEncoder);
     method public void close() throws java.io.IOException;
@@ -43513,10 +43564,10 @@
   }
 
   public class PipedInputStream extends java.io.InputStream {
-    ctor public PipedInputStream();
     ctor public PipedInputStream(java.io.PipedOutputStream) throws java.io.IOException;
-    ctor public PipedInputStream(int);
     ctor public PipedInputStream(java.io.PipedOutputStream, int) throws java.io.IOException;
+    ctor public PipedInputStream();
+    ctor public PipedInputStream(int);
     method public void connect(java.io.PipedOutputStream) throws java.io.IOException;
     method public synchronized int read() throws java.io.IOException;
     method protected synchronized void receive(int) throws java.io.IOException;
@@ -43527,28 +43578,28 @@
   }
 
   public class PipedOutputStream extends java.io.OutputStream {
-    ctor public PipedOutputStream();
     ctor public PipedOutputStream(java.io.PipedInputStream) throws java.io.IOException;
-    method public void connect(java.io.PipedInputStream) throws java.io.IOException;
+    ctor public PipedOutputStream();
+    method public synchronized void connect(java.io.PipedInputStream) throws java.io.IOException;
     method public void write(int) throws java.io.IOException;
   }
 
   public class PipedReader extends java.io.Reader {
-    ctor public PipedReader();
     ctor public PipedReader(java.io.PipedWriter) throws java.io.IOException;
-    ctor public PipedReader(int);
     ctor public PipedReader(java.io.PipedWriter, int) throws java.io.IOException;
-    method public synchronized void close() throws java.io.IOException;
+    ctor public PipedReader();
+    ctor public PipedReader(int);
+    method public void close() throws java.io.IOException;
     method public void connect(java.io.PipedWriter) throws java.io.IOException;
     method public synchronized int read(char[], int, int) throws java.io.IOException;
   }
 
   public class PipedWriter extends java.io.Writer {
-    ctor public PipedWriter();
     ctor public PipedWriter(java.io.PipedReader) throws java.io.IOException;
+    ctor public PipedWriter();
     method public void close() throws java.io.IOException;
-    method public void connect(java.io.PipedReader) throws java.io.IOException;
-    method public void flush() throws java.io.IOException;
+    method public synchronized void connect(java.io.PipedReader) throws java.io.IOException;
+    method public synchronized void flush() throws java.io.IOException;
     method public void write(char[], int, int) throws java.io.IOException;
   }
 
@@ -43556,111 +43607,111 @@
     ctor public PrintStream(java.io.OutputStream);
     ctor public PrintStream(java.io.OutputStream, boolean);
     ctor public PrintStream(java.io.OutputStream, boolean, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
-    ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     ctor public PrintStream(java.lang.String) throws java.io.FileNotFoundException;
     ctor public PrintStream(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
-    method public java.io.PrintStream append(char);
+    ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
+    ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     method public java.io.PrintStream append(java.lang.CharSequence);
     method public java.io.PrintStream append(java.lang.CharSequence, int, int);
+    method public java.io.PrintStream append(char);
     method public boolean checkError();
     method protected void clearError();
     method public java.io.PrintStream format(java.lang.String, java.lang.Object...);
     method public java.io.PrintStream format(java.util.Locale, java.lang.String, java.lang.Object...);
-    method public void print(char[]);
+    method public void print(boolean);
     method public void print(char);
-    method public void print(double);
-    method public void print(float);
     method public void print(int);
     method public void print(long);
+    method public void print(float);
+    method public void print(double);
+    method public void print(char[]);
+    method public void print(java.lang.String);
     method public void print(java.lang.Object);
-    method public synchronized void print(java.lang.String);
-    method public void print(boolean);
     method public java.io.PrintStream printf(java.lang.String, java.lang.Object...);
     method public java.io.PrintStream printf(java.util.Locale, java.lang.String, java.lang.Object...);
     method public void println();
-    method public void println(char[]);
+    method public void println(boolean);
     method public void println(char);
-    method public void println(double);
-    method public void println(float);
     method public void println(int);
     method public void println(long);
+    method public void println(float);
+    method public void println(double);
+    method public void println(char[]);
+    method public void println(java.lang.String);
     method public void println(java.lang.Object);
-    method public synchronized void println(java.lang.String);
-    method public void println(boolean);
     method protected void setError();
   }
 
   public class PrintWriter extends java.io.Writer {
-    ctor public PrintWriter(java.io.OutputStream);
-    ctor public PrintWriter(java.io.OutputStream, boolean);
     ctor public PrintWriter(java.io.Writer);
     ctor public PrintWriter(java.io.Writer, boolean);
-    ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
-    ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public PrintWriter(java.io.OutputStream);
+    ctor public PrintWriter(java.io.OutputStream, boolean);
     ctor public PrintWriter(java.lang.String) throws java.io.FileNotFoundException;
     ctor public PrintWriter(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
+    ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     method public boolean checkError();
     method protected void clearError();
     method public void close();
     method public void flush();
     method public java.io.PrintWriter format(java.lang.String, java.lang.Object...);
     method public java.io.PrintWriter format(java.util.Locale, java.lang.String, java.lang.Object...);
-    method public void print(char[]);
+    method public void print(boolean);
     method public void print(char);
-    method public void print(double);
-    method public void print(float);
     method public void print(int);
     method public void print(long);
-    method public void print(java.lang.Object);
+    method public void print(float);
+    method public void print(double);
+    method public void print(char[]);
     method public void print(java.lang.String);
-    method public void print(boolean);
+    method public void print(java.lang.Object);
     method public java.io.PrintWriter printf(java.lang.String, java.lang.Object...);
     method public java.io.PrintWriter printf(java.util.Locale, java.lang.String, java.lang.Object...);
     method public void println();
-    method public void println(char[]);
+    method public void println(boolean);
     method public void println(char);
-    method public void println(double);
-    method public void println(float);
     method public void println(int);
     method public void println(long);
-    method public void println(java.lang.Object);
+    method public void println(float);
+    method public void println(double);
+    method public void println(char[]);
     method public void println(java.lang.String);
-    method public void println(boolean);
+    method public void println(java.lang.Object);
     method protected void setError();
     method public void write(char[], int, int);
     field protected java.io.Writer out;
   }
 
   public class PushbackInputStream extends java.io.FilterInputStream {
-    ctor public PushbackInputStream(java.io.InputStream);
     ctor public PushbackInputStream(java.io.InputStream, int);
-    method public void unread(byte[]) throws java.io.IOException;
-    method public void unread(byte[], int, int) throws java.io.IOException;
+    ctor public PushbackInputStream(java.io.InputStream);
     method public void unread(int) throws java.io.IOException;
+    method public void unread(byte[], int, int) throws java.io.IOException;
+    method public void unread(byte[]) throws java.io.IOException;
     field protected byte[] buf;
     field protected int pos;
   }
 
   public class PushbackReader extends java.io.FilterReader {
-    ctor public PushbackReader(java.io.Reader);
     ctor public PushbackReader(java.io.Reader, int);
-    method public void unread(char[]) throws java.io.IOException;
-    method public void unread(char[], int, int) throws java.io.IOException;
+    ctor public PushbackReader(java.io.Reader);
     method public void unread(int) throws java.io.IOException;
+    method public void unread(char[], int, int) throws java.io.IOException;
+    method public void unread(char[]) throws java.io.IOException;
   }
 
   public class RandomAccessFile implements java.io.Closeable java.io.DataInput java.io.DataOutput {
-    ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
     ctor public RandomAccessFile(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
+    ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
     method public void close() throws java.io.IOException;
-    method public final synchronized java.nio.channels.FileChannel getChannel();
+    method public final java.nio.channels.FileChannel getChannel();
     method public final java.io.FileDescriptor getFD() throws java.io.IOException;
     method public long getFilePointer() throws java.io.IOException;
     method public long length() throws java.io.IOException;
     method public int read() throws java.io.IOException;
-    method public int read(byte[]) throws java.io.IOException;
     method public int read(byte[], int, int) throws java.io.IOException;
+    method public int read(byte[]) throws java.io.IOException;
     method public final boolean readBoolean() throws java.io.IOException;
     method public final byte readByte() throws java.io.IOException;
     method public final char readChar() throws java.io.IOException;
@@ -43678,9 +43729,9 @@
     method public void seek(long) throws java.io.IOException;
     method public void setLength(long) throws java.io.IOException;
     method public int skipBytes(int) throws java.io.IOException;
+    method public void write(int) throws java.io.IOException;
     method public void write(byte[]) throws java.io.IOException;
     method public void write(byte[], int, int) throws java.io.IOException;
-    method public void write(int) throws java.io.IOException;
     method public final void writeBoolean(boolean) throws java.io.IOException;
     method public final void writeByte(int) throws java.io.IOException;
     method public final void writeBytes(java.lang.String) throws java.io.IOException;
@@ -43700,10 +43751,10 @@
     method public abstract void close() throws java.io.IOException;
     method public void mark(int) throws java.io.IOException;
     method public boolean markSupported();
+    method public int read(java.nio.CharBuffer) throws java.io.IOException;
     method public int read() throws java.io.IOException;
     method public int read(char[]) throws java.io.IOException;
     method public abstract int read(char[], int, int) throws java.io.IOException;
-    method public int read(java.nio.CharBuffer) throws java.io.IOException;
     method public boolean ready() throws java.io.IOException;
     method public void reset() throws java.io.IOException;
     method public long skip(long) throws java.io.IOException;
@@ -43711,8 +43762,8 @@
   }
 
   public class SequenceInputStream extends java.io.InputStream {
-    ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
     ctor public SequenceInputStream(java.util.Enumeration<? extends java.io.InputStream>);
+    ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
     method public int read() throws java.io.IOException;
   }
 
@@ -43725,8 +43776,8 @@
   }
 
   public class StreamCorruptedException extends java.io.ObjectStreamException {
-    ctor public StreamCorruptedException();
     ctor public StreamCorruptedException(java.lang.String);
+    ctor public StreamCorruptedException();
   }
 
   public class StreamTokenizer {
@@ -43801,14 +43852,14 @@
   public abstract class Writer implements java.lang.Appendable java.io.Closeable java.io.Flushable {
     ctor protected Writer();
     ctor protected Writer(java.lang.Object);
-    method public java.io.Writer append(char) throws java.io.IOException;
     method public java.io.Writer append(java.lang.CharSequence) throws java.io.IOException;
     method public java.io.Writer append(java.lang.CharSequence, int, int) throws java.io.IOException;
+    method public java.io.Writer append(char) throws java.io.IOException;
     method public abstract void close() throws java.io.IOException;
     method public abstract void flush() throws java.io.IOException;
+    method public void write(int) throws java.io.IOException;
     method public void write(char[]) throws java.io.IOException;
     method public abstract void write(char[], int, int) throws java.io.IOException;
-    method public void write(int) throws java.io.IOException;
     method public void write(java.lang.String) throws java.io.IOException;
     method public void write(java.lang.String, int, int) throws java.io.IOException;
     field protected java.lang.Object lock;
@@ -43823,32 +43874,63 @@
     ctor public AbstractMethodError(java.lang.String);
   }
 
-   abstract class AbstractStringBuilder {
+   abstract class AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence {
+    method public java.lang.AbstractStringBuilder append(java.lang.Object);
+    method public java.lang.AbstractStringBuilder append(java.lang.String);
+    method public java.lang.AbstractStringBuilder append(java.lang.StringBuffer);
+    method public java.lang.AbstractStringBuilder append(java.lang.CharSequence);
+    method public java.lang.AbstractStringBuilder append(java.lang.CharSequence, int, int);
+    method public java.lang.AbstractStringBuilder append(char[]);
+    method public java.lang.AbstractStringBuilder append(char[], int, int);
+    method public java.lang.AbstractStringBuilder append(boolean);
+    method public java.lang.AbstractStringBuilder append(char);
+    method public java.lang.AbstractStringBuilder append(int);
+    method public java.lang.AbstractStringBuilder append(long);
+    method public java.lang.AbstractStringBuilder append(float);
+    method public java.lang.AbstractStringBuilder append(double);
+    method public java.lang.AbstractStringBuilder appendCodePoint(int);
     method public int capacity();
     method public char charAt(int);
     method public int codePointAt(int);
     method public int codePointBefore(int);
     method public int codePointCount(int, int);
+    method public java.lang.AbstractStringBuilder delete(int, int);
+    method public java.lang.AbstractStringBuilder deleteCharAt(int);
     method public void ensureCapacity(int);
     method public void getChars(int, int, char[], int);
     method public int indexOf(java.lang.String);
     method public int indexOf(java.lang.String, int);
+    method public java.lang.AbstractStringBuilder insert(int, char[], int, int);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.Object);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.String);
+    method public java.lang.AbstractStringBuilder insert(int, char[]);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.CharSequence);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.CharSequence, int, int);
+    method public java.lang.AbstractStringBuilder insert(int, boolean);
+    method public java.lang.AbstractStringBuilder insert(int, char);
+    method public java.lang.AbstractStringBuilder insert(int, int);
+    method public java.lang.AbstractStringBuilder insert(int, long);
+    method public java.lang.AbstractStringBuilder insert(int, float);
+    method public java.lang.AbstractStringBuilder insert(int, double);
     method public int lastIndexOf(java.lang.String);
     method public int lastIndexOf(java.lang.String, int);
     method public int length();
     method public int offsetByCodePoints(int, int);
+    method public java.lang.AbstractStringBuilder replace(int, int, java.lang.String);
+    method public java.lang.AbstractStringBuilder reverse();
     method public void setCharAt(int, char);
     method public void setLength(int);
     method public java.lang.CharSequence subSequence(int, int);
     method public java.lang.String substring(int);
     method public java.lang.String substring(int, int);
+    method public abstract java.lang.String toString();
     method public void trimToSize();
   }
 
   public abstract interface Appendable {
-    method public abstract java.lang.Appendable append(char) throws java.io.IOException;
     method public abstract java.lang.Appendable append(java.lang.CharSequence) throws java.io.IOException;
     method public abstract java.lang.Appendable append(java.lang.CharSequence, int, int) throws java.io.IOException;
+    method public abstract java.lang.Appendable append(char) throws java.io.IOException;
   }
 
   public class ArithmeticException extends java.lang.RuntimeException {
@@ -43869,7 +43951,6 @@
 
   public class AssertionError extends java.lang.Error {
     ctor public AssertionError();
-    ctor public AssertionError(java.lang.String, java.lang.Throwable);
     ctor public AssertionError(java.lang.Object);
     ctor public AssertionError(boolean);
     ctor public AssertionError(char);
@@ -43877,6 +43958,7 @@
     ctor public AssertionError(long);
     ctor public AssertionError(float);
     ctor public AssertionError(double);
+    ctor public AssertionError(java.lang.String, java.lang.Throwable);
   }
 
   public abstract interface AutoCloseable {
@@ -43884,16 +43966,16 @@
   }
 
   public final class Boolean implements java.lang.Comparable java.io.Serializable {
-    ctor public Boolean(java.lang.String);
     ctor public Boolean(boolean);
+    ctor public Boolean(java.lang.String);
     method public boolean booleanValue();
     method public static int compare(boolean, boolean);
     method public int compareTo(java.lang.Boolean);
     method public static boolean getBoolean(java.lang.String);
     method public static boolean parseBoolean(java.lang.String);
     method public static java.lang.String toString(boolean);
-    method public static java.lang.Boolean valueOf(java.lang.String);
     method public static java.lang.Boolean valueOf(boolean);
+    method public static java.lang.Boolean valueOf(java.lang.String);
     field public static final java.lang.Boolean FALSE;
     field public static final java.lang.Boolean TRUE;
     field public static final java.lang.Class<java.lang.Boolean> TYPE;
@@ -43909,12 +43991,13 @@
     method public float floatValue();
     method public int intValue();
     method public long longValue();
-    method public static byte parseByte(java.lang.String) throws java.lang.NumberFormatException;
     method public static byte parseByte(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static byte parseByte(java.lang.String) throws java.lang.NumberFormatException;
+    method public static java.lang.String toHexString(byte, boolean);
     method public static java.lang.String toString(byte);
-    method public static java.lang.Byte valueOf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.Byte valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
     method public static java.lang.Byte valueOf(byte);
+    method public static java.lang.Byte valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Byte valueOf(java.lang.String) throws java.lang.NumberFormatException;
     field public static final byte MAX_VALUE = 127; // 0x7f
     field public static final byte MIN_VALUE = -128; // 0xffffff80
     field public static final int SIZE = 8; // 0x8
@@ -44087,7 +44170,7 @@
   }
 
   public static final class Character.UnicodeBlock extends java.lang.Character.Subset {
-    method public static java.lang.Character.UnicodeBlock forName(java.lang.String);
+    method public static final java.lang.Character.UnicodeBlock forName(java.lang.String);
     method public static java.lang.Character.UnicodeBlock of(char);
     method public static java.lang.Character.UnicodeBlock of(int);
     field public static final java.lang.Character.UnicodeBlock AEGEAN_NUMBERS;
@@ -44302,6 +44385,109 @@
     field public static final java.lang.Character.UnicodeBlock YI_SYLLABLES;
   }
 
+  public static final class Character.UnicodeScript extends java.lang.Enum {
+    method public static final java.lang.Character.UnicodeScript forName(java.lang.String);
+    method public static java.lang.Character.UnicodeScript of(int);
+    method public static java.lang.Character.UnicodeScript valueOf(java.lang.String);
+    method public static final java.lang.Character.UnicodeScript[] values();
+    enum_constant public static final java.lang.Character.UnicodeScript ARABIC;
+    enum_constant public static final java.lang.Character.UnicodeScript ARMENIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript AVESTAN;
+    enum_constant public static final java.lang.Character.UnicodeScript BALINESE;
+    enum_constant public static final java.lang.Character.UnicodeScript BAMUM;
+    enum_constant public static final java.lang.Character.UnicodeScript BATAK;
+    enum_constant public static final java.lang.Character.UnicodeScript BENGALI;
+    enum_constant public static final java.lang.Character.UnicodeScript BOPOMOFO;
+    enum_constant public static final java.lang.Character.UnicodeScript BRAHMI;
+    enum_constant public static final java.lang.Character.UnicodeScript BRAILLE;
+    enum_constant public static final java.lang.Character.UnicodeScript BUGINESE;
+    enum_constant public static final java.lang.Character.UnicodeScript BUHID;
+    enum_constant public static final java.lang.Character.UnicodeScript CANADIAN_ABORIGINAL;
+    enum_constant public static final java.lang.Character.UnicodeScript CARIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript CHAM;
+    enum_constant public static final java.lang.Character.UnicodeScript CHEROKEE;
+    enum_constant public static final java.lang.Character.UnicodeScript COMMON;
+    enum_constant public static final java.lang.Character.UnicodeScript COPTIC;
+    enum_constant public static final java.lang.Character.UnicodeScript CUNEIFORM;
+    enum_constant public static final java.lang.Character.UnicodeScript CYPRIOT;
+    enum_constant public static final java.lang.Character.UnicodeScript CYRILLIC;
+    enum_constant public static final java.lang.Character.UnicodeScript DESERET;
+    enum_constant public static final java.lang.Character.UnicodeScript DEVANAGARI;
+    enum_constant public static final java.lang.Character.UnicodeScript EGYPTIAN_HIEROGLYPHS;
+    enum_constant public static final java.lang.Character.UnicodeScript ETHIOPIC;
+    enum_constant public static final java.lang.Character.UnicodeScript GEORGIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript GLAGOLITIC;
+    enum_constant public static final java.lang.Character.UnicodeScript GOTHIC;
+    enum_constant public static final java.lang.Character.UnicodeScript GREEK;
+    enum_constant public static final java.lang.Character.UnicodeScript GUJARATI;
+    enum_constant public static final java.lang.Character.UnicodeScript GURMUKHI;
+    enum_constant public static final java.lang.Character.UnicodeScript HAN;
+    enum_constant public static final java.lang.Character.UnicodeScript HANGUL;
+    enum_constant public static final java.lang.Character.UnicodeScript HANUNOO;
+    enum_constant public static final java.lang.Character.UnicodeScript HEBREW;
+    enum_constant public static final java.lang.Character.UnicodeScript HIRAGANA;
+    enum_constant public static final java.lang.Character.UnicodeScript IMPERIAL_ARAMAIC;
+    enum_constant public static final java.lang.Character.UnicodeScript INHERITED;
+    enum_constant public static final java.lang.Character.UnicodeScript INSCRIPTIONAL_PAHLAVI;
+    enum_constant public static final java.lang.Character.UnicodeScript INSCRIPTIONAL_PARTHIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript JAVANESE;
+    enum_constant public static final java.lang.Character.UnicodeScript KAITHI;
+    enum_constant public static final java.lang.Character.UnicodeScript KANNADA;
+    enum_constant public static final java.lang.Character.UnicodeScript KATAKANA;
+    enum_constant public static final java.lang.Character.UnicodeScript KAYAH_LI;
+    enum_constant public static final java.lang.Character.UnicodeScript KHAROSHTHI;
+    enum_constant public static final java.lang.Character.UnicodeScript KHMER;
+    enum_constant public static final java.lang.Character.UnicodeScript LAO;
+    enum_constant public static final java.lang.Character.UnicodeScript LATIN;
+    enum_constant public static final java.lang.Character.UnicodeScript LEPCHA;
+    enum_constant public static final java.lang.Character.UnicodeScript LIMBU;
+    enum_constant public static final java.lang.Character.UnicodeScript LINEAR_B;
+    enum_constant public static final java.lang.Character.UnicodeScript LISU;
+    enum_constant public static final java.lang.Character.UnicodeScript LYCIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript LYDIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript MALAYALAM;
+    enum_constant public static final java.lang.Character.UnicodeScript MANDAIC;
+    enum_constant public static final java.lang.Character.UnicodeScript MEETEI_MAYEK;
+    enum_constant public static final java.lang.Character.UnicodeScript MONGOLIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript MYANMAR;
+    enum_constant public static final java.lang.Character.UnicodeScript NEW_TAI_LUE;
+    enum_constant public static final java.lang.Character.UnicodeScript NKO;
+    enum_constant public static final java.lang.Character.UnicodeScript OGHAM;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_ITALIC;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_PERSIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_SOUTH_ARABIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_TURKIC;
+    enum_constant public static final java.lang.Character.UnicodeScript OL_CHIKI;
+    enum_constant public static final java.lang.Character.UnicodeScript ORIYA;
+    enum_constant public static final java.lang.Character.UnicodeScript OSMANYA;
+    enum_constant public static final java.lang.Character.UnicodeScript PHAGS_PA;
+    enum_constant public static final java.lang.Character.UnicodeScript PHOENICIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript REJANG;
+    enum_constant public static final java.lang.Character.UnicodeScript RUNIC;
+    enum_constant public static final java.lang.Character.UnicodeScript SAMARITAN;
+    enum_constant public static final java.lang.Character.UnicodeScript SAURASHTRA;
+    enum_constant public static final java.lang.Character.UnicodeScript SHAVIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript SINHALA;
+    enum_constant public static final java.lang.Character.UnicodeScript SUNDANESE;
+    enum_constant public static final java.lang.Character.UnicodeScript SYLOTI_NAGRI;
+    enum_constant public static final java.lang.Character.UnicodeScript SYRIAC;
+    enum_constant public static final java.lang.Character.UnicodeScript TAGALOG;
+    enum_constant public static final java.lang.Character.UnicodeScript TAGBANWA;
+    enum_constant public static final java.lang.Character.UnicodeScript TAI_LE;
+    enum_constant public static final java.lang.Character.UnicodeScript TAI_THAM;
+    enum_constant public static final java.lang.Character.UnicodeScript TAI_VIET;
+    enum_constant public static final java.lang.Character.UnicodeScript TAMIL;
+    enum_constant public static final java.lang.Character.UnicodeScript TELUGU;
+    enum_constant public static final java.lang.Character.UnicodeScript THAANA;
+    enum_constant public static final java.lang.Character.UnicodeScript THAI;
+    enum_constant public static final java.lang.Character.UnicodeScript TIBETAN;
+    enum_constant public static final java.lang.Character.UnicodeScript TIFINAGH;
+    enum_constant public static final java.lang.Character.UnicodeScript UGARITIC;
+    enum_constant public static final java.lang.Character.UnicodeScript UNKNOWN;
+    enum_constant public static final java.lang.Character.UnicodeScript VAI;
+    enum_constant public static final java.lang.Character.UnicodeScript YI;
+  }
+
   public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type {
     method public java.lang.Class<? extends U> asSubclass(java.lang.Class<U>);
     method public T cast(java.lang.Object);
@@ -44314,28 +44500,28 @@
     method public java.lang.ClassLoader getClassLoader();
     method public java.lang.Class<?>[] getClasses();
     method public java.lang.Class<?> getComponentType();
-    method public java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Constructor<?>[] getConstructors();
+    method public java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Constructor<?>[] getConstructors() throws java.lang.SecurityException;
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<?>[] getDeclaredClasses();
-    method public java.lang.reflect.Constructor<T> getDeclaredConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Constructor<?>[] getDeclaredConstructors();
+    method public java.lang.reflect.Constructor<T> getDeclaredConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Constructor<?>[] getDeclaredConstructors() throws java.lang.SecurityException;
     method public java.lang.reflect.Field getDeclaredField(java.lang.String) throws java.lang.NoSuchFieldException;
     method public java.lang.reflect.Field[] getDeclaredFields();
-    method public java.lang.reflect.Method getDeclaredMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Method[] getDeclaredMethods();
+    method public java.lang.reflect.Method getDeclaredMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Method[] getDeclaredMethods() throws java.lang.SecurityException;
     method public java.lang.Class<?> getDeclaringClass();
     method public java.lang.Class<?> getEnclosingClass();
     method public java.lang.reflect.Constructor<?> getEnclosingConstructor();
     method public java.lang.reflect.Method getEnclosingMethod();
     method public T[] getEnumConstants();
     method public java.lang.reflect.Field getField(java.lang.String) throws java.lang.NoSuchFieldException;
-    method public java.lang.reflect.Field[] getFields();
+    method public java.lang.reflect.Field[] getFields() throws java.lang.SecurityException;
     method public java.lang.reflect.Type[] getGenericInterfaces();
     method public java.lang.reflect.Type getGenericSuperclass();
     method public java.lang.Class<?>[] getInterfaces();
-    method public java.lang.reflect.Method getMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Method[] getMethods();
+    method public java.lang.reflect.Method getMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Method[] getMethods() throws java.lang.SecurityException;
     method public int getModifiers();
     method public java.lang.String getName();
     method public java.lang.Package getPackage();
@@ -44377,8 +44563,8 @@
   }
 
   public abstract class ClassLoader {
-    ctor protected ClassLoader();
     ctor protected ClassLoader(java.lang.ClassLoader);
+    ctor protected ClassLoader();
     method public void clearAssertionStatus();
     method protected final deprecated java.lang.Class<?> defineClass(byte[], int, int) throws java.lang.ClassFormatError;
     method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int) throws java.lang.ClassFormatError;
@@ -44403,6 +44589,7 @@
     method public static java.util.Enumeration<java.net.URL> getSystemResources(java.lang.String) throws java.io.IOException;
     method public java.lang.Class<?> loadClass(java.lang.String) throws java.lang.ClassNotFoundException;
     method protected java.lang.Class<?> loadClass(java.lang.String, boolean) throws java.lang.ClassNotFoundException;
+    method protected static boolean registerAsParallelCapable();
     method protected final void resolveClass(java.lang.Class<?>);
     method public void setClassAssertionStatus(java.lang.String, boolean);
     method public void setDefaultAssertionStatus(boolean);
@@ -44450,10 +44637,10 @@
     method public double doubleValue();
     method public float floatValue();
     method public int intValue();
-    method public boolean isInfinite();
     method public static boolean isInfinite(double);
-    method public boolean isNaN();
+    method public boolean isInfinite();
     method public static boolean isNaN(double);
+    method public boolean isNaN();
     method public static double longBitsToDouble(long);
     method public long longValue();
     method public static double parseDouble(java.lang.String) throws java.lang.NumberFormatException;
@@ -44497,6 +44684,7 @@
     ctor public Error(java.lang.String);
     ctor public Error(java.lang.String, java.lang.Throwable);
     ctor public Error(java.lang.Throwable);
+    ctor protected Error(java.lang.String, java.lang.Throwable, boolean, boolean);
   }
 
   public class Exception extends java.lang.Throwable {
@@ -44504,12 +44692,13 @@
     ctor public Exception(java.lang.String);
     ctor public Exception(java.lang.String, java.lang.Throwable);
     ctor public Exception(java.lang.Throwable);
+    ctor protected Exception(java.lang.String, java.lang.Throwable, boolean, boolean);
   }
 
   public class ExceptionInInitializerError extends java.lang.LinkageError {
     ctor public ExceptionInInitializerError();
-    ctor public ExceptionInInitializerError(java.lang.String);
     ctor public ExceptionInInitializerError(java.lang.Throwable);
+    ctor public ExceptionInInitializerError(java.lang.String);
     method public java.lang.Throwable getException();
   }
 
@@ -44525,10 +44714,10 @@
     method public float floatValue();
     method public static float intBitsToFloat(int);
     method public int intValue();
-    method public boolean isInfinite();
     method public static boolean isInfinite(float);
-    method public boolean isNaN();
+    method public boolean isInfinite();
     method public static boolean isNaN(float);
+    method public boolean isNaN();
     method public long longValue();
     method public static float parseFloat(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.String toHexString(float);
@@ -44624,8 +44813,8 @@
     method public static int lowestOneBit(int);
     method public static int numberOfLeadingZeros(int);
     method public static int numberOfTrailingZeros(int);
-    method public static int parseInt(java.lang.String) throws java.lang.NumberFormatException;
     method public static int parseInt(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static int parseInt(java.lang.String) throws java.lang.NumberFormatException;
     method public static int reverse(int);
     method public static int reverseBytes(int);
     method public static int rotateLeft(int, int);
@@ -44634,10 +44823,10 @@
     method public static java.lang.String toBinaryString(int);
     method public static java.lang.String toHexString(int);
     method public static java.lang.String toOctalString(int);
-    method public static java.lang.String toString(int);
     method public static java.lang.String toString(int, int);
-    method public static java.lang.Integer valueOf(java.lang.String) throws java.lang.NumberFormatException;
+    method public static java.lang.String toString(int);
     method public static java.lang.Integer valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Integer valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Integer valueOf(int);
     field public static final int MAX_VALUE = 2147483647; // 0x7fffffff
     field public static final int MIN_VALUE = -2147483648; // 0x80000000
@@ -44683,8 +44872,8 @@
     method public static long lowestOneBit(long);
     method public static int numberOfLeadingZeros(long);
     method public static int numberOfTrailingZeros(long);
-    method public static long parseLong(java.lang.String) throws java.lang.NumberFormatException;
     method public static long parseLong(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static long parseLong(java.lang.String) throws java.lang.NumberFormatException;
     method public static long reverse(long);
     method public static long reverseBytes(long);
     method public static long rotateLeft(long, int);
@@ -44693,10 +44882,10 @@
     method public static java.lang.String toBinaryString(long);
     method public static java.lang.String toHexString(long);
     method public static java.lang.String toOctalString(long);
-    method public static java.lang.String toString(long);
     method public static java.lang.String toString(long, int);
-    method public static java.lang.Long valueOf(java.lang.String) throws java.lang.NumberFormatException;
+    method public static java.lang.String toString(long);
     method public static java.lang.Long valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Long valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Long valueOf(long);
     field public static final long MAX_VALUE = 9223372036854775807L; // 0x7fffffffffffffffL
     field public static final long MIN_VALUE = -9223372036854775808L; // 0x8000000000000000L
@@ -44706,10 +44895,10 @@
 
   public final class Math {
     method public static double IEEEremainder(double, double);
-    method public static double abs(double);
-    method public static float abs(float);
     method public static int abs(int);
     method public static long abs(long);
+    method public static float abs(float);
+    method public static double abs(double);
     method public static double acos(double);
     method public static double asin(double);
     method public static double atan(double);
@@ -44729,14 +44918,14 @@
     method public static double log(double);
     method public static double log10(double);
     method public static double log1p(double);
-    method public static double max(double, double);
-    method public static float max(float, float);
     method public static int max(int, int);
     method public static long max(long, long);
-    method public static double min(double, double);
-    method public static float min(float, float);
+    method public static float max(float, float);
+    method public static double max(double, double);
     method public static int min(int, int);
     method public static long min(long, long);
+    method public static float min(float, float);
+    method public static double min(double, double);
     method public static double nextAfter(double, double);
     method public static float nextAfter(float, double);
     method public static double nextUp(double);
@@ -44744,8 +44933,8 @@
     method public static double pow(double, double);
     method public static double random();
     method public static double rint(double);
-    method public static long round(double);
     method public static int round(float);
+    method public static long round(double);
     method public static double scalb(double, int);
     method public static float scalb(float, int);
     method public static double signum(double);
@@ -44823,9 +45012,9 @@
     method public final void notify();
     method public final void notifyAll();
     method public java.lang.String toString();
-    method public final void wait() throws java.lang.InterruptedException;
     method public final void wait(long) throws java.lang.InterruptedException;
     method public final void wait(long, int) throws java.lang.InterruptedException;
+    method public final void wait() throws java.lang.InterruptedException;
   }
 
   public class OutOfMemoryError extends java.lang.VirtualMachineError {
@@ -44866,19 +45055,49 @@
   }
 
   public final class ProcessBuilder {
-    ctor public ProcessBuilder(java.lang.String...);
     ctor public ProcessBuilder(java.util.List<java.lang.String>);
-    method public java.util.List<java.lang.String> command();
-    method public java.lang.ProcessBuilder command(java.lang.String...);
+    ctor public ProcessBuilder(java.lang.String...);
     method public java.lang.ProcessBuilder command(java.util.List<java.lang.String>);
+    method public java.lang.ProcessBuilder command(java.lang.String...);
+    method public java.util.List<java.lang.String> command();
     method public java.io.File directory();
     method public java.lang.ProcessBuilder directory(java.io.File);
     method public java.util.Map<java.lang.String, java.lang.String> environment();
+    method public java.lang.ProcessBuilder inheritIO();
+    method public java.lang.ProcessBuilder redirectError(java.lang.ProcessBuilder.Redirect);
+    method public java.lang.ProcessBuilder redirectError(java.io.File);
+    method public java.lang.ProcessBuilder.Redirect redirectError();
     method public boolean redirectErrorStream();
     method public java.lang.ProcessBuilder redirectErrorStream(boolean);
+    method public java.lang.ProcessBuilder redirectInput(java.lang.ProcessBuilder.Redirect);
+    method public java.lang.ProcessBuilder redirectInput(java.io.File);
+    method public java.lang.ProcessBuilder.Redirect redirectInput();
+    method public java.lang.ProcessBuilder redirectOutput(java.lang.ProcessBuilder.Redirect);
+    method public java.lang.ProcessBuilder redirectOutput(java.io.File);
+    method public java.lang.ProcessBuilder.Redirect redirectOutput();
     method public java.lang.Process start() throws java.io.IOException;
   }
 
+  public static abstract class ProcessBuilder.Redirect {
+    method public static java.lang.ProcessBuilder.Redirect appendTo(java.io.File);
+    method public java.io.File file();
+    method public static java.lang.ProcessBuilder.Redirect from(java.io.File);
+    method public static java.lang.ProcessBuilder.Redirect to(java.io.File);
+    method public abstract java.lang.ProcessBuilder.Redirect.Type type();
+    field public static final java.lang.ProcessBuilder.Redirect INHERIT;
+    field public static final java.lang.ProcessBuilder.Redirect PIPE;
+  }
+
+  public static final class ProcessBuilder.Redirect.Type extends java.lang.Enum {
+    method public static java.lang.ProcessBuilder.Redirect.Type valueOf(java.lang.String);
+    method public static final java.lang.ProcessBuilder.Redirect.Type[] values();
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type APPEND;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type INHERIT;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type PIPE;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type READ;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type WRITE;
+  }
+
   public abstract interface Readable {
     method public abstract int read(java.nio.CharBuffer) throws java.io.IOException;
   }
@@ -44886,8 +45105,8 @@
   public class ReflectiveOperationException extends java.lang.Exception {
     ctor public ReflectiveOperationException();
     ctor public ReflectiveOperationException(java.lang.String);
-    ctor public ReflectiveOperationException(java.lang.Throwable);
     ctor public ReflectiveOperationException(java.lang.String, java.lang.Throwable);
+    ctor public ReflectiveOperationException(java.lang.Throwable);
   }
 
   public abstract interface Runnable {
@@ -44897,12 +45116,12 @@
   public class Runtime {
     method public void addShutdownHook(java.lang.Thread);
     method public int availableProcessors();
-    method public java.lang.Process exec(java.lang.String[]) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String[], java.lang.String[]) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String[], java.lang.String[], java.io.File) throws java.io.IOException;
     method public java.lang.Process exec(java.lang.String) throws java.io.IOException;
     method public java.lang.Process exec(java.lang.String, java.lang.String[]) throws java.io.IOException;
     method public java.lang.Process exec(java.lang.String, java.lang.String[], java.io.File) throws java.io.IOException;
+    method public java.lang.Process exec(java.lang.String[]) throws java.io.IOException;
+    method public java.lang.Process exec(java.lang.String[], java.lang.String[]) throws java.io.IOException;
+    method public java.lang.Process exec(java.lang.String[], java.lang.String[], java.io.File) throws java.io.IOException;
     method public void exit(int);
     method public long freeMemory();
     method public void gc();
@@ -44926,6 +45145,7 @@
     ctor public RuntimeException(java.lang.String);
     ctor public RuntimeException(java.lang.String, java.lang.Throwable);
     ctor public RuntimeException(java.lang.Throwable);
+    ctor protected RuntimeException(java.lang.String, java.lang.Throwable, boolean, boolean);
   }
 
   public final class RuntimePermission extends java.security.BasicPermission {
@@ -44990,8 +45210,8 @@
   }
 
   public final class Short extends java.lang.Number implements java.lang.Comparable {
-    ctor public Short(java.lang.String) throws java.lang.NumberFormatException;
     ctor public Short(short);
+    ctor public Short(java.lang.String) throws java.lang.NumberFormatException;
     method public static int compare(short, short);
     method public int compareTo(java.lang.Short);
     method public static java.lang.Short decode(java.lang.String) throws java.lang.NumberFormatException;
@@ -44999,12 +45219,12 @@
     method public float floatValue();
     method public int intValue();
     method public long longValue();
-    method public static short parseShort(java.lang.String) throws java.lang.NumberFormatException;
     method public static short parseShort(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static short parseShort(java.lang.String) throws java.lang.NumberFormatException;
     method public static short reverseBytes(short);
     method public static java.lang.String toString(short);
-    method public static java.lang.Short valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Short valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Short valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Short valueOf(short);
     field public static final short MAX_VALUE = 32767; // 0x7fff
     field public static final short MIN_VALUE = -32768; // 0xffff8000
@@ -45028,10 +45248,10 @@
 
   public final class StrictMath {
     method public static double IEEEremainder(double, double);
-    method public static double abs(double);
-    method public static float abs(float);
     method public static int abs(int);
     method public static long abs(long);
+    method public static float abs(float);
+    method public static double abs(double);
     method public static double acos(double);
     method public static double asin(double);
     method public static double atan(double);
@@ -45051,14 +45271,14 @@
     method public static double log(double);
     method public static double log10(double);
     method public static double log1p(double);
-    method public static double max(double, double);
-    method public static float max(float, float);
     method public static int max(int, int);
     method public static long max(long, long);
-    method public static double min(double, double);
-    method public static float min(float, float);
+    method public static float max(float, float);
+    method public static double max(double, double);
     method public static int min(int, int);
     method public static long min(long, long);
+    method public static float min(float, float);
+    method public static double min(double, double);
     method public static double nextAfter(double, double);
     method public static float nextAfter(float, double);
     method public static double nextUp(double);
@@ -45066,8 +45286,8 @@
     method public static double pow(double, double);
     method public static double random();
     method public static double rint(double);
-    method public static long round(double);
     method public static int round(float);
+    method public static long round(double);
     method public static double scalb(double, int);
     method public static float scalb(float, int);
     method public static double signum(double);
@@ -45087,19 +45307,19 @@
 
   public final class String implements java.lang.CharSequence java.lang.Comparable java.io.Serializable {
     ctor public String();
-    ctor public String(byte[]);
-    ctor public deprecated String(byte[], int);
-    ctor public String(byte[], int, int);
-    ctor public deprecated String(byte[], int, int, int);
-    ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public String(byte[], int, int, java.nio.charset.Charset);
-    ctor public String(byte[], java.nio.charset.Charset);
+    ctor public String(java.lang.String);
     ctor public String(char[]);
     ctor public String(char[], int, int);
-    ctor public String(java.lang.String);
-    ctor public String(java.lang.StringBuffer);
     ctor public String(int[], int, int);
+    ctor public deprecated String(byte[], int, int, int);
+    ctor public deprecated String(byte[], int);
+    ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public String(byte[], int, int, java.nio.charset.Charset);
+    ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public String(byte[], java.nio.charset.Charset);
+    ctor public String(byte[], int, int);
+    ctor public String(byte[]);
+    ctor public String(java.lang.StringBuffer);
     ctor public String(java.lang.StringBuilder);
     method public char charAt(int);
     method public int codePointAt(int);
@@ -45111,16 +45331,16 @@
     method public boolean contains(java.lang.CharSequence);
     method public boolean contentEquals(java.lang.StringBuffer);
     method public boolean contentEquals(java.lang.CharSequence);
-    method public static java.lang.String copyValueOf(char[]);
     method public static java.lang.String copyValueOf(char[], int, int);
+    method public static java.lang.String copyValueOf(char[]);
     method public boolean endsWith(java.lang.String);
     method public boolean equalsIgnoreCase(java.lang.String);
     method public static java.lang.String format(java.lang.String, java.lang.Object...);
     method public static java.lang.String format(java.util.Locale, java.lang.String, java.lang.Object...);
     method public deprecated void getBytes(int, int, byte[], int);
-    method public byte[] getBytes();
     method public byte[] getBytes(java.lang.String) throws java.io.UnsupportedEncodingException;
     method public byte[] getBytes(java.nio.charset.Charset);
+    method public byte[] getBytes();
     method public void getChars(int, int, char[], int);
     method public int indexOf(int);
     method public int indexOf(int, int);
@@ -45141,109 +45361,51 @@
     method public java.lang.String replace(java.lang.CharSequence, java.lang.CharSequence);
     method public java.lang.String replaceAll(java.lang.String, java.lang.String);
     method public java.lang.String replaceFirst(java.lang.String, java.lang.String);
-    method public java.lang.String[] split(java.lang.String);
     method public java.lang.String[] split(java.lang.String, int);
-    method public boolean startsWith(java.lang.String);
+    method public java.lang.String[] split(java.lang.String);
     method public boolean startsWith(java.lang.String, int);
+    method public boolean startsWith(java.lang.String);
     method public java.lang.CharSequence subSequence(int, int);
     method public java.lang.String substring(int);
     method public java.lang.String substring(int, int);
     method public char[] toCharArray();
-    method public java.lang.String toLowerCase();
     method public java.lang.String toLowerCase(java.util.Locale);
-    method public java.lang.String toUpperCase();
+    method public java.lang.String toLowerCase();
     method public java.lang.String toUpperCase(java.util.Locale);
+    method public java.lang.String toUpperCase();
     method public java.lang.String trim();
+    method public static java.lang.String valueOf(java.lang.Object);
     method public static java.lang.String valueOf(char[]);
     method public static java.lang.String valueOf(char[], int, int);
+    method public static java.lang.String valueOf(boolean);
     method public static java.lang.String valueOf(char);
-    method public static java.lang.String valueOf(double);
-    method public static java.lang.String valueOf(float);
     method public static java.lang.String valueOf(int);
     method public static java.lang.String valueOf(long);
-    method public static java.lang.String valueOf(java.lang.Object);
-    method public static java.lang.String valueOf(boolean);
+    method public static java.lang.String valueOf(float);
+    method public static java.lang.String valueOf(double);
     field public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
   }
 
-  public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+  public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
     ctor public StringBuffer();
     ctor public StringBuffer(int);
     ctor public StringBuffer(java.lang.String);
     ctor public StringBuffer(java.lang.CharSequence);
-    method public java.lang.StringBuffer append(boolean);
-    method public synchronized java.lang.StringBuffer append(char);
-    method public java.lang.StringBuffer append(double);
-    method public java.lang.StringBuffer append(float);
-    method public java.lang.StringBuffer append(int);
-    method public java.lang.StringBuffer append(long);
-    method public synchronized java.lang.StringBuffer append(java.lang.Object);
-    method public synchronized java.lang.StringBuffer append(java.lang.String);
-    method public synchronized java.lang.StringBuffer append(java.lang.StringBuffer);
-    method public synchronized java.lang.StringBuffer append(char[]);
-    method public synchronized java.lang.StringBuffer append(char[], int, int);
-    method public synchronized java.lang.StringBuffer append(java.lang.CharSequence);
-    method public synchronized java.lang.StringBuffer append(java.lang.CharSequence, int, int);
-    method public java.lang.StringBuffer appendCodePoint(int);
-    method public synchronized java.lang.StringBuffer delete(int, int);
-    method public synchronized java.lang.StringBuffer deleteCharAt(int);
-    method public synchronized java.lang.StringBuffer insert(int, char);
-    method public java.lang.StringBuffer insert(int, boolean);
-    method public java.lang.StringBuffer insert(int, int);
-    method public java.lang.StringBuffer insert(int, long);
-    method public java.lang.StringBuffer insert(int, double);
-    method public java.lang.StringBuffer insert(int, float);
-    method public java.lang.StringBuffer insert(int, java.lang.Object);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.String);
-    method public synchronized java.lang.StringBuffer insert(int, char[]);
-    method public synchronized java.lang.StringBuffer insert(int, char[], int, int);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence, int, int);
-    method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
-    method public synchronized java.lang.StringBuffer reverse();
+    method public synchronized java.lang.String toString();
   }
 
-  public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+  public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
     ctor public StringBuilder();
     ctor public StringBuilder(int);
-    ctor public StringBuilder(java.lang.CharSequence);
     ctor public StringBuilder(java.lang.String);
-    method public java.lang.StringBuilder append(boolean);
-    method public java.lang.StringBuilder append(char);
-    method public java.lang.StringBuilder append(int);
-    method public java.lang.StringBuilder append(long);
-    method public java.lang.StringBuilder append(float);
-    method public java.lang.StringBuilder append(double);
-    method public java.lang.StringBuilder append(java.lang.Object);
-    method public java.lang.StringBuilder append(java.lang.String);
-    method public java.lang.StringBuilder append(java.lang.StringBuffer);
-    method public java.lang.StringBuilder append(char[]);
-    method public java.lang.StringBuilder append(char[], int, int);
-    method public java.lang.StringBuilder append(java.lang.CharSequence);
-    method public java.lang.StringBuilder append(java.lang.CharSequence, int, int);
-    method public java.lang.StringBuilder appendCodePoint(int);
-    method public java.lang.StringBuilder delete(int, int);
-    method public java.lang.StringBuilder deleteCharAt(int);
-    method public java.lang.StringBuilder insert(int, boolean);
-    method public java.lang.StringBuilder insert(int, char);
-    method public java.lang.StringBuilder insert(int, int);
-    method public java.lang.StringBuilder insert(int, long);
-    method public java.lang.StringBuilder insert(int, float);
-    method public java.lang.StringBuilder insert(int, double);
-    method public java.lang.StringBuilder insert(int, java.lang.Object);
-    method public java.lang.StringBuilder insert(int, java.lang.String);
-    method public java.lang.StringBuilder insert(int, char[]);
-    method public java.lang.StringBuilder insert(int, char[], int, int);
-    method public java.lang.StringBuilder insert(int, java.lang.CharSequence);
-    method public java.lang.StringBuilder insert(int, java.lang.CharSequence, int, int);
-    method public java.lang.StringBuilder replace(int, int, java.lang.String);
-    method public java.lang.StringBuilder reverse();
+    ctor public StringBuilder(java.lang.CharSequence);
+    method public java.lang.String toString();
   }
 
   public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
     ctor public StringIndexOutOfBoundsException();
-    ctor public StringIndexOutOfBoundsException(int);
     ctor public StringIndexOutOfBoundsException(java.lang.String);
+    ctor public StringIndexOutOfBoundsException(int);
   }
 
   public abstract class SuppressWarnings implements java.lang.annotation.Annotation {
@@ -45285,11 +45447,11 @@
   public class Thread implements java.lang.Runnable {
     ctor public Thread();
     ctor public Thread(java.lang.Runnable);
-    ctor public Thread(java.lang.Runnable, java.lang.String);
-    ctor public Thread(java.lang.String);
     ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable);
-    ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
+    ctor public Thread(java.lang.String);
     ctor public Thread(java.lang.ThreadGroup, java.lang.String);
+    ctor public Thread(java.lang.Runnable, java.lang.String);
+    ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
     ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String, long);
     method public static int activeCount();
     method public final void checkAccess();
@@ -45314,9 +45476,9 @@
     method public final boolean isAlive();
     method public final boolean isDaemon();
     method public boolean isInterrupted();
-    method public final void join() throws java.lang.InterruptedException;
     method public final void join(long) throws java.lang.InterruptedException;
     method public final void join(long, int) throws java.lang.InterruptedException;
+    method public final void join() throws java.lang.InterruptedException;
     method public final deprecated void resume();
     method public void run();
     method public void setContextClassLoader(java.lang.ClassLoader);
@@ -45329,7 +45491,7 @@
     method public static void sleep(long, int) throws java.lang.InterruptedException;
     method public synchronized void start();
     method public final deprecated void stop();
-    method public final deprecated synchronized void stop(java.lang.Throwable);
+    method public final deprecated void stop(java.lang.Throwable);
     method public final deprecated void suspend();
     method public static void yield();
     field public static final int MAX_PRIORITY = 10; // 0xa
@@ -45398,14 +45560,14 @@
     ctor public Throwable(java.lang.String, java.lang.Throwable);
     ctor public Throwable(java.lang.Throwable);
     ctor protected Throwable(java.lang.String, java.lang.Throwable, boolean, boolean);
-    method public final void addSuppressed(java.lang.Throwable);
-    method public java.lang.Throwable fillInStackTrace();
-    method public java.lang.Throwable getCause();
+    method public final synchronized void addSuppressed(java.lang.Throwable);
+    method public synchronized java.lang.Throwable fillInStackTrace();
+    method public synchronized java.lang.Throwable getCause();
     method public java.lang.String getLocalizedMessage();
     method public java.lang.String getMessage();
     method public java.lang.StackTraceElement[] getStackTrace();
-    method public final java.lang.Throwable[] getSuppressed();
-    method public java.lang.Throwable initCause(java.lang.Throwable);
+    method public final synchronized java.lang.Throwable[] getSuppressed();
+    method public synchronized java.lang.Throwable initCause(java.lang.Throwable);
     method public void printStackTrace();
     method public void printStackTrace(java.io.PrintStream);
     method public void printStackTrace(java.io.PrintWriter);
@@ -45526,15 +45688,16 @@
   public abstract class Reference {
     method public void clear();
     method public boolean enqueue();
+    method public final synchronized boolean enqueueInternal();
     method public T get();
     method public boolean isEnqueued();
   }
 
   public class ReferenceQueue {
     ctor public ReferenceQueue();
-    method public synchronized java.lang.ref.Reference<? extends T> poll();
+    method public java.lang.ref.Reference<? extends T> poll();
+    method public java.lang.ref.Reference<? extends T> remove(long) throws java.lang.IllegalArgumentException, java.lang.InterruptedException;
     method public java.lang.ref.Reference<? extends T> remove() throws java.lang.InterruptedException;
-    method public synchronized java.lang.ref.Reference<? extends T> remove(long) throws java.lang.InterruptedException;
   }
 
   public class SoftReference extends java.lang.ref.Reference {
@@ -45558,8 +45721,8 @@
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public boolean isAccessible();
     method public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
-    method public void setAccessible(boolean);
-    method public static void setAccessible(java.lang.reflect.AccessibleObject[], boolean);
+    method public static void setAccessible(java.lang.reflect.AccessibleObject[], boolean) throws java.lang.SecurityException;
+    method public void setAccessible(boolean) throws java.lang.SecurityException;
   }
 
   public abstract interface AnnotatedElement {
@@ -45580,8 +45743,9 @@
     method public static int getLength(java.lang.Object);
     method public static long getLong(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
     method public static short getShort(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static java.lang.Object newInstance(java.lang.Class<?>, int...) throws java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException;
+    method public static java.lang.Object newArray(java.lang.Class<?>, int) throws java.lang.NegativeArraySizeException;
     method public static java.lang.Object newInstance(java.lang.Class<?>, int) throws java.lang.NegativeArraySizeException;
+    method public static java.lang.Object newInstance(java.lang.Class<?>, int...) throws java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException;
     method public static void set(java.lang.Object, int, java.lang.Object) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
     method public static void setBoolean(java.lang.Object, int, boolean);
     method public static void setByte(java.lang.Object, int, byte) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
@@ -45596,7 +45760,6 @@
   public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
     method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
-    method public java.lang.annotation.Annotation[] getAnnotations();
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<T> getDeclaringClass();
     method public java.lang.Class<?>[] getExceptionTypes();
@@ -45683,7 +45846,6 @@
   public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
     method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
-    method public java.lang.annotation.Annotation[] getAnnotations();
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<?> getDeclaringClass();
     method public java.lang.Object getDefaultValue();
@@ -45964,10 +46126,10 @@
     method protected final java.net.InetAddress getRequestingSite();
     method protected java.net.URL getRequestingURL();
     method protected java.net.Authenticator.RequestorType getRequestorType();
-    method public static synchronized java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
-    method public static synchronized java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
+    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
+    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
     method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.net.Authenticator.RequestorType);
-    method public static void setDefault(java.net.Authenticator);
+    method public static synchronized void setDefault(java.net.Authenticator);
   }
 
   public static final class Authenticator.RequestorType extends java.lang.Enum {
@@ -45978,8 +46140,9 @@
   }
 
   public class BindException extends java.net.SocketException {
-    ctor public BindException();
     ctor public BindException(java.lang.String);
+    ctor public BindException();
+    ctor public BindException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract class CacheRequest {
@@ -45995,8 +46158,9 @@
   }
 
   public class ConnectException extends java.net.SocketException {
-    ctor public ConnectException();
     ctor public ConnectException(java.lang.String);
+    ctor public ConnectException();
+    ctor public ConnectException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract class ContentHandler {
@@ -46012,9 +46176,9 @@
   public abstract class CookieHandler {
     ctor public CookieHandler();
     method public abstract java.util.Map<java.lang.String, java.util.List<java.lang.String>> get(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static java.net.CookieHandler getDefault();
+    method public static synchronized java.net.CookieHandler getDefault();
     method public abstract void put(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static void setDefault(java.net.CookieHandler);
+    method public static synchronized void setDefault(java.net.CookieHandler);
   }
 
   public class CookieManager extends java.net.CookieHandler {
@@ -46043,12 +46207,12 @@
   }
 
   public final class DatagramPacket {
-    ctor public DatagramPacket(byte[], int);
     ctor public DatagramPacket(byte[], int, int);
+    ctor public DatagramPacket(byte[], int);
     ctor public DatagramPacket(byte[], int, int, java.net.InetAddress, int);
+    ctor public DatagramPacket(byte[], int, int, java.net.SocketAddress) throws java.net.SocketException;
     ctor public DatagramPacket(byte[], int, java.net.InetAddress, int);
     ctor public DatagramPacket(byte[], int, java.net.SocketAddress) throws java.net.SocketException;
-    ctor public DatagramPacket(byte[], int, int, java.net.SocketAddress) throws java.net.SocketException;
     method public synchronized java.net.InetAddress getAddress();
     method public synchronized byte[] getData();
     method public synchronized int getLength();
@@ -46065,17 +46229,18 @@
 
   public class DatagramSocket implements java.io.Closeable {
     ctor public DatagramSocket() throws java.net.SocketException;
-    ctor public DatagramSocket(int) throws java.net.SocketException;
-    ctor public DatagramSocket(int, java.net.InetAddress) throws java.net.SocketException;
     ctor protected DatagramSocket(java.net.DatagramSocketImpl);
     ctor public DatagramSocket(java.net.SocketAddress) throws java.net.SocketException;
-    method public void bind(java.net.SocketAddress) throws java.net.SocketException;
+    ctor public DatagramSocket(int) throws java.net.SocketException;
+    ctor public DatagramSocket(int, java.net.InetAddress) throws java.net.SocketException;
+    method public synchronized void bind(java.net.SocketAddress) throws java.net.SocketException;
     method public void close();
-    method public void connect(java.net.SocketAddress) throws java.net.SocketException;
     method public void connect(java.net.InetAddress, int);
+    method public void connect(java.net.SocketAddress) throws java.net.SocketException;
     method public void disconnect();
-    method public boolean getBroadcast() throws java.net.SocketException;
+    method public synchronized boolean getBroadcast() throws java.net.SocketException;
     method public java.nio.channels.DatagramChannel getChannel();
+    method public final java.io.FileDescriptor getFileDescriptor$();
     method public java.net.InetAddress getInetAddress();
     method public java.net.InetAddress getLocalAddress();
     method public int getLocalPort();
@@ -46083,22 +46248,22 @@
     method public int getPort();
     method public synchronized int getReceiveBufferSize() throws java.net.SocketException;
     method public java.net.SocketAddress getRemoteSocketAddress();
-    method public boolean getReuseAddress() throws java.net.SocketException;
+    method public synchronized boolean getReuseAddress() throws java.net.SocketException;
     method public synchronized int getSendBufferSize() throws java.net.SocketException;
     method public synchronized int getSoTimeout() throws java.net.SocketException;
-    method public int getTrafficClass() throws java.net.SocketException;
+    method public synchronized int getTrafficClass() throws java.net.SocketException;
     method public boolean isBound();
     method public boolean isClosed();
     method public boolean isConnected();
     method public synchronized void receive(java.net.DatagramPacket) throws java.io.IOException;
     method public void send(java.net.DatagramPacket) throws java.io.IOException;
-    method public void setBroadcast(boolean) throws java.net.SocketException;
+    method public synchronized void setBroadcast(boolean) throws java.net.SocketException;
     method public static synchronized void setDatagramSocketImplFactory(java.net.DatagramSocketImplFactory) throws java.io.IOException;
     method public synchronized void setReceiveBufferSize(int) throws java.net.SocketException;
-    method public void setReuseAddress(boolean) throws java.net.SocketException;
+    method public synchronized void setReuseAddress(boolean) throws java.net.SocketException;
     method public synchronized void setSendBufferSize(int) throws java.net.SocketException;
     method public synchronized void setSoTimeout(int) throws java.net.SocketException;
-    method public void setTrafficClass(int) throws java.net.SocketException;
+    method public synchronized void setTrafficClass(int) throws java.net.SocketException;
   }
 
   public abstract class DatagramSocketImpl implements java.net.SocketOptions {
@@ -46150,11 +46315,14 @@
     method public java.lang.String getValue();
     method public int getVersion();
     method public boolean hasExpired();
+    method public boolean isHttpOnly();
     method public static java.util.List<java.net.HttpCookie> parse(java.lang.String);
+    method public static java.util.List<java.net.HttpCookie> parse(java.lang.String, boolean);
     method public void setComment(java.lang.String);
     method public void setCommentURL(java.lang.String);
     method public void setDiscard(boolean);
     method public void setDomain(java.lang.String);
+    method public void setHttpOnly(boolean);
     method public void setMaxAge(long);
     method public void setPath(java.lang.String);
     method public void setPortlist(java.lang.String);
@@ -46181,8 +46349,8 @@
     method public int getResponseCode() throws java.io.IOException;
     method public java.lang.String getResponseMessage() throws java.io.IOException;
     method public void setChunkedStreamingMode(int);
-    method public void setFixedLengthStreamingMode(long);
     method public void setFixedLengthStreamingMode(int);
+    method public void setFixedLengthStreamingMode(long);
     method public static void setFollowRedirects(boolean);
     method public void setInstanceFollowRedirects(boolean);
     method public void setRequestMethod(java.lang.String) throws java.net.ProtocolException;
@@ -46242,21 +46410,27 @@
   }
 
   public final class Inet4Address extends java.net.InetAddress {
+    field public static final java.net.InetAddress ALL;
+    field public static final java.net.InetAddress ANY;
+    field public static final java.net.InetAddress LOOPBACK;
   }
 
   public final class Inet6Address extends java.net.InetAddress {
-    method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], int) throws java.net.UnknownHostException;
     method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], java.net.NetworkInterface) throws java.net.UnknownHostException;
+    method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], int) throws java.net.UnknownHostException;
     method public int getScopeId();
     method public java.net.NetworkInterface getScopedInterface();
     method public boolean isIPv4CompatibleAddress();
+    field public static final java.net.InetAddress ANY;
+    field public static final java.net.InetAddress LOOPBACK;
   }
 
   public class InetAddress implements java.io.Serializable {
     method public byte[] getAddress();
+    method public byte[] getAddressInternal();
     method public static java.net.InetAddress[] getAllByName(java.lang.String) throws java.net.UnknownHostException;
-    method public static java.net.InetAddress getByAddress(byte[]) throws java.net.UnknownHostException;
     method public static java.net.InetAddress getByAddress(java.lang.String, byte[]) throws java.net.UnknownHostException;
+    method public static java.net.InetAddress getByAddress(byte[]) throws java.net.UnknownHostException;
     method public static java.net.InetAddress getByName(java.lang.String) throws java.net.UnknownHostException;
     method public java.lang.String getCanonicalHostName();
     method public java.lang.String getHostAddress();
@@ -46363,8 +46537,8 @@
   }
 
   public class NoRouteToHostException extends java.net.SocketException {
-    ctor public NoRouteToHostException();
     ctor public NoRouteToHostException(java.lang.String);
+    ctor public NoRouteToHostException();
   }
 
   public final class PasswordAuthentication {
@@ -46374,13 +46548,19 @@
   }
 
   public class PortUnreachableException extends java.net.SocketException {
-    ctor public PortUnreachableException();
     ctor public PortUnreachableException(java.lang.String);
+    ctor public PortUnreachableException();
+    ctor public PortUnreachableException(java.lang.String, java.lang.Throwable);
   }
 
   public class ProtocolException extends java.io.IOException {
-    ctor public ProtocolException();
     ctor public ProtocolException(java.lang.String);
+    ctor public ProtocolException();
+    ctor public ProtocolException(java.lang.String, java.lang.Throwable);
+  }
+
+  public abstract interface ProtocolFamily {
+    method public abstract java.lang.String name();
   }
 
   public class Proxy {
@@ -46411,9 +46591,9 @@
   public abstract class ResponseCache {
     ctor public ResponseCache();
     method public abstract java.net.CacheResponse get(java.net.URI, java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static java.net.ResponseCache getDefault();
+    method public static synchronized java.net.ResponseCache getDefault();
     method public abstract java.net.CacheRequest put(java.net.URI, java.net.URLConnection) throws java.io.IOException;
-    method public static void setDefault(java.net.ResponseCache);
+    method public static synchronized void setDefault(java.net.ResponseCache);
   }
 
   public abstract class SecureCacheResponse extends java.net.CacheResponse {
@@ -46438,14 +46618,14 @@
     method public java.net.InetAddress getInetAddress();
     method public int getLocalPort();
     method public java.net.SocketAddress getLocalSocketAddress();
-    method public int getReceiveBufferSize() throws java.net.SocketException;
+    method public synchronized int getReceiveBufferSize() throws java.net.SocketException;
     method public boolean getReuseAddress() throws java.net.SocketException;
     method public synchronized int getSoTimeout() throws java.io.IOException;
     method protected final void implAccept(java.net.Socket) throws java.io.IOException;
     method public boolean isBound();
     method public boolean isClosed();
     method public void setPerformancePreferences(int, int, int);
-    method public void setReceiveBufferSize(int) throws java.net.SocketException;
+    method public synchronized void setReceiveBufferSize(int) throws java.net.SocketException;
     method public void setReuseAddress(boolean) throws java.net.SocketException;
     method public synchronized void setSoTimeout(int) throws java.net.SocketException;
     method public static synchronized void setSocketFactory(java.net.SocketImplFactory) throws java.io.IOException;
@@ -46454,13 +46634,13 @@
   public class Socket implements java.io.Closeable {
     ctor public Socket();
     ctor public Socket(java.net.Proxy);
-    ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
-    ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
-    ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
-    ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
-    ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
-    ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
     ctor protected Socket(java.net.SocketImpl) throws java.net.SocketException;
+    ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
+    ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
+    ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
+    ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
+    ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
+    ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
     method public void bind(java.net.SocketAddress) throws java.io.IOException;
     method public synchronized void close() throws java.io.IOException;
     method public void connect(java.net.SocketAddress) throws java.io.IOException;
@@ -46509,8 +46689,10 @@
   }
 
   public class SocketException extends java.io.IOException {
-    ctor public SocketException();
     ctor public SocketException(java.lang.String);
+    ctor public SocketException();
+    ctor public SocketException(java.lang.Throwable);
+    ctor public SocketException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract class SocketImpl implements java.net.SocketOptions {
@@ -46523,7 +46705,7 @@
     method protected abstract void connect(java.net.InetAddress, int) throws java.io.IOException;
     method protected abstract void connect(java.net.SocketAddress, int) throws java.io.IOException;
     method protected abstract void create(boolean) throws java.io.IOException;
-    method protected java.io.FileDescriptor getFileDescriptor();
+    method public java.io.FileDescriptor getFileDescriptor();
     method protected java.net.InetAddress getInetAddress();
     method protected abstract java.io.InputStream getInputStream() throws java.io.IOException;
     method protected int getLocalPort();
@@ -46545,6 +46727,11 @@
     method public abstract java.net.SocketImpl createSocketImpl();
   }
 
+  public abstract interface SocketOption {
+    method public abstract java.lang.String name();
+    method public abstract java.lang.Class<T> type();
+  }
+
   public abstract interface SocketOptions {
     method public abstract java.lang.Object getOption(int) throws java.net.SocketException;
     method public abstract void setOption(int, java.lang.Object) throws java.net.SocketException;
@@ -46566,21 +46753,46 @@
 
   public final class SocketPermission extends java.security.Permission implements java.io.Serializable {
     ctor public SocketPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
   public class SocketTimeoutException extends java.io.InterruptedIOException {
-    ctor public SocketTimeoutException();
     ctor public SocketTimeoutException(java.lang.String);
+    ctor public SocketTimeoutException();
+    ctor public SocketTimeoutException(java.lang.Throwable);
+    ctor public SocketTimeoutException(java.lang.String, java.lang.Throwable);
+  }
+
+  public final class StandardProtocolFamily extends java.lang.Enum implements java.net.ProtocolFamily {
+    method public static java.net.StandardProtocolFamily valueOf(java.lang.String);
+    method public static final java.net.StandardProtocolFamily[] values();
+    enum_constant public static final java.net.StandardProtocolFamily INET;
+    enum_constant public static final java.net.StandardProtocolFamily INET6;
+  }
+
+  public final class StandardSocketOptions {
+    field public static final java.net.SocketOption<java.net.NetworkInterface> IP_MULTICAST_IF;
+    field public static final java.net.SocketOption<java.lang.Boolean> IP_MULTICAST_LOOP;
+    field public static final java.net.SocketOption<java.lang.Integer> IP_MULTICAST_TTL;
+    field public static final java.net.SocketOption<java.lang.Integer> IP_TOS;
+    field public static final java.net.SocketOption<java.lang.Boolean> SO_BROADCAST;
+    field public static final java.net.SocketOption<java.lang.Boolean> SO_KEEPALIVE;
+    field public static final java.net.SocketOption<java.lang.Integer> SO_LINGER;
+    field public static final java.net.SocketOption<java.lang.Integer> SO_RCVBUF;
+    field public static final java.net.SocketOption<java.lang.Boolean> SO_REUSEADDR;
+    field public static final java.net.SocketOption<java.lang.Integer> SO_SNDBUF;
+    field public static final java.net.SocketOption<java.lang.Boolean> TCP_NODELAY;
   }
 
   public final class URI implements java.lang.Comparable java.io.Serializable {
     ctor public URI(java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
     ctor public URI(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
     ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+    ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+    ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
     method public int compareTo(java.net.URI);
     method public static java.net.URI create(java.lang.String);
     method public java.lang.String getAuthority();
@@ -46618,12 +46830,12 @@
   }
 
   public final class URL implements java.io.Serializable {
+    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
+    ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
+    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
     ctor public URL(java.lang.String) throws java.net.MalformedURLException;
     ctor public URL(java.net.URL, java.lang.String) throws java.net.MalformedURLException;
     ctor public URL(java.net.URL, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
     method public java.lang.String getAuthority();
     method public final java.lang.Object getContent() throws java.io.IOException;
     method public final java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
@@ -46642,22 +46854,24 @@
     method public boolean sameFile(java.net.URL);
     method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
     method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public static synchronized void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
+    method public static void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
     method public java.lang.String toExternalForm();
     method public java.net.URI toURI() throws java.net.URISyntaxException;
+    method public java.net.URI toURILenient() throws java.net.URISyntaxException;
   }
 
-  public class URLClassLoader extends java.security.SecureClassLoader {
-    ctor public URLClassLoader(java.net.URL[]);
+  public class URLClassLoader extends java.security.SecureClassLoader implements java.io.Closeable {
     ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader);
+    ctor public URLClassLoader(java.net.URL[]);
     ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader, java.net.URLStreamHandlerFactory);
     method protected void addURL(java.net.URL);
+    method public void close() throws java.io.IOException;
     method protected java.lang.Package definePackage(java.lang.String, java.util.jar.Manifest, java.net.URL) throws java.lang.IllegalArgumentException;
     method public java.net.URL findResource(java.lang.String);
     method public java.util.Enumeration<java.net.URL> findResources(java.lang.String) throws java.io.IOException;
     method public java.net.URL[] getURLs();
-    method public static java.net.URLClassLoader newInstance(java.net.URL[]);
     method public static java.net.URLClassLoader newInstance(java.net.URL[], java.lang.ClassLoader);
+    method public static java.net.URLClassLoader newInstance(java.net.URL[]);
   }
 
   public abstract class URLConnection {
@@ -46670,6 +46884,7 @@
     method public java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
     method public java.lang.String getContentEncoding();
     method public int getContentLength();
+    method public long getContentLengthLong();
     method public java.lang.String getContentType();
     method public long getDate();
     method public static boolean getDefaultAllowUserInteraction();
@@ -46678,12 +46893,13 @@
     method public boolean getDoInput();
     method public boolean getDoOutput();
     method public long getExpiration();
-    method public static java.net.FileNameMap getFileNameMap();
-    method public java.lang.String getHeaderField(int);
+    method public static synchronized java.net.FileNameMap getFileNameMap();
     method public java.lang.String getHeaderField(java.lang.String);
+    method public java.lang.String getHeaderField(int);
     method public long getHeaderFieldDate(java.lang.String, long);
     method public int getHeaderFieldInt(java.lang.String, int);
     method public java.lang.String getHeaderFieldKey(int);
+    method public long getHeaderFieldLong(java.lang.String, long);
     method public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getHeaderFields();
     method public long getIfModifiedSince();
     method public java.io.InputStream getInputStream() throws java.io.IOException;
@@ -46734,15 +46950,15 @@
     ctor public URLStreamHandler();
     method protected boolean equals(java.net.URL, java.net.URL);
     method protected int getDefaultPort();
-    method protected java.net.InetAddress getHostAddress(java.net.URL);
+    method protected synchronized java.net.InetAddress getHostAddress(java.net.URL);
     method protected int hashCode(java.net.URL);
     method protected boolean hostsEqual(java.net.URL, java.net.URL);
     method protected abstract java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
     method protected java.net.URLConnection openConnection(java.net.URL, java.net.Proxy) throws java.io.IOException;
     method protected void parseURL(java.net.URL, java.lang.String, int, int);
     method protected boolean sameFile(java.net.URL, java.net.URL);
-    method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
     method protected void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
     method protected java.lang.String toExternalForm(java.net.URL);
   }
 
@@ -46751,8 +46967,8 @@
   }
 
   public class UnknownHostException extends java.io.IOException {
-    ctor public UnknownHostException();
     ctor public UnknownHostException(java.lang.String);
+    ctor public UnknownHostException();
   }
 
   public class UnknownServiceException extends java.io.IOException {
@@ -46808,9 +47024,9 @@
     method public int compareTo(java.nio.ByteBuffer);
     method public abstract java.nio.ByteBuffer duplicate();
     method public abstract byte get();
-    method public java.nio.ByteBuffer get(byte[]);
-    method public java.nio.ByteBuffer get(byte[], int, int);
     method public abstract byte get(int);
+    method public java.nio.ByteBuffer get(byte[], int, int);
+    method public java.nio.ByteBuffer get(byte[]);
     method public abstract char getChar();
     method public abstract char getChar(int);
     method public abstract double getDouble();
@@ -46828,10 +47044,10 @@
     method public final java.nio.ByteOrder order();
     method public final java.nio.ByteBuffer order(java.nio.ByteOrder);
     method public abstract java.nio.ByteBuffer put(byte);
-    method public final java.nio.ByteBuffer put(byte[]);
-    method public java.nio.ByteBuffer put(byte[], int, int);
-    method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
     method public abstract java.nio.ByteBuffer put(int, byte);
+    method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
+    method public java.nio.ByteBuffer put(byte[], int, int);
+    method public final java.nio.ByteBuffer put(byte[]);
     method public abstract java.nio.ByteBuffer putChar(char);
     method public abstract java.nio.ByteBuffer putChar(int, char);
     method public abstract java.nio.ByteBuffer putDouble(double);
@@ -46845,8 +47061,8 @@
     method public abstract java.nio.ByteBuffer putShort(short);
     method public abstract java.nio.ByteBuffer putShort(int, short);
     method public abstract java.nio.ByteBuffer slice();
-    method public static java.nio.ByteBuffer wrap(byte[]);
     method public static java.nio.ByteBuffer wrap(byte[], int, int);
+    method public static java.nio.ByteBuffer wrap(byte[]);
   }
 
   public final class ByteOrder {
@@ -46857,9 +47073,9 @@
 
   public abstract class CharBuffer extends java.nio.Buffer implements java.lang.Appendable java.lang.CharSequence java.lang.Comparable java.lang.Readable {
     method public static java.nio.CharBuffer allocate(int);
-    method public java.nio.CharBuffer append(char);
     method public java.nio.CharBuffer append(java.lang.CharSequence);
     method public java.nio.CharBuffer append(java.lang.CharSequence, int, int);
+    method public java.nio.CharBuffer append(char);
     method public final char[] array();
     method public final int arrayOffset();
     method public abstract java.nio.CharBuffer asReadOnlyBuffer();
@@ -46868,27 +47084,27 @@
     method public int compareTo(java.nio.CharBuffer);
     method public abstract java.nio.CharBuffer duplicate();
     method public abstract char get();
-    method public java.nio.CharBuffer get(char[]);
-    method public java.nio.CharBuffer get(char[], int, int);
     method public abstract char get(int);
+    method public java.nio.CharBuffer get(char[], int, int);
+    method public java.nio.CharBuffer get(char[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public final int length();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.CharBuffer put(char);
-    method public final java.nio.CharBuffer put(char[]);
-    method public java.nio.CharBuffer put(char[], int, int);
-    method public java.nio.CharBuffer put(java.nio.CharBuffer);
     method public abstract java.nio.CharBuffer put(int, char);
-    method public final java.nio.CharBuffer put(java.lang.String);
+    method public java.nio.CharBuffer put(java.nio.CharBuffer);
+    method public java.nio.CharBuffer put(char[], int, int);
+    method public final java.nio.CharBuffer put(char[]);
     method public java.nio.CharBuffer put(java.lang.String, int, int);
+    method public final java.nio.CharBuffer put(java.lang.String);
     method public int read(java.nio.CharBuffer) throws java.io.IOException;
     method public abstract java.nio.CharBuffer slice();
     method public abstract java.nio.CharBuffer subSequence(int, int);
-    method public static java.nio.CharBuffer wrap(char[]);
     method public static java.nio.CharBuffer wrap(char[], int, int);
-    method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
+    method public static java.nio.CharBuffer wrap(char[]);
     method public static java.nio.CharBuffer wrap(java.lang.CharSequence, int, int);
+    method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
   }
 
   public abstract class DoubleBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -46900,20 +47116,20 @@
     method public int compareTo(java.nio.DoubleBuffer);
     method public abstract java.nio.DoubleBuffer duplicate();
     method public abstract double get();
-    method public java.nio.DoubleBuffer get(double[]);
-    method public java.nio.DoubleBuffer get(double[], int, int);
     method public abstract double get(int);
+    method public java.nio.DoubleBuffer get(double[], int, int);
+    method public java.nio.DoubleBuffer get(double[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.DoubleBuffer put(double);
-    method public final java.nio.DoubleBuffer put(double[]);
-    method public java.nio.DoubleBuffer put(double[], int, int);
-    method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
     method public abstract java.nio.DoubleBuffer put(int, double);
+    method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
+    method public java.nio.DoubleBuffer put(double[], int, int);
+    method public final java.nio.DoubleBuffer put(double[]);
     method public abstract java.nio.DoubleBuffer slice();
-    method public static java.nio.DoubleBuffer wrap(double[]);
     method public static java.nio.DoubleBuffer wrap(double[], int, int);
+    method public static java.nio.DoubleBuffer wrap(double[]);
   }
 
   public abstract class FloatBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -46925,20 +47141,20 @@
     method public int compareTo(java.nio.FloatBuffer);
     method public abstract java.nio.FloatBuffer duplicate();
     method public abstract float get();
-    method public java.nio.FloatBuffer get(float[]);
-    method public java.nio.FloatBuffer get(float[], int, int);
     method public abstract float get(int);
+    method public java.nio.FloatBuffer get(float[], int, int);
+    method public java.nio.FloatBuffer get(float[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.FloatBuffer put(float);
-    method public final java.nio.FloatBuffer put(float[]);
-    method public java.nio.FloatBuffer put(float[], int, int);
-    method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
     method public abstract java.nio.FloatBuffer put(int, float);
+    method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
+    method public java.nio.FloatBuffer put(float[], int, int);
+    method public final java.nio.FloatBuffer put(float[]);
     method public abstract java.nio.FloatBuffer slice();
-    method public static java.nio.FloatBuffer wrap(float[]);
     method public static java.nio.FloatBuffer wrap(float[], int, int);
+    method public static java.nio.FloatBuffer wrap(float[]);
   }
 
   public abstract class IntBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -46950,20 +47166,20 @@
     method public int compareTo(java.nio.IntBuffer);
     method public abstract java.nio.IntBuffer duplicate();
     method public abstract int get();
-    method public java.nio.IntBuffer get(int[]);
-    method public java.nio.IntBuffer get(int[], int, int);
     method public abstract int get(int);
+    method public java.nio.IntBuffer get(int[], int, int);
+    method public java.nio.IntBuffer get(int[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.IntBuffer put(int);
-    method public final java.nio.IntBuffer put(int[]);
-    method public java.nio.IntBuffer put(int[], int, int);
-    method public java.nio.IntBuffer put(java.nio.IntBuffer);
     method public abstract java.nio.IntBuffer put(int, int);
+    method public java.nio.IntBuffer put(java.nio.IntBuffer);
+    method public java.nio.IntBuffer put(int[], int, int);
+    method public final java.nio.IntBuffer put(int[]);
     method public abstract java.nio.IntBuffer slice();
-    method public static java.nio.IntBuffer wrap(int[]);
     method public static java.nio.IntBuffer wrap(int[], int, int);
+    method public static java.nio.IntBuffer wrap(int[]);
   }
 
   public class InvalidMarkException extends java.lang.IllegalStateException {
@@ -46979,20 +47195,20 @@
     method public int compareTo(java.nio.LongBuffer);
     method public abstract java.nio.LongBuffer duplicate();
     method public abstract long get();
-    method public java.nio.LongBuffer get(long[]);
-    method public java.nio.LongBuffer get(long[], int, int);
     method public abstract long get(int);
+    method public java.nio.LongBuffer get(long[], int, int);
+    method public java.nio.LongBuffer get(long[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.LongBuffer put(long);
-    method public final java.nio.LongBuffer put(long[]);
-    method public java.nio.LongBuffer put(long[], int, int);
-    method public java.nio.LongBuffer put(java.nio.LongBuffer);
     method public abstract java.nio.LongBuffer put(int, long);
+    method public java.nio.LongBuffer put(java.nio.LongBuffer);
+    method public java.nio.LongBuffer put(long[], int, int);
+    method public final java.nio.LongBuffer put(long[]);
     method public abstract java.nio.LongBuffer slice();
-    method public static java.nio.LongBuffer wrap(long[]);
     method public static java.nio.LongBuffer wrap(long[], int, int);
+    method public static java.nio.LongBuffer wrap(long[]);
   }
 
   public abstract class MappedByteBuffer extends java.nio.ByteBuffer {
@@ -47014,34 +47230,119 @@
     method public int compareTo(java.nio.ShortBuffer);
     method public abstract java.nio.ShortBuffer duplicate();
     method public abstract short get();
-    method public java.nio.ShortBuffer get(short[]);
-    method public java.nio.ShortBuffer get(short[], int, int);
     method public abstract short get(int);
+    method public java.nio.ShortBuffer get(short[], int, int);
+    method public java.nio.ShortBuffer get(short[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.ShortBuffer put(short);
-    method public final java.nio.ShortBuffer put(short[]);
-    method public java.nio.ShortBuffer put(short[], int, int);
-    method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
     method public abstract java.nio.ShortBuffer put(int, short);
+    method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
+    method public java.nio.ShortBuffer put(short[], int, int);
+    method public final java.nio.ShortBuffer put(short[]);
     method public abstract java.nio.ShortBuffer slice();
-    method public static java.nio.ShortBuffer wrap(short[]);
     method public static java.nio.ShortBuffer wrap(short[], int, int);
+    method public static java.nio.ShortBuffer wrap(short[]);
   }
 
 }
 
 package java.nio.channels {
 
+  public class AcceptPendingException extends java.lang.IllegalStateException {
+    ctor public AcceptPendingException();
+  }
+
+  public class AlreadyBoundException extends java.lang.IllegalStateException {
+    ctor public AlreadyBoundException();
+  }
+
   public class AlreadyConnectedException extends java.lang.IllegalStateException {
     ctor public AlreadyConnectedException();
   }
 
+  public abstract interface AsynchronousByteChannel implements java.nio.channels.AsynchronousChannel {
+    method public abstract void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+    method public abstract void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+  }
+
+  public abstract interface AsynchronousChannel implements java.nio.channels.Channel {
+    method public abstract void close() throws java.io.IOException;
+  }
+
+  public abstract class AsynchronousChannelGroup {
+    ctor protected AsynchronousChannelGroup(java.nio.channels.spi.AsynchronousChannelProvider);
+    method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public abstract boolean isShutdown();
+    method public abstract boolean isTerminated();
+    method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+    method public abstract void shutdown();
+    method public abstract void shutdownNow() throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousChannelGroup withCachedThreadPool(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousChannelGroup withFixedThreadPool(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousChannelGroup withThreadPool(java.util.concurrent.ExecutorService) throws java.io.IOException;
+  }
+
   public class AsynchronousCloseException extends java.nio.channels.ClosedChannelException {
     ctor public AsynchronousCloseException();
   }
 
+  public abstract class AsynchronousFileChannel implements java.nio.channels.AsynchronousChannel {
+    ctor protected AsynchronousFileChannel();
+    method public abstract void force(boolean) throws java.io.IOException;
+    method public abstract void lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+    method public final void lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+    method public abstract java.util.concurrent.Future<java.nio.channels.FileLock> lock(long, long, boolean);
+    method public final java.util.concurrent.Future<java.nio.channels.FileLock> lock();
+    method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public abstract void read(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer, long);
+    method public abstract long size() throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousFileChannel truncate(long) throws java.io.IOException;
+    method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+    method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
+    method public abstract void write(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer, long);
+  }
+
+  public abstract class AsynchronousServerSocketChannel implements java.nio.channels.AsynchronousChannel java.nio.channels.NetworkChannel {
+    ctor protected AsynchronousServerSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+    method public abstract void accept(A, java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel, ? super A>);
+    method public abstract java.util.concurrent.Future<java.nio.channels.AsynchronousSocketChannel> accept();
+    method public final java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousServerSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousServerSocketChannel open() throws java.io.IOException;
+    method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+    method public abstract java.nio.channels.AsynchronousServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+  }
+
+  public abstract class AsynchronousSocketChannel implements java.nio.channels.AsynchronousByteChannel java.nio.channels.NetworkChannel {
+    ctor protected AsynchronousSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+    method public abstract java.nio.channels.AsynchronousSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract void connect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Void> connect(java.net.SocketAddress);
+    method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousSocketChannel open() throws java.io.IOException;
+    method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+    method public abstract void read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public final void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+    method public abstract void read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+    method public abstract java.nio.channels.AsynchronousSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousSocketChannel shutdownInput() throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousSocketChannel shutdownOutput() throws java.io.IOException;
+    method public abstract void write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public final void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+    method public abstract void write(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+  }
+
   public abstract interface ByteChannel implements java.nio.channels.ReadableByteChannel java.nio.channels.WritableByteChannel {
   }
 
@@ -47058,7 +47359,9 @@
     method public static java.nio.channels.ReadableByteChannel newChannel(java.io.InputStream);
     method public static java.nio.channels.WritableByteChannel newChannel(java.io.OutputStream);
     method public static java.io.InputStream newInputStream(java.nio.channels.ReadableByteChannel);
+    method public static java.io.InputStream newInputStream(java.nio.channels.AsynchronousByteChannel);
     method public static java.io.OutputStream newOutputStream(java.nio.channels.WritableByteChannel);
+    method public static java.io.OutputStream newOutputStream(java.nio.channels.AsynchronousByteChannel);
     method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int);
     method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.lang.String);
     method public static java.io.Writer newWriter(java.nio.channels.WritableByteChannel, java.nio.charset.CharsetEncoder, int);
@@ -47077,50 +47380,61 @@
     ctor public ClosedSelectorException();
   }
 
+  public abstract interface CompletionHandler {
+    method public abstract void completed(V, A);
+    method public abstract void failed(java.lang.Throwable, A);
+  }
+
   public class ConnectionPendingException extends java.lang.IllegalStateException {
     ctor public ConnectionPendingException();
   }
 
-  public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+  public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.MulticastChannel java.nio.channels.ScatteringByteChannel {
     ctor protected DatagramChannel(java.nio.channels.spi.SelectorProvider);
+    method public abstract java.nio.channels.DatagramChannel bind(java.net.SocketAddress) throws java.io.IOException;
     method public abstract java.nio.channels.DatagramChannel connect(java.net.SocketAddress) throws java.io.IOException;
     method public abstract java.nio.channels.DatagramChannel disconnect() throws java.io.IOException;
+    method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
     method public abstract boolean isConnected();
     method public static java.nio.channels.DatagramChannel open() throws java.io.IOException;
+    method public static java.nio.channels.DatagramChannel open(java.net.ProtocolFamily) throws java.io.IOException;
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract java.net.SocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract int send(java.nio.ByteBuffer, java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
     method public abstract java.net.DatagramSocket socket();
     method public final int validOps();
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
-  public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+  public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel java.nio.channels.SeekableByteChannel {
     ctor protected FileChannel();
     method public abstract void force(boolean) throws java.io.IOException;
-    method public final java.nio.channels.FileLock lock() throws java.io.IOException;
     method public abstract java.nio.channels.FileLock lock(long, long, boolean) throws java.io.IOException;
+    method public final java.nio.channels.FileLock lock() throws java.io.IOException;
     method public abstract java.nio.MappedByteBuffer map(java.nio.channels.FileChannel.MapMode, long, long) throws java.io.IOException;
+    method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
     method public abstract long position() throws java.io.IOException;
     method public abstract java.nio.channels.FileChannel position(long) throws java.io.IOException;
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
-    method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
-    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
     method public abstract long size() throws java.io.IOException;
     method public abstract long transferFrom(java.nio.channels.ReadableByteChannel, long, long) throws java.io.IOException;
     method public abstract long transferTo(long, long, java.nio.channels.WritableByteChannel) throws java.io.IOException;
     method public abstract java.nio.channels.FileChannel truncate(long) throws java.io.IOException;
-    method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
     method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+    method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
-    method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
-    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
   }
 
   public static class FileChannel.MapMode {
@@ -47131,6 +47445,8 @@
 
   public abstract class FileLock implements java.lang.AutoCloseable {
     ctor protected FileLock(java.nio.channels.FileChannel, long, long, boolean);
+    ctor protected FileLock(java.nio.channels.AsynchronousFileChannel, long, long, boolean);
+    method public java.nio.channels.Channel acquiredBy();
     method public final java.nio.channels.FileChannel channel();
     method public final void close() throws java.io.IOException;
     method public final boolean isShared();
@@ -47147,22 +47463,56 @@
   }
 
   public abstract interface GatheringByteChannel implements java.nio.channels.WritableByteChannel {
-    method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
   public class IllegalBlockingModeException extends java.lang.IllegalStateException {
     ctor public IllegalBlockingModeException();
   }
 
+  public class IllegalChannelGroupException extends java.lang.IllegalArgumentException {
+    ctor public IllegalChannelGroupException();
+  }
+
   public class IllegalSelectorException extends java.lang.IllegalArgumentException {
     ctor public IllegalSelectorException();
   }
 
+  public class InterruptedByTimeoutException extends java.io.IOException {
+    ctor public InterruptedByTimeoutException();
+  }
+
   public abstract interface InterruptibleChannel implements java.nio.channels.Channel {
     method public abstract void close() throws java.io.IOException;
   }
 
+  public abstract class MembershipKey {
+    ctor protected MembershipKey();
+    method public abstract java.nio.channels.MembershipKey block(java.net.InetAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.MulticastChannel channel();
+    method public abstract void drop();
+    method public abstract java.net.InetAddress group();
+    method public abstract boolean isValid();
+    method public abstract java.net.NetworkInterface networkInterface();
+    method public abstract java.net.InetAddress sourceAddress();
+    method public abstract java.nio.channels.MembershipKey unblock(java.net.InetAddress);
+  }
+
+  public abstract interface MulticastChannel implements java.nio.channels.NetworkChannel {
+    method public abstract void close() throws java.io.IOException;
+    method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface) throws java.io.IOException;
+    method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress) throws java.io.IOException;
+  }
+
+  public abstract interface NetworkChannel implements java.nio.channels.Channel {
+    method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException;
+    method public abstract T getOption(java.net.SocketOption<T>) throws java.io.IOException;
+    method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+    method public abstract java.util.Set<java.net.SocketOption<?>> supportedOptions();
+  }
+
   public class NoConnectionPendingException extends java.lang.IllegalStateException {
     ctor public NoConnectionPendingException();
   }
@@ -47204,13 +47554,26 @@
     method public final int validOps();
   }
 
+  public class ReadPendingException extends java.lang.IllegalStateException {
+    ctor public ReadPendingException();
+  }
+
   public abstract interface ReadableByteChannel implements java.nio.channels.Channel {
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
   public abstract interface ScatteringByteChannel implements java.nio.channels.ReadableByteChannel {
-    method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+  }
+
+  public abstract interface SeekableByteChannel implements java.nio.channels.ByteChannel {
+    method public abstract long position() throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel position(long) throws java.io.IOException;
+    method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
+    method public abstract long size() throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel truncate(long) throws java.io.IOException;
+    method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
   public abstract class SelectableChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.Channel {
@@ -47221,8 +47584,8 @@
     method public abstract boolean isRegistered();
     method public abstract java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
     method public abstract java.nio.channels.spi.SelectorProvider provider();
-    method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
     method public abstract java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
+    method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
     method public abstract int validOps();
   }
 
@@ -47254,37 +47617,49 @@
     method public abstract java.util.Set<java.nio.channels.SelectionKey> keys();
     method public static java.nio.channels.Selector open() throws java.io.IOException;
     method public abstract java.nio.channels.spi.SelectorProvider provider();
-    method public abstract int select() throws java.io.IOException;
     method public abstract int select(long) throws java.io.IOException;
+    method public abstract int select() throws java.io.IOException;
     method public abstract int selectNow() throws java.io.IOException;
     method public abstract java.util.Set<java.nio.channels.SelectionKey> selectedKeys();
     method public abstract java.nio.channels.Selector wakeup();
   }
 
-  public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel {
+  public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.NetworkChannel {
     ctor protected ServerSocketChannel(java.nio.channels.spi.SelectorProvider);
     method public abstract java.nio.channels.SocketChannel accept() throws java.io.IOException;
+    method public final java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
     method public static java.nio.channels.ServerSocketChannel open() throws java.io.IOException;
+    method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
     method public abstract java.net.ServerSocket socket();
     method public final int validOps();
   }
 
-  public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+  public class ShutdownChannelGroupException extends java.lang.IllegalStateException {
+    ctor public ShutdownChannelGroupException();
+  }
+
+  public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.NetworkChannel java.nio.channels.ScatteringByteChannel {
     ctor protected SocketChannel(java.nio.channels.spi.SelectorProvider);
+    method public abstract java.nio.channels.SocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
     method public abstract boolean connect(java.net.SocketAddress) throws java.io.IOException;
     method public abstract boolean finishConnect() throws java.io.IOException;
+    method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
     method public abstract boolean isConnected();
     method public abstract boolean isConnectionPending();
     method public static java.nio.channels.SocketChannel open() throws java.io.IOException;
     method public static java.nio.channels.SocketChannel open(java.net.SocketAddress) throws java.io.IOException;
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+    method public abstract java.nio.channels.SocketChannel shutdownInput() throws java.io.IOException;
+    method public abstract java.nio.channels.SocketChannel shutdownOutput() throws java.io.IOException;
     method public abstract java.net.Socket socket();
     method public final int validOps();
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
   public class UnresolvedAddressException extends java.lang.IllegalArgumentException {
@@ -47299,6 +47674,10 @@
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
+  public class WritePendingException extends java.lang.IllegalStateException {
+    ctor public WritePendingException();
+  }
+
 }
 
 package java.nio.channels.spi {
@@ -47309,19 +47688,19 @@
     method public final void close() throws java.io.IOException;
     method protected final void end(boolean) throws java.nio.channels.AsynchronousCloseException;
     method protected abstract void implCloseChannel() throws java.io.IOException;
-    method public final synchronized boolean isOpen();
+    method public final boolean isOpen();
   }
 
   public abstract class AbstractSelectableChannel extends java.nio.channels.SelectableChannel {
     ctor protected AbstractSelectableChannel(java.nio.channels.spi.SelectorProvider);
     method public final java.lang.Object blockingLock();
     method public final java.nio.channels.SelectableChannel configureBlocking(boolean) throws java.io.IOException;
-    method protected final synchronized void implCloseChannel() throws java.io.IOException;
+    method protected final void implCloseChannel() throws java.io.IOException;
     method protected abstract void implCloseSelectableChannel() throws java.io.IOException;
     method protected abstract void implConfigureBlocking(boolean) throws java.io.IOException;
     method public final boolean isBlocking();
-    method public final synchronized boolean isRegistered();
-    method public final synchronized java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
+    method public final boolean isRegistered();
+    method public final java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
     method public final java.nio.channels.spi.SelectorProvider provider();
     method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
   }
@@ -47345,15 +47724,25 @@
     method protected abstract java.nio.channels.SelectionKey register(java.nio.channels.spi.AbstractSelectableChannel, int, java.lang.Object);
   }
 
+  public abstract class AsynchronousChannelProvider {
+    ctor protected AsynchronousChannelProvider();
+    method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousSocketChannel openAsynchronousSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public static java.nio.channels.spi.AsynchronousChannelProvider provider();
+  }
+
   public abstract class SelectorProvider {
     ctor protected SelectorProvider();
     method public java.nio.channels.Channel inheritedChannel() throws java.io.IOException;
     method public abstract java.nio.channels.DatagramChannel openDatagramChannel() throws java.io.IOException;
+    method public abstract java.nio.channels.DatagramChannel openDatagramChannel(java.net.ProtocolFamily) throws java.io.IOException;
     method public abstract java.nio.channels.Pipe openPipe() throws java.io.IOException;
     method public abstract java.nio.channels.spi.AbstractSelector openSelector() throws java.io.IOException;
     method public abstract java.nio.channels.ServerSocketChannel openServerSocketChannel() throws java.io.IOException;
     method public abstract java.nio.channels.SocketChannel openSocketChannel() throws java.io.IOException;
-    method public static synchronized java.nio.channels.spi.SelectorProvider provider();
+    method public static java.nio.channels.spi.SelectorProvider provider();
   }
 
 }
@@ -47392,8 +47781,8 @@
     ctor protected CharsetDecoder(java.nio.charset.Charset, float, float);
     method public final float averageCharsPerByte();
     method public final java.nio.charset.Charset charset();
-    method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
     method public final java.nio.charset.CoderResult decode(java.nio.ByteBuffer, java.nio.CharBuffer, boolean);
+    method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
     method protected abstract java.nio.charset.CoderResult decodeLoop(java.nio.ByteBuffer, java.nio.CharBuffer);
     method public java.nio.charset.Charset detectedCharset();
     method public final java.nio.charset.CoderResult flush(java.nio.CharBuffer);
@@ -47415,14 +47804,14 @@
   }
 
   public abstract class CharsetEncoder {
-    ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
     ctor protected CharsetEncoder(java.nio.charset.Charset, float, float, byte[]);
+    ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
     method public final float averageBytesPerChar();
     method public boolean canEncode(char);
     method public boolean canEncode(java.lang.CharSequence);
     method public final java.nio.charset.Charset charset();
-    method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
     method public final java.nio.charset.CoderResult encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean);
+    method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
     method protected abstract java.nio.charset.CoderResult encodeLoop(java.nio.CharBuffer, java.nio.ByteBuffer);
     method public final java.nio.charset.CoderResult flush(java.nio.ByteBuffer);
     method protected java.nio.charset.CoderResult implFlush(java.nio.ByteBuffer);
@@ -47451,10 +47840,10 @@
     method public boolean isOverflow();
     method public boolean isUnderflow();
     method public boolean isUnmappable();
-    method public int length() throws java.lang.UnsupportedOperationException;
-    method public static synchronized java.nio.charset.CoderResult malformedForLength(int) throws java.lang.IllegalArgumentException;
-    method public void throwException() throws java.nio.BufferOverflowException, java.nio.BufferUnderflowException, java.nio.charset.CharacterCodingException, java.nio.charset.MalformedInputException, java.nio.charset.UnmappableCharacterException;
-    method public static synchronized java.nio.charset.CoderResult unmappableForLength(int) throws java.lang.IllegalArgumentException;
+    method public int length();
+    method public static java.nio.charset.CoderResult malformedForLength(int);
+    method public void throwException() throws java.nio.charset.CharacterCodingException;
+    method public static java.nio.charset.CoderResult unmappableForLength(int);
     field public static final java.nio.charset.CoderResult OVERFLOW;
     field public static final java.nio.charset.CoderResult UNDERFLOW;
   }
@@ -47506,11 +47895,597 @@
 
 }
 
+package java.nio.file {
+
+  public class AccessDeniedException extends java.nio.file.FileSystemException {
+    ctor public AccessDeniedException(java.lang.String);
+    ctor public AccessDeniedException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public final class AccessMode extends java.lang.Enum {
+    method public static java.nio.file.AccessMode valueOf(java.lang.String);
+    method public static final java.nio.file.AccessMode[] values();
+    enum_constant public static final java.nio.file.AccessMode EXECUTE;
+    enum_constant public static final java.nio.file.AccessMode READ;
+    enum_constant public static final java.nio.file.AccessMode WRITE;
+  }
+
+  public class AtomicMoveNotSupportedException extends java.nio.file.FileSystemException {
+    ctor public AtomicMoveNotSupportedException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public class ClosedDirectoryStreamException extends java.lang.IllegalStateException {
+    ctor public ClosedDirectoryStreamException();
+  }
+
+  public class ClosedFileSystemException extends java.lang.IllegalStateException {
+    ctor public ClosedFileSystemException();
+  }
+
+  public class ClosedWatchServiceException extends java.lang.IllegalStateException {
+    ctor public ClosedWatchServiceException();
+  }
+
+  public abstract interface CopyOption {
+  }
+
+  public final class DirectoryIteratorException extends java.util.ConcurrentModificationException {
+    ctor public DirectoryIteratorException(java.io.IOException);
+  }
+
+  public class DirectoryNotEmptyException extends java.nio.file.FileSystemException {
+    ctor public DirectoryNotEmptyException(java.lang.String);
+  }
+
+  public abstract interface DirectoryStream implements java.io.Closeable java.lang.Iterable {
+    method public abstract java.util.Iterator<T> iterator();
+  }
+
+  public static abstract interface DirectoryStream.Filter {
+    method public abstract boolean accept(T) throws java.io.IOException;
+  }
+
+  public class FileAlreadyExistsException extends java.nio.file.FileSystemException {
+    ctor public FileAlreadyExistsException(java.lang.String);
+    ctor public FileAlreadyExistsException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public abstract class FileStore {
+    ctor protected FileStore();
+    method public abstract java.lang.Object getAttribute(java.lang.String) throws java.io.IOException;
+    method public abstract V getFileStoreAttributeView(java.lang.Class<V>);
+    method public abstract long getTotalSpace() throws java.io.IOException;
+    method public abstract long getUnallocatedSpace() throws java.io.IOException;
+    method public abstract long getUsableSpace() throws java.io.IOException;
+    method public abstract boolean isReadOnly();
+    method public abstract java.lang.String name();
+    method public abstract boolean supportsFileAttributeView(java.lang.Class<? extends java.nio.file.attribute.FileAttributeView>);
+    method public abstract boolean supportsFileAttributeView(java.lang.String);
+    method public abstract java.lang.String type();
+  }
+
+  public abstract class FileSystem implements java.io.Closeable {
+    ctor protected FileSystem();
+    method public abstract void close() throws java.io.IOException;
+    method public abstract java.lang.Iterable<java.nio.file.FileStore> getFileStores();
+    method public abstract java.nio.file.Path getPath(java.lang.String, java.lang.String...);
+    method public abstract java.nio.file.PathMatcher getPathMatcher(java.lang.String);
+    method public abstract java.lang.Iterable<java.nio.file.Path> getRootDirectories();
+    method public abstract java.lang.String getSeparator();
+    method public abstract java.nio.file.attribute.UserPrincipalLookupService getUserPrincipalLookupService();
+    method public abstract boolean isOpen();
+    method public abstract boolean isReadOnly();
+    method public abstract java.nio.file.WatchService newWatchService() throws java.io.IOException;
+    method public abstract java.nio.file.spi.FileSystemProvider provider();
+    method public abstract java.util.Set<java.lang.String> supportedFileAttributeViews();
+  }
+
+  public class FileSystemAlreadyExistsException extends java.lang.RuntimeException {
+    ctor public FileSystemAlreadyExistsException();
+    ctor public FileSystemAlreadyExistsException(java.lang.String);
+  }
+
+  public class FileSystemException extends java.io.IOException {
+    ctor public FileSystemException(java.lang.String);
+    ctor public FileSystemException(java.lang.String, java.lang.String, java.lang.String);
+    method public java.lang.String getFile();
+    method public java.lang.String getOtherFile();
+    method public java.lang.String getReason();
+  }
+
+  public class FileSystemLoopException extends java.nio.file.FileSystemException {
+    ctor public FileSystemLoopException(java.lang.String);
+  }
+
+  public class FileSystemNotFoundException extends java.lang.RuntimeException {
+    ctor public FileSystemNotFoundException();
+    ctor public FileSystemNotFoundException(java.lang.String);
+  }
+
+  public final class FileSystems {
+    method public static java.nio.file.FileSystem getDefault();
+    method public static java.nio.file.FileSystem getFileSystem(java.net.URI);
+    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>, java.lang.ClassLoader) throws java.io.IOException;
+    method public static java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.lang.ClassLoader) throws java.io.IOException;
+  }
+
+  public final class FileVisitOption extends java.lang.Enum {
+    method public static java.nio.file.FileVisitOption valueOf(java.lang.String);
+    method public static final java.nio.file.FileVisitOption[] values();
+    enum_constant public static final java.nio.file.FileVisitOption FOLLOW_LINKS;
+  }
+
+  public final class FileVisitResult extends java.lang.Enum {
+    method public static java.nio.file.FileVisitResult valueOf(java.lang.String);
+    method public static final java.nio.file.FileVisitResult[] values();
+    enum_constant public static final java.nio.file.FileVisitResult CONTINUE;
+    enum_constant public static final java.nio.file.FileVisitResult SKIP_SIBLINGS;
+    enum_constant public static final java.nio.file.FileVisitResult SKIP_SUBTREE;
+    enum_constant public static final java.nio.file.FileVisitResult TERMINATE;
+  }
+
+  public abstract interface FileVisitor {
+    method public abstract java.nio.file.FileVisitResult postVisitDirectory(T, java.io.IOException) throws java.io.IOException;
+    method public abstract java.nio.file.FileVisitResult preVisitDirectory(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+    method public abstract java.nio.file.FileVisitResult visitFile(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+    method public abstract java.nio.file.FileVisitResult visitFileFailed(T, java.io.IOException) throws java.io.IOException;
+  }
+
+  public final class Files {
+    method public static java.nio.file.Path copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public static long copy(java.io.InputStream, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public static long copy(java.nio.file.Path, java.io.OutputStream) throws java.io.IOException;
+    method public static java.nio.file.Path createDirectories(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createFile(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.Path createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempDirectory(java.nio.file.Path, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempDirectory(java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempFile(java.nio.file.Path, java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempFile(java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static void delete(java.nio.file.Path) throws java.io.IOException;
+    method public static boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+    method public static boolean exists(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static java.lang.Object getAttribute(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public static java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.attribute.FileTime getLastModifiedTime(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.nio.file.attribute.UserPrincipal getOwner(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> getPosixFilePermissions(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static boolean isDirectory(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static boolean isExecutable(java.nio.file.Path);
+    method public static boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+    method public static boolean isReadable(java.nio.file.Path);
+    method public static boolean isRegularFile(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public static boolean isSymbolicLink(java.nio.file.Path);
+    method public static boolean isWritable(java.nio.file.Path);
+    method public static java.nio.file.Path move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public static java.io.BufferedReader newBufferedReader(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+    method public static java.io.BufferedWriter newBufferedWriter(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+    method public static java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static boolean notExists(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+    method public static byte[] readAllBytes(java.nio.file.Path) throws java.io.IOException;
+    method public static java.util.List<java.lang.String> readAllLines(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+    method public static A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.Path setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.nio.file.Path setLastModifiedTime(java.nio.file.Path, java.nio.file.attribute.FileTime) throws java.io.IOException;
+    method public static java.nio.file.Path setOwner(java.nio.file.Path, java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+    method public static java.nio.file.Path setPosixFilePermissions(java.nio.file.Path, java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+    method public static long size(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.util.Set<java.nio.file.FileVisitOption>, int, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+    method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+    method public static java.nio.file.Path write(java.nio.file.Path, byte[], java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.file.Path write(java.nio.file.Path, java.lang.Iterable<? extends java.lang.CharSequence>, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+  }
+
+  public class InvalidPathException extends java.lang.IllegalArgumentException {
+    ctor public InvalidPathException(java.lang.String, java.lang.String, int);
+    ctor public InvalidPathException(java.lang.String, java.lang.String);
+    method public int getIndex();
+    method public java.lang.String getInput();
+    method public java.lang.String getReason();
+  }
+
+  public final class LinkOption extends java.lang.Enum implements java.nio.file.CopyOption java.nio.file.OpenOption {
+    method public static java.nio.file.LinkOption valueOf(java.lang.String);
+    method public static final java.nio.file.LinkOption[] values();
+    enum_constant public static final java.nio.file.LinkOption NOFOLLOW_LINKS;
+  }
+
+  public final class LinkPermission extends java.security.BasicPermission {
+    ctor public LinkPermission(java.lang.String);
+    ctor public LinkPermission(java.lang.String, java.lang.String);
+  }
+
+  public class NoSuchFileException extends java.nio.file.FileSystemException {
+    ctor public NoSuchFileException(java.lang.String);
+    ctor public NoSuchFileException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public class NotDirectoryException extends java.nio.file.FileSystemException {
+    ctor public NotDirectoryException(java.lang.String);
+  }
+
+  public class NotLinkException extends java.nio.file.FileSystemException {
+    ctor public NotLinkException(java.lang.String);
+    ctor public NotLinkException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public abstract interface OpenOption {
+  }
+
+  public abstract interface Path implements java.lang.Comparable java.lang.Iterable java.nio.file.Watchable {
+    method public abstract int compareTo(java.nio.file.Path);
+    method public abstract boolean endsWith(java.nio.file.Path);
+    method public abstract boolean endsWith(java.lang.String);
+    method public abstract boolean equals(java.lang.Object);
+    method public abstract java.nio.file.Path getFileName();
+    method public abstract java.nio.file.FileSystem getFileSystem();
+    method public abstract java.nio.file.Path getName(int);
+    method public abstract int getNameCount();
+    method public abstract java.nio.file.Path getParent();
+    method public abstract java.nio.file.Path getRoot();
+    method public abstract int hashCode();
+    method public abstract boolean isAbsolute();
+    method public abstract java.util.Iterator<java.nio.file.Path> iterator();
+    method public abstract java.nio.file.Path normalize();
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.Path relativize(java.nio.file.Path);
+    method public abstract java.nio.file.Path resolve(java.nio.file.Path);
+    method public abstract java.nio.file.Path resolve(java.lang.String);
+    method public abstract java.nio.file.Path resolveSibling(java.nio.file.Path);
+    method public abstract java.nio.file.Path resolveSibling(java.lang.String);
+    method public abstract boolean startsWith(java.nio.file.Path);
+    method public abstract boolean startsWith(java.lang.String);
+    method public abstract java.nio.file.Path subpath(int, int);
+    method public abstract java.nio.file.Path toAbsolutePath();
+    method public abstract java.io.File toFile();
+    method public abstract java.nio.file.Path toRealPath(java.nio.file.LinkOption...) throws java.io.IOException;
+    method public abstract java.lang.String toString();
+    method public abstract java.net.URI toUri();
+  }
+
+  public abstract interface PathMatcher {
+    method public abstract boolean matches(java.nio.file.Path);
+  }
+
+  public final class Paths {
+    method public static java.nio.file.Path get(java.lang.String, java.lang.String...);
+    method public static java.nio.file.Path get(java.net.URI);
+  }
+
+  public class ProviderMismatchException extends java.lang.IllegalArgumentException {
+    ctor public ProviderMismatchException();
+    ctor public ProviderMismatchException(java.lang.String);
+  }
+
+  public class ProviderNotFoundException extends java.lang.RuntimeException {
+    ctor public ProviderNotFoundException();
+    ctor public ProviderNotFoundException(java.lang.String);
+  }
+
+  public class ReadOnlyFileSystemException extends java.lang.UnsupportedOperationException {
+    ctor public ReadOnlyFileSystemException();
+  }
+
+  public abstract interface SecureDirectoryStream implements java.nio.file.DirectoryStream {
+    method public abstract void deleteDirectory(T) throws java.io.IOException;
+    method public abstract void deleteFile(T) throws java.io.IOException;
+    method public abstract V getFileAttributeView(java.lang.Class<V>);
+    method public abstract V getFileAttributeView(T, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public abstract void move(T, java.nio.file.SecureDirectoryStream<T>, T) throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel newByteChannel(T, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.SecureDirectoryStream<T> newDirectoryStream(T, java.nio.file.LinkOption...) throws java.io.IOException;
+  }
+
+  public final class StandardCopyOption extends java.lang.Enum implements java.nio.file.CopyOption {
+    method public static java.nio.file.StandardCopyOption valueOf(java.lang.String);
+    method public static final java.nio.file.StandardCopyOption[] values();
+    enum_constant public static final java.nio.file.StandardCopyOption ATOMIC_MOVE;
+    enum_constant public static final java.nio.file.StandardCopyOption COPY_ATTRIBUTES;
+    enum_constant public static final java.nio.file.StandardCopyOption REPLACE_EXISTING;
+  }
+
+  public final class StandardOpenOption extends java.lang.Enum implements java.nio.file.OpenOption {
+    method public static java.nio.file.StandardOpenOption valueOf(java.lang.String);
+    method public static final java.nio.file.StandardOpenOption[] values();
+    enum_constant public static final java.nio.file.StandardOpenOption APPEND;
+    enum_constant public static final java.nio.file.StandardOpenOption CREATE;
+    enum_constant public static final java.nio.file.StandardOpenOption CREATE_NEW;
+    enum_constant public static final java.nio.file.StandardOpenOption DELETE_ON_CLOSE;
+    enum_constant public static final java.nio.file.StandardOpenOption DSYNC;
+    enum_constant public static final java.nio.file.StandardOpenOption READ;
+    enum_constant public static final java.nio.file.StandardOpenOption SPARSE;
+    enum_constant public static final java.nio.file.StandardOpenOption SYNC;
+    enum_constant public static final java.nio.file.StandardOpenOption TRUNCATE_EXISTING;
+    enum_constant public static final java.nio.file.StandardOpenOption WRITE;
+  }
+
+  public final class StandardWatchEventKinds {
+    field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_CREATE;
+    field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_DELETE;
+    field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_MODIFY;
+    field public static final java.nio.file.WatchEvent.Kind<java.lang.Object> OVERFLOW;
+  }
+
+  public abstract interface WatchEvent {
+    method public abstract T context();
+    method public abstract int count();
+    method public abstract java.nio.file.WatchEvent.Kind<T> kind();
+  }
+
+  public static abstract interface WatchEvent.Kind {
+    method public abstract java.lang.String name();
+    method public abstract java.lang.Class<T> type();
+  }
+
+  public static abstract interface WatchEvent.Modifier {
+    method public abstract java.lang.String name();
+  }
+
+  public abstract interface WatchKey {
+    method public abstract void cancel();
+    method public abstract boolean isValid();
+    method public abstract java.util.List<java.nio.file.WatchEvent<?>> pollEvents();
+    method public abstract boolean reset();
+    method public abstract java.nio.file.Watchable watchable();
+  }
+
+  public abstract interface WatchService implements java.io.Closeable {
+    method public abstract void close() throws java.io.IOException;
+    method public abstract java.nio.file.WatchKey poll();
+    method public abstract java.nio.file.WatchKey poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public abstract java.nio.file.WatchKey take() throws java.lang.InterruptedException;
+  }
+
+  public abstract interface Watchable {
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+  }
+
+}
+
+package java.nio.file.attribute {
+
+  public final class AclEntry {
+    method public java.util.Set<java.nio.file.attribute.AclEntryFlag> flags();
+    method public static java.nio.file.attribute.AclEntry.Builder newBuilder();
+    method public static java.nio.file.attribute.AclEntry.Builder newBuilder(java.nio.file.attribute.AclEntry);
+    method public java.util.Set<java.nio.file.attribute.AclEntryPermission> permissions();
+    method public java.nio.file.attribute.UserPrincipal principal();
+    method public java.nio.file.attribute.AclEntryType type();
+  }
+
+  public static final class AclEntry.Builder {
+    method public java.nio.file.attribute.AclEntry build();
+    method public java.nio.file.attribute.AclEntry.Builder setFlags(java.util.Set<java.nio.file.attribute.AclEntryFlag>);
+    method public java.nio.file.attribute.AclEntry.Builder setFlags(java.nio.file.attribute.AclEntryFlag...);
+    method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.util.Set<java.nio.file.attribute.AclEntryPermission>);
+    method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.nio.file.attribute.AclEntryPermission...);
+    method public java.nio.file.attribute.AclEntry.Builder setPrincipal(java.nio.file.attribute.UserPrincipal);
+    method public java.nio.file.attribute.AclEntry.Builder setType(java.nio.file.attribute.AclEntryType);
+  }
+
+  public final class AclEntryFlag extends java.lang.Enum {
+    method public static java.nio.file.attribute.AclEntryFlag valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.AclEntryFlag[] values();
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag DIRECTORY_INHERIT;
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag FILE_INHERIT;
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag INHERIT_ONLY;
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag NO_PROPAGATE_INHERIT;
+  }
+
+  public final class AclEntryPermission extends java.lang.Enum {
+    method public static java.nio.file.attribute.AclEntryPermission valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.AclEntryPermission[] values();
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission APPEND_DATA;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE_CHILD;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission EXECUTE;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ACL;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ATTRIBUTES;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_DATA;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_NAMED_ATTRS;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission SYNCHRONIZE;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ACL;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ATTRIBUTES;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_DATA;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_NAMED_ATTRS;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_OWNER;
+    field public static final java.nio.file.attribute.AclEntryPermission ADD_FILE;
+    field public static final java.nio.file.attribute.AclEntryPermission ADD_SUBDIRECTORY;
+    field public static final java.nio.file.attribute.AclEntryPermission LIST_DIRECTORY;
+  }
+
+  public final class AclEntryType extends java.lang.Enum {
+    method public static java.nio.file.attribute.AclEntryType valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.AclEntryType[] values();
+    enum_constant public static final java.nio.file.attribute.AclEntryType ALARM;
+    enum_constant public static final java.nio.file.attribute.AclEntryType ALLOW;
+    enum_constant public static final java.nio.file.attribute.AclEntryType AUDIT;
+    enum_constant public static final java.nio.file.attribute.AclEntryType DENY;
+  }
+
+  public abstract interface AclFileAttributeView implements java.nio.file.attribute.FileOwnerAttributeView {
+    method public abstract java.util.List<java.nio.file.attribute.AclEntry> getAcl() throws java.io.IOException;
+    method public abstract java.lang.String name();
+    method public abstract void setAcl(java.util.List<java.nio.file.attribute.AclEntry>) throws java.io.IOException;
+  }
+
+  public abstract interface AttributeView {
+    method public abstract java.lang.String name();
+  }
+
+  public abstract interface BasicFileAttributeView implements java.nio.file.attribute.FileAttributeView {
+    method public abstract java.lang.String name();
+    method public abstract java.nio.file.attribute.BasicFileAttributes readAttributes() throws java.io.IOException;
+    method public abstract void setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime) throws java.io.IOException;
+  }
+
+  public abstract interface BasicFileAttributes {
+    method public abstract java.nio.file.attribute.FileTime creationTime();
+    method public abstract java.lang.Object fileKey();
+    method public abstract boolean isDirectory();
+    method public abstract boolean isOther();
+    method public abstract boolean isRegularFile();
+    method public abstract boolean isSymbolicLink();
+    method public abstract java.nio.file.attribute.FileTime lastAccessTime();
+    method public abstract java.nio.file.attribute.FileTime lastModifiedTime();
+    method public abstract long size();
+  }
+
+  public abstract interface DosFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView {
+    method public abstract java.lang.String name();
+    method public abstract java.nio.file.attribute.DosFileAttributes readAttributes() throws java.io.IOException;
+    method public abstract void setArchive(boolean) throws java.io.IOException;
+    method public abstract void setHidden(boolean) throws java.io.IOException;
+    method public abstract void setReadOnly(boolean) throws java.io.IOException;
+    method public abstract void setSystem(boolean) throws java.io.IOException;
+  }
+
+  public abstract interface DosFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+    method public abstract boolean isArchive();
+    method public abstract boolean isHidden();
+    method public abstract boolean isReadOnly();
+    method public abstract boolean isSystem();
+  }
+
+  public abstract interface FileAttribute {
+    method public abstract java.lang.String name();
+    method public abstract T value();
+  }
+
+  public abstract interface FileAttributeView implements java.nio.file.attribute.AttributeView {
+  }
+
+  public abstract interface FileOwnerAttributeView implements java.nio.file.attribute.FileAttributeView {
+    method public abstract java.nio.file.attribute.UserPrincipal getOwner() throws java.io.IOException;
+    method public abstract java.lang.String name();
+    method public abstract void setOwner(java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+  }
+
+  public abstract interface FileStoreAttributeView implements java.nio.file.attribute.AttributeView {
+  }
+
+  public final class FileTime implements java.lang.Comparable {
+    method public int compareTo(java.nio.file.attribute.FileTime);
+    method public static java.nio.file.attribute.FileTime from(long, java.util.concurrent.TimeUnit);
+    method public static java.nio.file.attribute.FileTime fromMillis(long);
+    method public long to(java.util.concurrent.TimeUnit);
+    method public long toMillis();
+  }
+
+  public abstract interface GroupPrincipal implements java.nio.file.attribute.UserPrincipal {
+  }
+
+  public abstract interface PosixFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
+    method public abstract java.lang.String name();
+    method public abstract java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
+    method public abstract void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
+    method public abstract void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+  }
+
+  public abstract interface PosixFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+    method public abstract java.nio.file.attribute.GroupPrincipal group();
+    method public abstract java.nio.file.attribute.UserPrincipal owner();
+    method public abstract java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions();
+  }
+
+  public final class PosixFilePermission extends java.lang.Enum {
+    method public static java.nio.file.attribute.PosixFilePermission valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.PosixFilePermission[] values();
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_EXECUTE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_READ;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_WRITE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_EXECUTE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_READ;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_WRITE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_EXECUTE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_READ;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_WRITE;
+  }
+
+  public final class PosixFilePermissions {
+    method public static java.nio.file.attribute.FileAttribute<java.util.Set<java.nio.file.attribute.PosixFilePermission>> asFileAttribute(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+    method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> fromString(java.lang.String);
+    method public static java.lang.String toString(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+  }
+
+  public abstract interface UserPrincipal implements java.security.Principal {
+  }
+
+  public abstract class UserPrincipalLookupService {
+    ctor protected UserPrincipalLookupService();
+    method public abstract java.nio.file.attribute.GroupPrincipal lookupPrincipalByGroupName(java.lang.String) throws java.io.IOException;
+    method public abstract java.nio.file.attribute.UserPrincipal lookupPrincipalByName(java.lang.String) throws java.io.IOException;
+  }
+
+  public class UserPrincipalNotFoundException extends java.io.IOException {
+    ctor public UserPrincipalNotFoundException(java.lang.String);
+    method public java.lang.String getName();
+  }
+
+}
+
+package java.nio.file.spi {
+
+  public abstract class FileSystemProvider {
+    ctor protected FileSystemProvider();
+    method public abstract void checkAccess(java.nio.file.Path, java.nio.file.AccessMode...) throws java.io.IOException;
+    method public abstract void copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public abstract void createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public void createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public void createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract void delete(java.nio.file.Path) throws java.io.IOException;
+    method public boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+    method public abstract V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public abstract java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+    method public abstract java.nio.file.FileSystem getFileSystem(java.net.URI);
+    method public abstract java.nio.file.Path getPath(java.net.URI);
+    method public abstract java.lang.String getScheme();
+    method public static java.util.List<java.nio.file.spi.FileSystemProvider> installedProviders();
+    method public abstract boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+    method public abstract boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public abstract void move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public java.nio.channels.AsynchronousFileChannel newAsynchronousFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+    method public java.nio.channels.FileChannel newFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+    method public java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+    method public java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public abstract A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public abstract java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+    method public abstract void setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+  }
+
+  public abstract class FileTypeDetector {
+    ctor protected FileTypeDetector();
+    method public abstract java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+  }
+
+}
+
 package java.security {
 
   public final class AccessControlContext {
-    ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
     ctor public AccessControlContext(java.security.ProtectionDomain[]);
+    ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
     method public void checkPermission(java.security.Permission) throws java.security.AccessControlException;
     method public java.security.DomainCombiner getDomainCombiner();
   }
@@ -47532,6 +48507,12 @@
     method public static java.security.AccessControlContext getContext();
   }
 
+  public abstract interface AlgorithmConstraints {
+    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.AlgorithmParameters);
+    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.security.Key);
+    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.Key, java.security.AlgorithmParameters);
+  }
+
   public class AlgorithmParameterGenerator {
     ctor protected AlgorithmParameterGenerator(java.security.AlgorithmParameterGeneratorSpi, java.security.Provider, java.lang.String);
     method public final java.security.AlgorithmParameters generateParameters();
@@ -47581,9 +48562,11 @@
   }
 
   public final class AllPermission extends java.security.Permission {
-    ctor public AllPermission(java.lang.String, java.lang.String);
     ctor public AllPermission();
+    ctor public AllPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -47597,7 +48580,9 @@
   public abstract class BasicPermission extends java.security.Permission implements java.io.Serializable {
     ctor public BasicPermission(java.lang.String);
     ctor public BasicPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -47626,9 +48611,24 @@
     method public boolean implies(java.security.CodeSource);
   }
 
+  public final class CryptoPrimitive extends java.lang.Enum {
+    method public static java.security.CryptoPrimitive valueOf(java.lang.String);
+    method public static final java.security.CryptoPrimitive[] values();
+    enum_constant public static final java.security.CryptoPrimitive BLOCK_CIPHER;
+    enum_constant public static final java.security.CryptoPrimitive KEY_AGREEMENT;
+    enum_constant public static final java.security.CryptoPrimitive KEY_ENCAPSULATION;
+    enum_constant public static final java.security.CryptoPrimitive KEY_WRAP;
+    enum_constant public static final java.security.CryptoPrimitive MAC;
+    enum_constant public static final java.security.CryptoPrimitive MESSAGE_DIGEST;
+    enum_constant public static final java.security.CryptoPrimitive PUBLIC_KEY_ENCRYPTION;
+    enum_constant public static final java.security.CryptoPrimitive SECURE_RANDOM;
+    enum_constant public static final java.security.CryptoPrimitive SIGNATURE;
+    enum_constant public static final java.security.CryptoPrimitive STREAM_CIPHER;
+  }
+
   public class DigestException extends java.security.GeneralSecurityException {
-    ctor public DigestException(java.lang.String);
     ctor public DigestException();
+    ctor public DigestException(java.lang.String);
     ctor public DigestException(java.lang.String, java.lang.Throwable);
     ctor public DigestException(java.lang.Throwable);
   }
@@ -47654,8 +48654,8 @@
   }
 
   public class GeneralSecurityException extends java.lang.Exception {
-    ctor public GeneralSecurityException(java.lang.String);
     ctor public GeneralSecurityException();
+    ctor public GeneralSecurityException(java.lang.String);
     ctor public GeneralSecurityException(java.lang.String, java.lang.Throwable);
     ctor public GeneralSecurityException(java.lang.Throwable);
   }
@@ -47671,8 +48671,8 @@
 
   public abstract deprecated class Identity implements java.security.Principal java.io.Serializable {
     ctor protected Identity();
-    ctor public Identity(java.lang.String);
     ctor public Identity(java.lang.String, java.security.IdentityScope) throws java.security.KeyManagementException;
+    ctor public Identity(java.lang.String);
     method public void addCertificate(java.security.Certificate) throws java.security.KeyManagementException;
     method public java.security.Certificate[] certificates();
     method public final boolean equals(java.lang.Object);
@@ -47703,22 +48703,22 @@
   }
 
   public class InvalidAlgorithmParameterException extends java.security.GeneralSecurityException {
-    ctor public InvalidAlgorithmParameterException(java.lang.String);
     ctor public InvalidAlgorithmParameterException();
+    ctor public InvalidAlgorithmParameterException(java.lang.String);
     ctor public InvalidAlgorithmParameterException(java.lang.String, java.lang.Throwable);
     ctor public InvalidAlgorithmParameterException(java.lang.Throwable);
   }
 
   public class InvalidKeyException extends java.security.KeyException {
-    ctor public InvalidKeyException(java.lang.String);
     ctor public InvalidKeyException();
+    ctor public InvalidKeyException(java.lang.String);
     ctor public InvalidKeyException(java.lang.String, java.lang.Throwable);
     ctor public InvalidKeyException(java.lang.Throwable);
   }
 
   public class InvalidParameterException extends java.lang.IllegalArgumentException {
-    ctor public InvalidParameterException(java.lang.String);
     ctor public InvalidParameterException();
+    ctor public InvalidParameterException(java.lang.String);
   }
 
   public abstract interface Key implements java.io.Serializable {
@@ -47729,8 +48729,8 @@
   }
 
   public class KeyException extends java.security.GeneralSecurityException {
-    ctor public KeyException(java.lang.String);
     ctor public KeyException();
+    ctor public KeyException(java.lang.String);
     ctor public KeyException(java.lang.String, java.lang.Throwable);
     ctor public KeyException(java.lang.Throwable);
   }
@@ -47757,8 +48757,8 @@
   }
 
   public class KeyManagementException extends java.security.KeyException {
-    ctor public KeyManagementException(java.lang.String);
     ctor public KeyManagementException();
+    ctor public KeyManagementException(java.lang.String);
     ctor public KeyManagementException(java.lang.String, java.lang.Throwable);
     ctor public KeyManagementException(java.lang.Throwable);
   }
@@ -47779,8 +48779,8 @@
     method public static java.security.KeyPairGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public void initialize(int);
-    method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
     method public void initialize(int, java.security.SecureRandom);
+    method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
   }
 
   public abstract class KeyPairGeneratorSpi {
@@ -47883,8 +48883,8 @@
   }
 
   public class KeyStoreException extends java.security.GeneralSecurityException {
-    ctor public KeyStoreException(java.lang.String);
     ctor public KeyStoreException();
+    ctor public KeyStoreException(java.lang.String);
     ctor public KeyStoreException(java.lang.String, java.lang.Throwable);
     ctor public KeyStoreException(java.lang.Throwable);
   }
@@ -47946,22 +48946,24 @@
   }
 
   public class NoSuchAlgorithmException extends java.security.GeneralSecurityException {
-    ctor public NoSuchAlgorithmException(java.lang.String);
     ctor public NoSuchAlgorithmException();
+    ctor public NoSuchAlgorithmException(java.lang.String);
     ctor public NoSuchAlgorithmException(java.lang.String, java.lang.Throwable);
     ctor public NoSuchAlgorithmException(java.lang.Throwable);
   }
 
   public class NoSuchProviderException extends java.security.GeneralSecurityException {
-    ctor public NoSuchProviderException(java.lang.String);
     ctor public NoSuchProviderException();
+    ctor public NoSuchProviderException(java.lang.String);
   }
 
   public abstract class Permission implements java.security.Guard java.io.Serializable {
     ctor public Permission(java.lang.String);
     method public void checkGuard(java.lang.Object) throws java.lang.SecurityException;
+    method public abstract boolean equals(java.lang.Object);
     method public abstract java.lang.String getActions();
     method public final java.lang.String getName();
+    method public abstract int hashCode();
     method public abstract boolean implies(java.security.Permission);
     method public java.security.PermissionCollection newPermissionCollection();
   }
@@ -48069,8 +49071,8 @@
   }
 
   public class ProviderException extends java.lang.RuntimeException {
-    ctor public ProviderException(java.lang.String);
     ctor public ProviderException();
+    ctor public ProviderException(java.lang.String);
     ctor public ProviderException(java.lang.String, java.lang.Throwable);
     ctor public ProviderException(java.lang.Throwable);
   }
@@ -48080,8 +49082,8 @@
   }
 
   public class SecureClassLoader extends java.lang.ClassLoader {
-    ctor protected SecureClassLoader();
     ctor protected SecureClassLoader(java.lang.ClassLoader);
+    ctor protected SecureClassLoader();
     method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.security.CodeSource);
     method protected final java.lang.Class<?> defineClass(java.lang.String, java.nio.ByteBuffer, java.security.CodeSource);
     method protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
@@ -48114,10 +49116,10 @@
     method public static deprecated java.lang.String getAlgorithmProperty(java.lang.String, java.lang.String);
     method public static java.util.Set<java.lang.String> getAlgorithms(java.lang.String);
     method public static java.lang.String getProperty(java.lang.String);
-    method public static synchronized java.security.Provider getProvider(java.lang.String);
-    method public static synchronized java.security.Provider[] getProviders();
+    method public static java.security.Provider getProvider(java.lang.String);
+    method public static java.security.Provider[] getProviders();
     method public static java.security.Provider[] getProviders(java.lang.String);
-    method public static synchronized java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
+    method public static java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
     method public static synchronized int insertProviderAt(java.security.Provider, int);
     method public static synchronized void removeProvider(java.lang.String);
     method public static void setProperty(java.lang.String, java.lang.String);
@@ -48131,6 +49133,7 @@
   public abstract class Signature extends java.security.SignatureSpi {
     ctor protected Signature(java.lang.String);
     method public final java.lang.String getAlgorithm();
+    method public java.security.SignatureSpi getCurrentSpi();
     method public static java.security.Signature getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
     method public static java.security.Signature getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
     method public static java.security.Signature getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
@@ -48158,8 +49161,8 @@
   }
 
   public class SignatureException extends java.security.GeneralSecurityException {
-    ctor public SignatureException(java.lang.String);
     ctor public SignatureException();
+    ctor public SignatureException(java.lang.String);
     ctor public SignatureException(java.lang.String, java.lang.Throwable);
     ctor public SignatureException(java.lang.Throwable);
   }
@@ -48212,17 +49215,19 @@
   }
 
   public class UnrecoverableKeyException extends java.security.UnrecoverableEntryException {
-    ctor public UnrecoverableKeyException(java.lang.String);
     ctor public UnrecoverableKeyException();
+    ctor public UnrecoverableKeyException(java.lang.String);
   }
 
   public final class UnresolvedPermission extends java.security.Permission implements java.io.Serializable {
     ctor public UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
     method public java.lang.String getUnresolvedActions();
     method public java.security.cert.Certificate[] getUnresolvedCerts();
     method public java.lang.String getUnresolvedName();
     method public java.lang.String getUnresolvedType();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -48296,12 +49301,28 @@
   }
 
   public class CRLException extends java.security.GeneralSecurityException {
-    ctor public CRLException(java.lang.String);
     ctor public CRLException();
+    ctor public CRLException(java.lang.String);
     ctor public CRLException(java.lang.String, java.lang.Throwable);
     ctor public CRLException(java.lang.Throwable);
   }
 
+  public final class CRLReason extends java.lang.Enum {
+    method public static java.security.cert.CRLReason valueOf(java.lang.String);
+    method public static final java.security.cert.CRLReason[] values();
+    enum_constant public static final java.security.cert.CRLReason AA_COMPROMISE;
+    enum_constant public static final java.security.cert.CRLReason AFFILIATION_CHANGED;
+    enum_constant public static final java.security.cert.CRLReason CA_COMPROMISE;
+    enum_constant public static final java.security.cert.CRLReason CERTIFICATE_HOLD;
+    enum_constant public static final java.security.cert.CRLReason CESSATION_OF_OPERATION;
+    enum_constant public static final java.security.cert.CRLReason KEY_COMPROMISE;
+    enum_constant public static final java.security.cert.CRLReason PRIVILEGE_WITHDRAWN;
+    enum_constant public static final java.security.cert.CRLReason REMOVE_FROM_CRL;
+    enum_constant public static final java.security.cert.CRLReason SUPERSEDED;
+    enum_constant public static final java.security.cert.CRLReason UNSPECIFIED;
+    enum_constant public static final java.security.cert.CRLReason UNUSED;
+  }
+
   public abstract interface CRLSelector implements java.lang.Cloneable {
     method public abstract java.lang.Object clone();
     method public abstract boolean match(java.security.cert.CRL);
@@ -48334,10 +49355,10 @@
   }
 
   public class CertPathBuilderException extends java.security.GeneralSecurityException {
-    ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
-    ctor public CertPathBuilderException(java.lang.Throwable);
-    ctor public CertPathBuilderException(java.lang.String);
     ctor public CertPathBuilderException();
+    ctor public CertPathBuilderException(java.lang.String);
+    ctor public CertPathBuilderException(java.lang.Throwable);
+    ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract interface CertPathBuilderResult implements java.lang.Cloneable {
@@ -48366,13 +49387,30 @@
   }
 
   public class CertPathValidatorException extends java.security.GeneralSecurityException {
-    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
-    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
-    ctor public CertPathValidatorException(java.lang.Throwable);
-    ctor public CertPathValidatorException(java.lang.String);
     ctor public CertPathValidatorException();
+    ctor public CertPathValidatorException(java.lang.String);
+    ctor public CertPathValidatorException(java.lang.Throwable);
+    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
+    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
+    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int, java.security.cert.CertPathValidatorException.Reason);
     method public java.security.cert.CertPath getCertPath();
     method public int getIndex();
+    method public java.security.cert.CertPathValidatorException.Reason getReason();
+  }
+
+  public static final class CertPathValidatorException.BasicReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+    method public static java.security.cert.CertPathValidatorException.BasicReason valueOf(java.lang.String);
+    method public static final java.security.cert.CertPathValidatorException.BasicReason[] values();
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason ALGORITHM_CONSTRAINED;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason EXPIRED;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason INVALID_SIGNATURE;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason NOT_YET_VALID;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason REVOKED;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNDETERMINED_REVOCATION_STATUS;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNSPECIFIED;
+  }
+
+  public static abstract interface CertPathValidatorException.Reason implements java.io.Serializable {
   }
 
   public abstract interface CertPathValidatorResult implements java.lang.Cloneable {
@@ -48403,10 +49441,10 @@
   }
 
   public class CertStoreException extends java.security.GeneralSecurityException {
-    ctor public CertStoreException(java.lang.String, java.lang.Throwable);
-    ctor public CertStoreException(java.lang.Throwable);
-    ctor public CertStoreException(java.lang.String);
     ctor public CertStoreException();
+    ctor public CertStoreException(java.lang.String);
+    ctor public CertStoreException(java.lang.Throwable);
+    ctor public CertStoreException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract interface CertStoreParameters implements java.lang.Cloneable {
@@ -48436,22 +49474,22 @@
   }
 
   public class CertificateEncodingException extends java.security.cert.CertificateException {
-    ctor public CertificateEncodingException(java.lang.String);
     ctor public CertificateEncodingException();
+    ctor public CertificateEncodingException(java.lang.String);
     ctor public CertificateEncodingException(java.lang.String, java.lang.Throwable);
     ctor public CertificateEncodingException(java.lang.Throwable);
   }
 
   public class CertificateException extends java.security.GeneralSecurityException {
-    ctor public CertificateException(java.lang.String);
     ctor public CertificateException();
+    ctor public CertificateException(java.lang.String);
     ctor public CertificateException(java.lang.String, java.lang.Throwable);
     ctor public CertificateException(java.lang.Throwable);
   }
 
   public class CertificateExpiredException extends java.security.cert.CertificateException {
-    ctor public CertificateExpiredException(java.lang.String);
     ctor public CertificateExpiredException();
+    ctor public CertificateExpiredException(java.lang.String);
   }
 
   public class CertificateFactory {
@@ -48484,28 +49522,44 @@
   }
 
   public class CertificateNotYetValidException extends java.security.cert.CertificateException {
-    ctor public CertificateNotYetValidException(java.lang.String);
     ctor public CertificateNotYetValidException();
+    ctor public CertificateNotYetValidException(java.lang.String);
   }
 
   public class CertificateParsingException extends java.security.cert.CertificateException {
-    ctor public CertificateParsingException(java.lang.String);
     ctor public CertificateParsingException();
+    ctor public CertificateParsingException(java.lang.String);
     ctor public CertificateParsingException(java.lang.String, java.lang.Throwable);
     ctor public CertificateParsingException(java.lang.Throwable);
   }
 
+  public class CertificateRevokedException extends java.security.cert.CertificateException {
+    ctor public CertificateRevokedException(java.util.Date, java.security.cert.CRLReason, javax.security.auth.x500.X500Principal, java.util.Map<java.lang.String, java.security.cert.Extension>);
+    method public javax.security.auth.x500.X500Principal getAuthorityName();
+    method public java.util.Map<java.lang.String, java.security.cert.Extension> getExtensions();
+    method public java.util.Date getInvalidityDate();
+    method public java.util.Date getRevocationDate();
+    method public java.security.cert.CRLReason getRevocationReason();
+  }
+
   public class CollectionCertStoreParameters implements java.security.cert.CertStoreParameters {
-    ctor public CollectionCertStoreParameters();
     ctor public CollectionCertStoreParameters(java.util.Collection<?>);
+    ctor public CollectionCertStoreParameters();
     method public java.lang.Object clone();
     method public java.util.Collection<?> getCollection();
   }
 
+  public abstract interface Extension {
+    method public abstract void encode(java.io.OutputStream) throws java.io.IOException;
+    method public abstract java.lang.String getId();
+    method public abstract byte[] getValue();
+    method public abstract boolean isCritical();
+  }
+
   public class LDAPCertStoreParameters implements java.security.cert.CertStoreParameters {
     ctor public LDAPCertStoreParameters(java.lang.String, int);
-    ctor public LDAPCertStoreParameters();
     ctor public LDAPCertStoreParameters(java.lang.String);
+    ctor public LDAPCertStoreParameters();
     method public java.lang.Object clone();
     method public int getPort();
     method public java.lang.String getServerName();
@@ -48572,6 +49626,19 @@
     method public void setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>) throws java.security.InvalidAlgorithmParameterException;
   }
 
+  public final class PKIXReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+    method public static java.security.cert.PKIXReason valueOf(java.lang.String);
+    method public static final java.security.cert.PKIXReason[] values();
+    enum_constant public static final java.security.cert.PKIXReason INVALID_KEY_USAGE;
+    enum_constant public static final java.security.cert.PKIXReason INVALID_NAME;
+    enum_constant public static final java.security.cert.PKIXReason INVALID_POLICY;
+    enum_constant public static final java.security.cert.PKIXReason NAME_CHAINING;
+    enum_constant public static final java.security.cert.PKIXReason NOT_CA_CERT;
+    enum_constant public static final java.security.cert.PKIXReason NO_TRUST_ANCHOR;
+    enum_constant public static final java.security.cert.PKIXReason PATH_TOO_LONG;
+    enum_constant public static final java.security.cert.PKIXReason UNRECOGNIZED_CRIT_EXT;
+  }
+
   public abstract interface PolicyNode {
     method public abstract java.util.Iterator<? extends java.security.cert.PolicyNode> getChildren();
     method public abstract int getDepth();
@@ -48591,8 +49658,8 @@
 
   public class TrustAnchor {
     ctor public TrustAnchor(java.security.cert.X509Certificate, byte[]);
-    ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
     ctor public TrustAnchor(javax.security.auth.x500.X500Principal, java.security.PublicKey, byte[]);
+    ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
     method public final javax.security.auth.x500.X500Principal getCA();
     method public final java.lang.String getCAName();
     method public final java.security.PublicKey getCAPublicKey();
@@ -48625,6 +49692,7 @@
     method public javax.security.auth.x500.X500Principal getCertificateIssuer();
     method public abstract byte[] getEncoded() throws java.security.cert.CRLException;
     method public abstract java.util.Date getRevocationDate();
+    method public java.security.cert.CRLReason getRevocationReason();
     method public abstract java.math.BigInteger getSerialNumber();
     method public abstract boolean hasExtensions();
     method public abstract java.lang.String toString();
@@ -48900,8 +49968,8 @@
   }
 
   public class EllipticCurve {
-    ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
     ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger);
+    ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
     method public java.math.BigInteger getA();
     method public java.math.BigInteger getB();
     method public java.security.spec.ECField getField();
@@ -48915,15 +49983,15 @@
   }
 
   public class InvalidKeySpecException extends java.security.GeneralSecurityException {
-    ctor public InvalidKeySpecException(java.lang.String);
     ctor public InvalidKeySpecException();
+    ctor public InvalidKeySpecException(java.lang.String);
     ctor public InvalidKeySpecException(java.lang.String, java.lang.Throwable);
     ctor public InvalidKeySpecException(java.lang.Throwable);
   }
 
   public class InvalidParameterSpecException extends java.security.GeneralSecurityException {
-    ctor public InvalidParameterSpecException(java.lang.String);
     ctor public InvalidParameterSpecException();
+    ctor public InvalidParameterSpecException(java.lang.String);
   }
 
   public abstract interface KeySpec {
@@ -48944,8 +50012,8 @@
   }
 
   public class PSSParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    ctor public PSSParameterSpec(int);
     ctor public PSSParameterSpec(java.lang.String, java.lang.String, java.security.spec.AlgorithmParameterSpec, int, int);
+    ctor public PSSParameterSpec(int);
     method public java.lang.String getDigestAlgorithm();
     method public java.lang.String getMGFAlgorithm();
     method public java.security.spec.AlgorithmParameterSpec getMGFParameters();
@@ -49014,28 +50082,28 @@
   public abstract interface Array {
     method public abstract void free() throws java.sql.SQLException;
     method public abstract java.lang.Object getArray() throws java.sql.SQLException;
+    method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.lang.Object getArray(long, int) throws java.sql.SQLException;
     method public abstract java.lang.Object getArray(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract int getBaseType() throws java.sql.SQLException;
     method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
     method public abstract java.sql.ResultSet getResultSet() throws java.sql.SQLException;
+    method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.sql.ResultSet getResultSet(long, int) throws java.sql.SQLException;
     method public abstract java.sql.ResultSet getResultSet(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
   }
 
-  public class BatchUpdateException extends java.sql.SQLException implements java.io.Serializable {
+  public class BatchUpdateException extends java.sql.SQLException {
+    ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
+    ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
+    ctor public BatchUpdateException(java.lang.String, int[]);
+    ctor public BatchUpdateException(int[]);
     ctor public BatchUpdateException();
     ctor public BatchUpdateException(java.lang.Throwable);
     ctor public BatchUpdateException(int[], java.lang.Throwable);
     ctor public BatchUpdateException(java.lang.String, int[], java.lang.Throwable);
     ctor public BatchUpdateException(java.lang.String, java.lang.String, int[], java.lang.Throwable);
     ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[], java.lang.Throwable);
-    ctor public BatchUpdateException(int[]);
-    ctor public BatchUpdateException(java.lang.String, int[]);
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
     method public int[] getUpdateCounts();
   }
 
@@ -49045,8 +50113,8 @@
     method public abstract java.io.InputStream getBinaryStream(long, long) throws java.sql.SQLException;
     method public abstract byte[] getBytes(long, int) throws java.sql.SQLException;
     method public abstract long length() throws java.sql.SQLException;
-    method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
     method public abstract long position(byte[], long) throws java.sql.SQLException;
+    method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
     method public abstract java.io.OutputStream setBinaryStream(long) throws java.sql.SQLException;
     method public abstract int setBytes(long, byte[]) throws java.sql.SQLException;
     method public abstract int setBytes(long, byte[], int, int) throws java.sql.SQLException;
@@ -49056,8 +50124,8 @@
   public abstract interface CallableStatement implements java.sql.PreparedStatement {
     method public abstract java.sql.Array getArray(int) throws java.sql.SQLException;
     method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
     method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
+    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
     method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
     method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
     method public abstract java.sql.Blob getBlob(java.lang.String) throws java.sql.SQLException;
@@ -49152,9 +50220,9 @@
     method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
     method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setRowId(java.lang.String, java.sql.RowId) throws java.sql.SQLException;
     method public abstract void setSQLXML(java.lang.String, java.sql.SQLXML) throws java.sql.SQLException;
     method public abstract void setShort(java.lang.String, short) throws java.sql.SQLException;
@@ -49183,8 +50251,8 @@
     method public abstract java.io.Reader getCharacterStream(long, long) throws java.sql.SQLException;
     method public abstract java.lang.String getSubString(long, int) throws java.sql.SQLException;
     method public abstract long length() throws java.sql.SQLException;
-    method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
     method public abstract long position(java.lang.String, long) throws java.sql.SQLException;
+    method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
     method public abstract java.io.OutputStream setAsciiStream(long) throws java.sql.SQLException;
     method public abstract java.io.Writer setCharacterStream(long) throws java.sql.SQLException;
     method public abstract int setString(long, java.lang.String) throws java.sql.SQLException;
@@ -49222,10 +50290,10 @@
     method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int) throws java.sql.SQLException;
     method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int, int) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) throws java.sql.SQLException;
+    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
+    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String[]) throws java.sql.SQLException;
     method public abstract void releaseSavepoint(java.sql.Savepoint) throws java.sql.SQLException;
     method public abstract void rollback() throws java.sql.SQLException;
@@ -49247,7 +50315,7 @@
     field public static final int TRANSACTION_SERIALIZABLE = 8; // 0x8
   }
 
-  public class DataTruncation extends java.sql.SQLWarning implements java.io.Serializable {
+  public class DataTruncation extends java.sql.SQLWarning {
     ctor public DataTruncation(int, boolean, boolean, int, int);
     ctor public DataTruncation(int, boolean, boolean, int, int, java.lang.Throwable);
     method public int getDataSize();
@@ -49509,17 +50577,17 @@
   }
 
   public class DriverManager {
-    method public static void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
-    method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
+    method public static synchronized void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
     method public static java.sql.Connection getConnection(java.lang.String, java.util.Properties) throws java.sql.SQLException;
     method public static java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
+    method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
     method public static java.sql.Driver getDriver(java.lang.String) throws java.sql.SQLException;
     method public static java.util.Enumeration<java.sql.Driver> getDrivers();
     method public static deprecated java.io.PrintStream getLogStream();
     method public static java.io.PrintWriter getLogWriter();
     method public static int getLoginTimeout();
     method public static void println(java.lang.String);
-    method public static void registerDriver(java.sql.Driver) throws java.sql.SQLException;
+    method public static synchronized void registerDriver(java.sql.Driver) throws java.sql.SQLException;
     method public static deprecated void setLogStream(java.io.PrintStream);
     method public static void setLogWriter(java.io.PrintWriter);
     method public static void setLoginTimeout(int);
@@ -49598,8 +50666,8 @@
     method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(int, int) throws java.sql.SQLException;
     method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
     method public abstract void setRef(int, java.sql.Ref) throws java.sql.SQLException;
     method public abstract void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
@@ -49616,8 +50684,8 @@
 
   public abstract interface Ref {
     method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject() throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
+    method public abstract java.lang.Object getObject() throws java.sql.SQLException;
     method public abstract void setObject(java.lang.Object) throws java.sql.SQLException;
   }
 
@@ -49635,10 +50703,10 @@
     method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
     method public abstract java.io.InputStream getAsciiStream(int) throws java.sql.SQLException;
     method public abstract java.io.InputStream getAsciiStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
     method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
     method public abstract deprecated java.math.BigDecimal getBigDecimal(java.lang.String, int) throws java.sql.SQLException;
+    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
+    method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
     method public abstract java.io.InputStream getBinaryStream(int) throws java.sql.SQLException;
     method public abstract java.io.InputStream getBinaryStream(java.lang.String) throws java.sql.SQLException;
     method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
@@ -49656,8 +50724,8 @@
     method public abstract int getConcurrency() throws java.sql.SQLException;
     method public abstract java.lang.String getCursorName() throws java.sql.SQLException;
     method public abstract java.sql.Date getDate(int) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Date getDate(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Date getDate(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
     method public abstract double getDouble(int) throws java.sql.SQLException;
     method public abstract double getDouble(java.lang.String) throws java.sql.SQLException;
@@ -49678,8 +50746,8 @@
     method public abstract java.lang.String getNString(int) throws java.sql.SQLException;
     method public abstract java.lang.String getNString(java.lang.String) throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(int) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(java.lang.String, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.sql.Ref getRef(int) throws java.sql.SQLException;
     method public abstract java.sql.Ref getRef(java.lang.String) throws java.sql.SQLException;
@@ -49694,12 +50762,12 @@
     method public abstract java.lang.String getString(int) throws java.sql.SQLException;
     method public abstract java.lang.String getString(java.lang.String) throws java.sql.SQLException;
     method public abstract java.sql.Time getTime(int) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Time getTime(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Time getTime(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Timestamp getTimestamp(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Timestamp getTimestamp(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
     method public abstract int getType() throws java.sql.SQLException;
     method public abstract java.net.URL getURL(int) throws java.sql.SQLException;
@@ -49789,10 +50857,10 @@
     method public abstract void updateNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
     method public abstract void updateNull(int) throws java.sql.SQLException;
     method public abstract void updateNull(java.lang.String) throws java.sql.SQLException;
-    method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void updateObject(int, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+    method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void updateObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
     method public abstract void updateRef(int, java.sql.Ref) throws java.sql.SQLException;
     method public abstract void updateRef(java.lang.String, java.sql.Ref) throws java.sql.SQLException;
     method public abstract void updateRow() throws java.sql.SQLException;
@@ -49871,10 +50939,10 @@
     ctor public SQLClientInfoException(java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
     ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
     ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
     ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
     ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
+    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
+    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
     method public java.util.Map<java.lang.String, java.sql.ClientInfoStatus> getFailedProperties();
   }
 
@@ -49895,11 +50963,11 @@
     ctor public SQLDataException(java.lang.String, java.lang.String, int, java.lang.Throwable);
   }
 
-  public class SQLException extends java.lang.Exception implements java.lang.Iterable java.io.Serializable {
-    ctor public SQLException();
-    ctor public SQLException(java.lang.String);
-    ctor public SQLException(java.lang.String, java.lang.String);
+  public class SQLException extends java.lang.Exception implements java.lang.Iterable {
     ctor public SQLException(java.lang.String, java.lang.String, int);
+    ctor public SQLException(java.lang.String, java.lang.String);
+    ctor public SQLException(java.lang.String);
+    ctor public SQLException();
     ctor public SQLException(java.lang.Throwable);
     ctor public SQLException(java.lang.String, java.lang.Throwable);
     ctor public SQLException(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -50026,7 +51094,7 @@
     method public abstract void writeURL(java.net.URL) throws java.sql.SQLException;
   }
 
-  public final class SQLPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
+  public final class SQLPermission extends java.security.BasicPermission {
     ctor public SQLPermission(java.lang.String);
     ctor public SQLPermission(java.lang.String, java.lang.String);
   }
@@ -50097,11 +51165,11 @@
     ctor public SQLTransientException(java.lang.String, java.lang.String, int, java.lang.Throwable);
   }
 
-  public class SQLWarning extends java.sql.SQLException implements java.io.Serializable {
-    ctor public SQLWarning();
-    ctor public SQLWarning(java.lang.String);
-    ctor public SQLWarning(java.lang.String, java.lang.String);
+  public class SQLWarning extends java.sql.SQLException {
     ctor public SQLWarning(java.lang.String, java.lang.String, int);
+    ctor public SQLWarning(java.lang.String, java.lang.String);
+    ctor public SQLWarning(java.lang.String);
+    ctor public SQLWarning();
     ctor public SQLWarning(java.lang.Throwable);
     ctor public SQLWarning(java.lang.String, java.lang.Throwable);
     ctor public SQLWarning(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -50190,15 +51258,15 @@
   }
 
   public class Timestamp extends java.util.Date {
-    ctor public deprecated Timestamp(int, int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
+    ctor public deprecated Timestamp(int, int, int, int, int, int, int);
     ctor public Timestamp(long);
     method public boolean after(java.sql.Timestamp);
     method public boolean before(java.sql.Timestamp);
     method public int compareTo(java.sql.Timestamp);
     method public boolean equals(java.sql.Timestamp);
     method public int getNanos();
-    method public void setNanos(int) throws java.lang.IllegalArgumentException;
-    method public static java.sql.Timestamp valueOf(java.lang.String) throws java.lang.IllegalArgumentException;
+    method public void setNanos(int);
+    method public static java.sql.Timestamp valueOf(java.lang.String);
   }
 
   public class Types {
@@ -50278,11 +51346,11 @@
   }
 
   public class AttributedString {
+    ctor public AttributedString(java.lang.String);
+    ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
     ctor public AttributedString(java.text.AttributedCharacterIterator);
     ctor public AttributedString(java.text.AttributedCharacterIterator, int, int);
     ctor public AttributedString(java.text.AttributedCharacterIterator, int, int, java.text.AttributedCharacterIterator.Attribute[]);
-    ctor public AttributedString(java.lang.String);
-    ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
     method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object);
     method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object, int, int);
     method public void addAttributes(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>, int, int);
@@ -50292,9 +51360,9 @@
   }
 
   public final class Bidi {
+    ctor public Bidi(java.lang.String, int);
     ctor public Bidi(java.text.AttributedCharacterIterator);
     ctor public Bidi(char[], int, byte[], int, int, int);
-    ctor public Bidi(java.lang.String, int);
     method public boolean baseIsLeftToRight();
     method public java.text.Bidi createLineBidi(int, int);
     method public int getBaseLevel();
@@ -50321,7 +51389,7 @@
     method public abstract int current();
     method public abstract int first();
     method public abstract int following(int);
-    method public static java.util.Locale[] getAvailableLocales();
+    method public static synchronized java.util.Locale[] getAvailableLocales();
     method public static java.text.BreakIterator getCharacterInstance();
     method public static java.text.BreakIterator getCharacterInstance(java.util.Locale);
     method public static java.text.BreakIterator getLineInstance();
@@ -50333,8 +51401,8 @@
     method public static java.text.BreakIterator getWordInstance(java.util.Locale);
     method public boolean isBoundary(int);
     method public abstract int last();
-    method public abstract int next();
     method public abstract int next(int);
+    method public abstract int next();
     method public int preceding(int);
     method public abstract int previous();
     method public void setText(java.lang.String);
@@ -50357,11 +51425,11 @@
   }
 
   public class ChoiceFormat extends java.text.NumberFormat {
-    ctor public ChoiceFormat(double[], java.lang.String[]);
     ctor public ChoiceFormat(java.lang.String);
+    ctor public ChoiceFormat(double[], java.lang.String[]);
     method public void applyPattern(java.lang.String);
-    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.Object[] getFormats();
     method public double[] getLimits();
     method public static final double nextDouble(double);
@@ -50381,8 +51449,8 @@
     method public void reset();
     method public static final short secondaryOrder(int);
     method public void setOffset(int);
-    method public void setText(java.text.CharacterIterator);
     method public void setText(java.lang.String);
+    method public void setText(java.text.CharacterIterator);
     method public static final short tertiaryOrder(int);
     field public static final int NULLORDER = -1; // 0xffffffff
   }
@@ -50397,18 +51465,18 @@
   public abstract class Collator implements java.lang.Cloneable java.util.Comparator {
     ctor protected Collator();
     method public java.lang.Object clone();
-    method public int compare(java.lang.Object, java.lang.Object);
     method public abstract int compare(java.lang.String, java.lang.String);
+    method public int compare(java.lang.Object, java.lang.Object);
     method public boolean equals(java.lang.String, java.lang.String);
-    method public static java.util.Locale[] getAvailableLocales();
+    method public static synchronized java.util.Locale[] getAvailableLocales();
     method public abstract java.text.CollationKey getCollationKey(java.lang.String);
-    method public int getDecomposition();
-    method public static java.text.Collator getInstance();
-    method public static java.text.Collator getInstance(java.util.Locale);
-    method public int getStrength();
+    method public synchronized int getDecomposition();
+    method public static synchronized java.text.Collator getInstance();
+    method public static synchronized java.text.Collator getInstance(java.util.Locale);
+    method public synchronized int getStrength();
     method public abstract int hashCode();
-    method public void setDecomposition(int);
-    method public void setStrength(int);
+    method public synchronized void setDecomposition(int);
+    method public synchronized void setStrength(int);
     field public static final int CANONICAL_DECOMPOSITION = 1; // 0x1
     field public static final int FULL_DECOMPOSITION = 2; // 0x2
     field public static final int IDENTICAL = 3; // 0x3
@@ -50421,8 +51489,8 @@
   public abstract class DateFormat extends java.text.Format {
     ctor protected DateFormat();
     method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(java.util.Date);
     method public abstract java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(java.util.Date);
     method public static java.util.Locale[] getAvailableLocales();
     method public java.util.Calendar getCalendar();
     method public static final java.text.DateFormat getDateInstance();
@@ -50527,9 +51595,9 @@
     ctor public DecimalFormat(java.lang.String, java.text.DecimalFormatSymbols);
     method public void applyLocalizedPattern(java.lang.String);
     method public void applyPattern(java.lang.String);
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.text.DecimalFormatSymbols getDecimalFormatSymbols();
     method public int getGroupingSize();
     method public int getMultiplier();
@@ -50565,15 +51633,17 @@
     method public java.lang.String getExponentSeparator();
     method public char getGroupingSeparator();
     method public java.lang.String getInfinity();
-    method public static java.text.DecimalFormatSymbols getInstance();
-    method public static java.text.DecimalFormatSymbols getInstance(java.util.Locale);
+    method public static final java.text.DecimalFormatSymbols getInstance();
+    method public static final java.text.DecimalFormatSymbols getInstance(java.util.Locale);
     method public java.lang.String getInternationalCurrencySymbol();
     method public char getMinusSign();
+    method public java.lang.String getMinusSignString();
     method public char getMonetaryDecimalSeparator();
     method public java.lang.String getNaN();
     method public char getPatternSeparator();
     method public char getPerMill();
     method public char getPercent();
+    method public java.lang.String getPercentString();
     method public char getZeroDigit();
     method public void setCurrency(java.util.Currency);
     method public void setCurrencySymbol(java.lang.String);
@@ -50610,8 +51680,8 @@
     method public final java.lang.String format(java.lang.Object);
     method public abstract java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object);
-    method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
     method public abstract java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
   }
 
   public static class Format.Field extends java.text.AttributedCharacterIterator.Attribute {
@@ -50619,17 +51689,17 @@
   }
 
   public class MessageFormat extends java.text.Format {
-    ctor public MessageFormat(java.lang.String, java.util.Locale);
     ctor public MessageFormat(java.lang.String);
+    ctor public MessageFormat(java.lang.String, java.util.Locale);
     method public void applyPattern(java.lang.String);
     method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public static java.lang.String format(java.lang.String, java.lang.Object...);
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.text.Format[] getFormats();
     method public java.text.Format[] getFormatsByArgumentIndex();
     method public java.util.Locale getLocale();
-    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
     method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
     method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
     method public void setFormat(int, java.text.Format);
     method public void setFormatByArgumentIndex(int, java.text.Format);
@@ -50660,11 +51730,11 @@
 
   public abstract class NumberFormat extends java.text.Format {
     ctor protected NumberFormat();
-    method public final java.lang.String format(double);
-    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(long);
-    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(double);
+    method public final java.lang.String format(long);
+    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
     method public static java.util.Locale[] getAvailableLocales();
     method public java.util.Currency getCurrency();
     method public static final java.text.NumberFormat getCurrencyInstance();
@@ -50684,8 +51754,8 @@
     method public java.math.RoundingMode getRoundingMode();
     method public boolean isGroupingUsed();
     method public boolean isParseIntegerOnly();
-    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
     method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
     method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
     method public void setCurrency(java.util.Currency);
     method public void setGroupingUsed(boolean);
@@ -50729,10 +51799,10 @@
 
   public class RuleBasedCollator extends java.text.Collator {
     ctor public RuleBasedCollator(java.lang.String) throws java.text.ParseException;
-    method public int compare(java.lang.String, java.lang.String);
-    method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+    method public synchronized int compare(java.lang.String, java.lang.String);
     method public java.text.CollationElementIterator getCollationElementIterator(java.lang.String);
-    method public java.text.CollationKey getCollationKey(java.lang.String);
+    method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+    method public synchronized java.text.CollationKey getCollationKey(java.lang.String);
     method public java.lang.String getRules();
     method public int hashCode();
   }
@@ -50740,8 +51810,8 @@
   public class SimpleDateFormat extends java.text.DateFormat {
     ctor public SimpleDateFormat();
     ctor public SimpleDateFormat(java.lang.String);
-    ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
     ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
+    ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
     method public void applyLocalizedPattern(java.lang.String);
     method public void applyPattern(java.lang.String);
     method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
@@ -50888,7 +51958,7 @@
     method public int size();
   }
 
-  public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.RandomAccess java.io.Serializable {
+  public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
     ctor public ArrayList(int);
     ctor public ArrayList();
     ctor public ArrayList(java.util.Collection<? extends E>);
@@ -50901,109 +51971,109 @@
 
   public class Arrays {
     method public static java.util.List<T> asList(T...);
-    method public static int binarySearch(byte[], byte);
-    method public static int binarySearch(byte[], int, int, byte);
+    method public static int binarySearch(long[], long);
+    method public static int binarySearch(long[], int, int, long);
+    method public static int binarySearch(int[], int);
+    method public static int binarySearch(int[], int, int, int);
+    method public static int binarySearch(short[], short);
+    method public static int binarySearch(short[], int, int, short);
     method public static int binarySearch(char[], char);
     method public static int binarySearch(char[], int, int, char);
+    method public static int binarySearch(byte[], byte);
+    method public static int binarySearch(byte[], int, int, byte);
     method public static int binarySearch(double[], double);
     method public static int binarySearch(double[], int, int, double);
     method public static int binarySearch(float[], float);
     method public static int binarySearch(float[], int, int, float);
-    method public static int binarySearch(int[], int);
-    method public static int binarySearch(int[], int, int, int);
-    method public static int binarySearch(long[], long);
-    method public static int binarySearch(long[], int, int, long);
     method public static int binarySearch(java.lang.Object[], java.lang.Object);
     method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object);
     method public static int binarySearch(T[], T, java.util.Comparator<? super T>);
     method public static int binarySearch(T[], int, int, T, java.util.Comparator<? super T>);
-    method public static int binarySearch(short[], short);
-    method public static int binarySearch(short[], int, int, short);
-    method public static boolean[] copyOf(boolean[], int);
-    method public static byte[] copyOf(byte[], int);
-    method public static char[] copyOf(char[], int);
-    method public static double[] copyOf(double[], int);
-    method public static float[] copyOf(float[], int);
-    method public static int[] copyOf(int[], int);
-    method public static long[] copyOf(long[], int);
-    method public static short[] copyOf(short[], int);
     method public static T[] copyOf(T[], int);
     method public static T[] copyOf(U[], int, java.lang.Class<? extends T[]>);
-    method public static boolean[] copyOfRange(boolean[], int, int);
-    method public static byte[] copyOfRange(byte[], int, int);
-    method public static char[] copyOfRange(char[], int, int);
-    method public static double[] copyOfRange(double[], int, int);
-    method public static float[] copyOfRange(float[], int, int);
-    method public static int[] copyOfRange(int[], int, int);
-    method public static long[] copyOfRange(long[], int, int);
-    method public static short[] copyOfRange(short[], int, int);
+    method public static byte[] copyOf(byte[], int);
+    method public static short[] copyOf(short[], int);
+    method public static int[] copyOf(int[], int);
+    method public static long[] copyOf(long[], int);
+    method public static char[] copyOf(char[], int);
+    method public static float[] copyOf(float[], int);
+    method public static double[] copyOf(double[], int);
+    method public static boolean[] copyOf(boolean[], int);
     method public static T[] copyOfRange(T[], int, int);
     method public static T[] copyOfRange(U[], int, int, java.lang.Class<? extends T[]>);
+    method public static byte[] copyOfRange(byte[], int, int);
+    method public static short[] copyOfRange(short[], int, int);
+    method public static int[] copyOfRange(int[], int, int);
+    method public static long[] copyOfRange(long[], int, int);
+    method public static char[] copyOfRange(char[], int, int);
+    method public static float[] copyOfRange(float[], int, int);
+    method public static double[] copyOfRange(double[], int, int);
+    method public static boolean[] copyOfRange(boolean[], int, int);
     method public static boolean deepEquals(java.lang.Object[], java.lang.Object[]);
     method public static int deepHashCode(java.lang.Object[]);
     method public static java.lang.String deepToString(java.lang.Object[]);
-    method public static boolean equals(byte[], byte[]);
+    method public static boolean equals(long[], long[]);
+    method public static boolean equals(int[], int[]);
     method public static boolean equals(short[], short[]);
     method public static boolean equals(char[], char[]);
-    method public static boolean equals(int[], int[]);
-    method public static boolean equals(long[], long[]);
-    method public static boolean equals(float[], float[]);
-    method public static boolean equals(double[], double[]);
+    method public static boolean equals(byte[], byte[]);
     method public static boolean equals(boolean[], boolean[]);
+    method public static boolean equals(double[], double[]);
+    method public static boolean equals(float[], float[]);
     method public static boolean equals(java.lang.Object[], java.lang.Object[]);
-    method public static void fill(byte[], byte);
-    method public static void fill(byte[], int, int, byte);
+    method public static void fill(long[], long);
+    method public static void fill(long[], int, int, long);
+    method public static void fill(int[], int);
+    method public static void fill(int[], int, int, int);
     method public static void fill(short[], short);
     method public static void fill(short[], int, int, short);
     method public static void fill(char[], char);
     method public static void fill(char[], int, int, char);
-    method public static void fill(int[], int);
-    method public static void fill(int[], int, int, int);
-    method public static void fill(long[], long);
-    method public static void fill(long[], int, int, long);
-    method public static void fill(float[], float);
-    method public static void fill(float[], int, int, float);
-    method public static void fill(double[], double);
-    method public static void fill(double[], int, int, double);
+    method public static void fill(byte[], byte);
+    method public static void fill(byte[], int, int, byte);
     method public static void fill(boolean[], boolean);
     method public static void fill(boolean[], int, int, boolean);
+    method public static void fill(double[], double);
+    method public static void fill(double[], int, int, double);
+    method public static void fill(float[], float);
+    method public static void fill(float[], int, int, float);
     method public static void fill(java.lang.Object[], java.lang.Object);
     method public static void fill(java.lang.Object[], int, int, java.lang.Object);
-    method public static int hashCode(boolean[]);
+    method public static int hashCode(long[]);
     method public static int hashCode(int[]);
     method public static int hashCode(short[]);
     method public static int hashCode(char[]);
     method public static int hashCode(byte[]);
-    method public static int hashCode(long[]);
+    method public static int hashCode(boolean[]);
     method public static int hashCode(float[]);
     method public static int hashCode(double[]);
     method public static int hashCode(java.lang.Object[]);
-    method public static void sort(byte[]);
-    method public static void sort(byte[], int, int);
-    method public static void sort(char[]);
-    method public static void sort(char[], int, int);
-    method public static void sort(double[]);
-    method public static void sort(double[], int, int);
-    method public static void sort(float[]);
-    method public static void sort(float[], int, int);
     method public static void sort(int[]);
     method public static void sort(int[], int, int);
     method public static void sort(long[]);
     method public static void sort(long[], int, int);
     method public static void sort(short[]);
     method public static void sort(short[], int, int);
+    method public static void sort(char[]);
+    method public static void sort(char[], int, int);
+    method public static void sort(byte[]);
+    method public static void sort(byte[], int, int);
+    method public static void sort(float[]);
+    method public static void sort(float[], int, int);
+    method public static void sort(double[]);
+    method public static void sort(double[], int, int);
     method public static void sort(java.lang.Object[]);
     method public static void sort(java.lang.Object[], int, int);
-    method public static void sort(T[], int, int, java.util.Comparator<? super T>);
     method public static void sort(T[], java.util.Comparator<? super T>);
-    method public static java.lang.String toString(boolean[]);
-    method public static java.lang.String toString(byte[]);
-    method public static java.lang.String toString(char[]);
-    method public static java.lang.String toString(double[]);
-    method public static java.lang.String toString(float[]);
-    method public static java.lang.String toString(int[]);
+    method public static void sort(T[], int, int, java.util.Comparator<? super T>);
     method public static java.lang.String toString(long[]);
+    method public static java.lang.String toString(int[]);
     method public static java.lang.String toString(short[]);
+    method public static java.lang.String toString(char[]);
+    method public static java.lang.String toString(byte[]);
+    method public static java.lang.String toString(boolean[]);
+    method public static java.lang.String toString(float[]);
+    method public static java.lang.String toString(double[]);
     method public static java.lang.String toString(java.lang.Object[]);
   }
 
@@ -51014,8 +52084,8 @@
     method public void andNot(java.util.BitSet);
     method public int cardinality();
     method public void clear(int);
-    method public void clear();
     method public void clear(int, int);
+    method public void clear();
     method public java.lang.Object clone();
     method public void flip(int);
     method public void flip(int, int);
@@ -51031,8 +52101,8 @@
     method public int previousSetBit(int);
     method public void set(int);
     method public void set(int, boolean);
-    method public void set(int, int, boolean);
     method public void set(int, int);
+    method public void set(int, int, boolean);
     method public int size();
     method public byte[] toByteArray();
     method public long[] toLongArray();
@@ -51064,10 +52134,10 @@
     method public java.util.Map<java.lang.String, java.lang.Integer> getDisplayNames(int, int, java.util.Locale);
     method public int getFirstDayOfWeek();
     method public abstract int getGreatestMinimum(int);
-    method public static synchronized java.util.Calendar getInstance();
-    method public static synchronized java.util.Calendar getInstance(java.util.Locale);
-    method public static synchronized java.util.Calendar getInstance(java.util.TimeZone);
-    method public static synchronized java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
+    method public static java.util.Calendar getInstance();
+    method public static java.util.Calendar getInstance(java.util.TimeZone);
+    method public static java.util.Calendar getInstance(java.util.Locale);
+    method public static java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
     method public abstract int getLeastMaximum(int);
     method public abstract int getMaximum(int);
     method public int getMinimalDaysInFirstWeek();
@@ -51075,11 +52145,14 @@
     method public final java.util.Date getTime();
     method public long getTimeInMillis();
     method public java.util.TimeZone getTimeZone();
+    method public int getWeekYear();
+    method public int getWeeksInWeekYear();
     method protected final int internalGet(int);
     method public boolean isLenient();
     method public final boolean isSet(int);
-    method public void roll(int, int);
+    method public boolean isWeekDateSupported();
     method public abstract void roll(int, boolean);
+    method public void roll(int, int);
     method public void set(int, int);
     method public final void set(int, int, int);
     method public final void set(int, int, int, int, int);
@@ -51090,6 +52163,7 @@
     method public final void setTime(java.util.Date);
     method public void setTimeInMillis(long);
     method public void setTimeZone(java.util.TimeZone);
+    method public void setWeekDate(int, int, int);
     field public static final int ALL_STYLES = 0; // 0x0
     field public static final int AM = 0; // 0x0
     field public static final int AM_PM = 9; // 0x9
@@ -51206,15 +52280,15 @@
     method public static java.util.Collection<T> synchronizedCollection(java.util.Collection<T>);
     method public static java.util.List<T> synchronizedList(java.util.List<T>);
     method public static java.util.Map<K, V> synchronizedMap(java.util.Map<K, V>);
-    method public static java.util.Set<E> synchronizedSet(java.util.Set<E>);
+    method public static java.util.Set<T> synchronizedSet(java.util.Set<T>);
     method public static java.util.SortedMap<K, V> synchronizedSortedMap(java.util.SortedMap<K, V>);
-    method public static java.util.SortedSet<E> synchronizedSortedSet(java.util.SortedSet<E>);
-    method public static java.util.Collection<E> unmodifiableCollection(java.util.Collection<? extends E>);
-    method public static java.util.List<E> unmodifiableList(java.util.List<? extends E>);
+    method public static java.util.SortedSet<T> synchronizedSortedSet(java.util.SortedSet<T>);
+    method public static java.util.Collection<T> unmodifiableCollection(java.util.Collection<? extends T>);
+    method public static java.util.List<T> unmodifiableList(java.util.List<? extends T>);
     method public static java.util.Map<K, V> unmodifiableMap(java.util.Map<? extends K, ? extends V>);
-    method public static java.util.Set<E> unmodifiableSet(java.util.Set<? extends E>);
+    method public static java.util.Set<T> unmodifiableSet(java.util.Set<? extends T>);
     method public static java.util.SortedMap<K, V> unmodifiableSortedMap(java.util.SortedMap<K, ? extends V>);
-    method public static java.util.SortedSet<E> unmodifiableSortedSet(java.util.SortedSet<E>);
+    method public static java.util.SortedSet<T> unmodifiableSortedSet(java.util.SortedSet<T>);
     field public static final java.util.List EMPTY_LIST;
     field public static final java.util.Map EMPTY_MAP;
     field public static final java.util.Set EMPTY_SET;
@@ -51228,8 +52302,8 @@
   public class ConcurrentModificationException extends java.lang.RuntimeException {
     ctor public ConcurrentModificationException();
     ctor public ConcurrentModificationException(java.lang.String);
-    ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
     ctor public ConcurrentModificationException(java.lang.Throwable);
+    ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
   }
 
   public final class Currency implements java.io.Serializable {
@@ -51240,16 +52314,17 @@
     method public java.lang.String getDisplayName(java.util.Locale);
     method public static java.util.Currency getInstance(java.lang.String);
     method public static java.util.Currency getInstance(java.util.Locale);
+    method public int getNumericCode();
     method public java.lang.String getSymbol();
     method public java.lang.String getSymbol(java.util.Locale);
   }
 
   public class Date implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
     ctor public Date();
+    ctor public Date(long);
     ctor public deprecated Date(int, int, int);
     ctor public deprecated Date(int, int, int, int, int);
     ctor public deprecated Date(int, int, int, int, int, int);
-    ctor public Date(long);
     ctor public deprecated Date(java.lang.String);
     method public static deprecated long UTC(int, int, int, int, int, int);
     method public boolean after(java.util.Date);
@@ -51327,7 +52402,7 @@
     ctor public EmptyStackException();
   }
 
-  public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
+  public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
     ctor public EnumMap(java.lang.Class<K>);
     ctor public EnumMap(java.util.EnumMap<K, ? extends V>);
     ctor public EnumMap(java.util.Map<K, ? extends V>);
@@ -51360,8 +52435,8 @@
   }
 
   public abstract class EventListenerProxy implements java.util.EventListener {
-    ctor public EventListenerProxy(java.util.EventListener);
-    method public java.util.EventListener getListener();
+    ctor public EventListenerProxy(T);
+    method public T getListener();
   }
 
   public class EventObject implements java.io.Serializable {
@@ -51370,14 +52445,14 @@
     field protected transient java.lang.Object source;
   }
 
-  public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException {
     ctor public FormatFlagsConversionMismatchException(java.lang.String, char);
     method public char getConversion();
     method public java.lang.String getFlags();
   }
 
   public abstract interface Formattable {
-    method public abstract void formatTo(java.util.Formatter, int, int, int) throws java.util.IllegalFormatException;
+    method public abstract void formatTo(java.util.Formatter, int, int, int);
   }
 
   public class FormattableFlags {
@@ -51397,10 +52472,10 @@
     ctor public Formatter(java.io.File) throws java.io.FileNotFoundException;
     ctor public Formatter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     ctor public Formatter(java.io.File, java.lang.String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public Formatter(java.io.PrintStream);
     ctor public Formatter(java.io.OutputStream);
     ctor public Formatter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
     ctor public Formatter(java.io.OutputStream, java.lang.String, java.util.Locale) throws java.io.UnsupportedEncodingException;
-    ctor public Formatter(java.io.PrintStream);
     method public void close();
     method public void flush();
     method public java.util.Formatter format(java.lang.String, java.lang.Object...);
@@ -51417,18 +52492,18 @@
     enum_constant public static final java.util.Formatter.BigDecimalLayoutForm SCIENTIFIC;
   }
 
-  public class FormatterClosedException extends java.lang.IllegalStateException implements java.io.Serializable {
+  public class FormatterClosedException extends java.lang.IllegalStateException {
     ctor public FormatterClosedException();
   }
 
   public class GregorianCalendar extends java.util.Calendar {
     ctor public GregorianCalendar();
+    ctor public GregorianCalendar(java.util.TimeZone);
+    ctor public GregorianCalendar(java.util.Locale);
+    ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
     ctor public GregorianCalendar(int, int, int);
     ctor public GregorianCalendar(int, int, int, int, int);
     ctor public GregorianCalendar(int, int, int, int, int, int);
-    ctor public GregorianCalendar(java.util.Locale);
-    ctor public GregorianCalendar(java.util.TimeZone);
-    ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
     method public void add(int, int);
     method protected void computeFields();
     method protected void computeTime();
@@ -51438,16 +52513,17 @@
     method public int getMaximum(int);
     method public int getMinimum(int);
     method public boolean isLeapYear(int);
+    method public final boolean isWeekDateSupported();
     method public void roll(int, boolean);
     method public void setGregorianChange(java.util.Date);
     field public static final int AD = 1; // 0x1
     field public static final int BC = 0; // 0x0
   }
 
-  public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
-    ctor public HashMap();
-    ctor public HashMap(int);
+  public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
     ctor public HashMap(int, float);
+    ctor public HashMap(int);
+    ctor public HashMap();
     ctor public HashMap(java.util.Map<? extends K, ? extends V>);
     method public java.lang.Object clone();
     method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
@@ -51455,36 +52531,36 @@
 
   public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
     ctor public HashSet();
-    ctor public HashSet(int);
-    ctor public HashSet(int, float);
     ctor public HashSet(java.util.Collection<? extends E>);
+    ctor public HashSet(int, float);
+    ctor public HashSet(int);
     method public java.lang.Object clone();
     method public java.util.Iterator<E> iterator();
     method public int size();
   }
 
   public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable {
-    ctor public Hashtable();
-    ctor public Hashtable(int);
     ctor public Hashtable(int, float);
+    ctor public Hashtable(int);
+    ctor public Hashtable();
     ctor public Hashtable(java.util.Map<? extends K, ? extends V>);
     method public synchronized void clear();
     method public synchronized java.lang.Object clone();
-    method public boolean contains(java.lang.Object);
+    method public synchronized boolean contains(java.lang.Object);
     method public synchronized boolean containsKey(java.lang.Object);
-    method public synchronized boolean containsValue(java.lang.Object);
+    method public boolean containsValue(java.lang.Object);
     method public synchronized java.util.Enumeration<V> elements();
-    method public synchronized java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
     method public synchronized V get(java.lang.Object);
     method public synchronized boolean isEmpty();
-    method public synchronized java.util.Set<K> keySet();
+    method public java.util.Set<K> keySet();
     method public synchronized java.util.Enumeration<K> keys();
     method public synchronized V put(K, V);
     method public synchronized void putAll(java.util.Map<? extends K, ? extends V>);
     method protected void rehash();
     method public synchronized V remove(java.lang.Object);
     method public synchronized int size();
-    method public synchronized java.util.Collection<V> values();
+    method public java.util.Collection<V> values();
   }
 
   public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
@@ -51495,21 +52571,21 @@
     method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
   }
 
-  public class IllegalFormatCodePointException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class IllegalFormatCodePointException extends java.util.IllegalFormatException {
     ctor public IllegalFormatCodePointException(int);
     method public int getCodePoint();
   }
 
-  public class IllegalFormatConversionException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class IllegalFormatConversionException extends java.util.IllegalFormatException {
     ctor public IllegalFormatConversionException(char, java.lang.Class<?>);
     method public java.lang.Class<?> getArgumentClass();
     method public char getConversion();
   }
 
-  public class IllegalFormatException extends java.lang.IllegalArgumentException implements java.io.Serializable {
+  public class IllegalFormatException extends java.lang.IllegalArgumentException {
   }
 
-  public class IllegalFormatFlagsException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class IllegalFormatFlagsException extends java.util.IllegalFormatException {
     ctor public IllegalFormatFlagsException(java.lang.String);
     method public java.lang.String getFlags();
   }
@@ -51531,14 +52607,14 @@
     method public int getErrorIndex();
   }
 
-  public class InputMismatchException extends java.util.NoSuchElementException implements java.io.Serializable {
+  public class InputMismatchException extends java.util.NoSuchElementException {
     ctor public InputMismatchException();
     ctor public InputMismatchException(java.lang.String);
   }
 
   public class InvalidPropertiesFormatException extends java.io.IOException {
-    ctor public InvalidPropertiesFormatException(java.lang.String);
     ctor public InvalidPropertiesFormatException(java.lang.Throwable);
+    ctor public InvalidPropertiesFormatException(java.lang.String);
   }
 
   public abstract interface Iterator {
@@ -51547,23 +52623,23 @@
     method public abstract void remove();
   }
 
-  public class LinkedHashMap extends java.util.HashMap {
-    ctor public LinkedHashMap();
-    ctor public LinkedHashMap(int);
+  public class LinkedHashMap extends java.util.HashMap implements java.util.Map {
     ctor public LinkedHashMap(int, float);
-    ctor public LinkedHashMap(int, float, boolean);
+    ctor public LinkedHashMap(int);
+    ctor public LinkedHashMap();
     ctor public LinkedHashMap(java.util.Map<? extends K, ? extends V>);
+    ctor public LinkedHashMap(int, float, boolean);
     method protected boolean removeEldestEntry(java.util.Map.Entry<K, V>);
   }
 
   public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
-    ctor public LinkedHashSet();
-    ctor public LinkedHashSet(int);
     ctor public LinkedHashSet(int, float);
+    ctor public LinkedHashSet(int);
+    ctor public LinkedHashSet();
     ctor public LinkedHashSet(java.util.Collection<? extends E>);
   }
 
-  public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.util.Queue java.io.Serializable {
+  public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable {
     ctor public LinkedList();
     ctor public LinkedList(java.util.Collection<? extends E>);
     method public void addFirst(E);
@@ -51594,10 +52670,10 @@
   }
 
   public abstract interface List implements java.util.Collection {
-    method public abstract void add(int, E);
     method public abstract boolean add(E);
-    method public abstract boolean addAll(int, java.util.Collection<? extends E>);
+    method public abstract void add(int, E);
     method public abstract boolean addAll(java.util.Collection<? extends E>);
+    method public abstract boolean addAll(int, java.util.Collection<? extends E>);
     method public abstract void clear();
     method public abstract boolean contains(java.lang.Object);
     method public abstract boolean containsAll(java.util.Collection<?>);
@@ -51610,8 +52686,8 @@
     method public abstract int lastIndexOf(java.lang.Object);
     method public abstract java.util.ListIterator<E> listIterator();
     method public abstract java.util.ListIterator<E> listIterator(int);
-    method public abstract E remove(int);
     method public abstract boolean remove(java.lang.Object);
+    method public abstract E remove(int);
     method public abstract boolean removeAll(java.util.Collection<?>);
     method public abstract boolean retainAll(java.util.Collection<?>);
     method public abstract E set(int, E);
@@ -51641,14 +52717,15 @@
   }
 
   public final class Locale implements java.lang.Cloneable java.io.Serializable {
-    ctor public Locale(java.lang.String);
-    ctor public Locale(java.lang.String, java.lang.String);
     ctor public Locale(java.lang.String, java.lang.String, java.lang.String);
+    ctor public Locale(java.lang.String, java.lang.String);
+    ctor public Locale(java.lang.String);
     method public java.lang.Object clone();
     method public static java.util.Locale forLanguageTag(java.lang.String);
     method public static java.util.Locale[] getAvailableLocales();
     method public java.lang.String getCountry();
     method public static java.util.Locale getDefault();
+    method public static java.util.Locale getDefault(java.util.Locale.Category);
     method public final java.lang.String getDisplayCountry();
     method public java.lang.String getDisplayCountry(java.util.Locale);
     method public final java.lang.String getDisplayLanguage();
@@ -51661,8 +52738,8 @@
     method public java.lang.String getDisplayVariant(java.util.Locale);
     method public java.lang.String getExtension(char);
     method public java.util.Set<java.lang.Character> getExtensionKeys();
-    method public java.lang.String getISO3Country();
-    method public java.lang.String getISO3Language();
+    method public java.lang.String getISO3Country() throws java.util.MissingResourceException;
+    method public java.lang.String getISO3Language() throws java.util.MissingResourceException;
     method public static java.lang.String[] getISOCountries();
     method public static java.lang.String[] getISOLanguages();
     method public java.lang.String getLanguage();
@@ -51672,6 +52749,7 @@
     method public java.lang.String getUnicodeLocaleType(java.lang.String);
     method public java.lang.String getVariant();
     method public static synchronized void setDefault(java.util.Locale);
+    method public static synchronized void setDefault(java.util.Locale.Category, java.util.Locale);
     method public java.lang.String toLanguageTag();
     method public final java.lang.String toString();
     field public static final java.util.Locale CANADA;
@@ -51717,6 +52795,13 @@
     method public java.util.Locale.Builder setVariant(java.lang.String);
   }
 
+  public static final class Locale.Category extends java.lang.Enum {
+    method public static java.util.Locale.Category valueOf(java.lang.String);
+    method public static final java.util.Locale.Category[] values();
+    enum_constant public static final java.util.Locale.Category DISPLAY;
+    enum_constant public static final java.util.Locale.Category FORMAT;
+  }
+
   public abstract interface Map {
     method public abstract void clear();
     method public abstract boolean containsKey(java.lang.Object);
@@ -51819,15 +52904,15 @@
 
   public class Observable {
     ctor public Observable();
-    method public void addObserver(java.util.Observer);
-    method protected void clearChanged();
-    method public int countObservers();
+    method public synchronized void addObserver(java.util.Observer);
+    method protected synchronized void clearChanged();
+    method public synchronized int countObservers();
     method public synchronized void deleteObserver(java.util.Observer);
     method public synchronized void deleteObservers();
-    method public boolean hasChanged();
+    method public synchronized boolean hasChanged();
     method public void notifyObservers();
     method public void notifyObservers(java.lang.Object);
-    method protected void setChanged();
+    method protected synchronized void setChanged();
   }
 
   public abstract interface Observer {
@@ -51856,16 +52941,16 @@
     method public java.lang.String getProperty(java.lang.String, java.lang.String);
     method public void list(java.io.PrintStream);
     method public void list(java.io.PrintWriter);
-    method public synchronized void load(java.io.InputStream) throws java.io.IOException;
     method public synchronized void load(java.io.Reader) throws java.io.IOException;
+    method public synchronized void load(java.io.InputStream) throws java.io.IOException;
     method public synchronized void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
     method public java.util.Enumeration<?> propertyNames();
     method public deprecated void save(java.io.OutputStream, java.lang.String);
-    method public java.lang.Object setProperty(java.lang.String, java.lang.String);
-    method public synchronized void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
-    method public synchronized void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+    method public synchronized java.lang.Object setProperty(java.lang.String, java.lang.String);
+    method public void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+    method public void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
     method public void storeToXML(java.io.OutputStream, java.lang.String) throws java.io.IOException;
-    method public synchronized void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
+    method public void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
     method public java.util.Set<java.lang.String> stringPropertyNames();
     field protected java.util.Properties defaults;
   }
@@ -51893,7 +52978,7 @@
   public class Random implements java.io.Serializable {
     ctor public Random();
     ctor public Random(long);
-    method protected synchronized int next(int);
+    method protected int next(int);
     method public boolean nextBoolean();
     method public void nextBytes(byte[]);
     method public double nextDouble();
@@ -51910,14 +52995,14 @@
 
   public abstract class ResourceBundle {
     ctor public ResourceBundle();
-    method public static void clearCache();
-    method public static void clearCache(java.lang.ClassLoader);
+    method public static final void clearCache();
+    method public static final void clearCache(java.lang.ClassLoader);
     method public boolean containsKey(java.lang.String);
-    method public static java.util.ResourceBundle getBundle(java.lang.String) throws java.util.MissingResourceException;
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) throws java.util.MissingResourceException;
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader);
     method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle.Control);
     method public abstract java.util.Enumeration<java.lang.String> getKeys();
     method public java.util.Locale getLocale();
@@ -51934,10 +53019,10 @@
   public static class ResourceBundle.Control {
     ctor protected ResourceBundle.Control();
     method public java.util.List<java.util.Locale> getCandidateLocales(java.lang.String, java.util.Locale);
-    method public static java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
+    method public static final java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
     method public java.util.Locale getFallbackLocale(java.lang.String, java.util.Locale);
     method public java.util.List<java.lang.String> getFormats(java.lang.String);
-    method public static java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
+    method public static final java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
     method public long getTimeToLive(java.lang.String, java.util.Locale);
     method public boolean needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long);
     method public java.util.ResourceBundle newBundle(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, boolean) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException;
@@ -51951,23 +53036,25 @@
   }
 
   public final class Scanner implements java.io.Closeable java.util.Iterator {
-    ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
-    ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
-    ctor public Scanner(java.lang.String);
+    ctor public Scanner(java.lang.Readable);
     ctor public Scanner(java.io.InputStream);
     ctor public Scanner(java.io.InputStream, java.lang.String);
-    ctor public Scanner(java.lang.Readable);
+    ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
+    ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
+    ctor public Scanner(java.nio.file.Path) throws java.io.IOException;
+    ctor public Scanner(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+    ctor public Scanner(java.lang.String);
     ctor public Scanner(java.nio.channels.ReadableByteChannel);
     ctor public Scanner(java.nio.channels.ReadableByteChannel, java.lang.String);
     method public void close();
     method public java.util.regex.Pattern delimiter();
-    method public java.lang.String findInLine(java.util.regex.Pattern);
     method public java.lang.String findInLine(java.lang.String);
-    method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
+    method public java.lang.String findInLine(java.util.regex.Pattern);
     method public java.lang.String findWithinHorizon(java.lang.String, int);
+    method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
     method public boolean hasNext();
-    method public boolean hasNext(java.util.regex.Pattern);
     method public boolean hasNext(java.lang.String);
+    method public boolean hasNext(java.util.regex.Pattern);
     method public boolean hasNextBigDecimal();
     method public boolean hasNextBigInteger();
     method public boolean hasNextBigInteger(int);
@@ -51987,8 +53074,8 @@
     method public java.util.Locale locale();
     method public java.util.regex.MatchResult match();
     method public java.lang.String next();
-    method public java.lang.String next(java.util.regex.Pattern);
     method public java.lang.String next(java.lang.String);
+    method public java.lang.String next(java.util.regex.Pattern);
     method public java.math.BigDecimal nextBigDecimal();
     method public java.math.BigInteger nextBigInteger();
     method public java.math.BigInteger nextBigInteger(int);
@@ -52055,12 +53142,12 @@
     method public int getRawOffset();
     method public boolean inDaylightTime(java.util.Date);
     method public void setDSTSavings(int);
-    method public void setEndRule(int, int, int);
     method public void setEndRule(int, int, int, int);
+    method public void setEndRule(int, int, int);
     method public void setEndRule(int, int, int, int, boolean);
     method public void setRawOffset(int);
-    method public void setStartRule(int, int, int);
     method public void setStartRule(int, int, int, int);
+    method public void setStartRule(int, int, int);
     method public void setStartRule(int, int, int, int, boolean);
     method public void setStartYear(int);
     method public boolean useDaylightTime();
@@ -52071,11 +53158,14 @@
 
   public abstract interface SortedMap implements java.util.Map {
     method public abstract java.util.Comparator<? super K> comparator();
+    method public abstract java.util.Set<java.util.Map.Entry<K, V>> entrySet();
     method public abstract K firstKey();
     method public abstract java.util.SortedMap<K, V> headMap(K);
+    method public abstract java.util.Set<K> keySet();
     method public abstract K lastKey();
     method public abstract java.util.SortedMap<K, V> subMap(K, K);
     method public abstract java.util.SortedMap<K, V> tailMap(K);
+    method public abstract java.util.Collection<V> values();
   }
 
   public abstract interface SortedSet implements java.util.Set {
@@ -52097,9 +53187,9 @@
   }
 
   public class StringTokenizer implements java.util.Enumeration {
-    ctor public StringTokenizer(java.lang.String);
-    ctor public StringTokenizer(java.lang.String, java.lang.String);
     ctor public StringTokenizer(java.lang.String, java.lang.String, boolean);
+    ctor public StringTokenizer(java.lang.String, java.lang.String);
+    ctor public StringTokenizer(java.lang.String);
     method public int countTokens();
     method public boolean hasMoreElements();
     method public boolean hasMoreTokens();
@@ -52111,21 +53201,22 @@
   public abstract class TimeZone implements java.lang.Cloneable java.io.Serializable {
     ctor public TimeZone();
     method public java.lang.Object clone();
-    method public static synchronized java.lang.String[] getAvailableIDs();
     method public static synchronized java.lang.String[] getAvailableIDs(int);
+    method public static synchronized java.lang.String[] getAvailableIDs();
     method public int getDSTSavings();
-    method public static synchronized java.util.TimeZone getDefault();
+    method public static java.util.TimeZone getDefault();
     method public final java.lang.String getDisplayName();
     method public final java.lang.String getDisplayName(java.util.Locale);
     method public final java.lang.String getDisplayName(boolean, int);
     method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
     method public java.lang.String getID();
-    method public int getOffset(long);
     method public abstract int getOffset(int, int, int, int, int, int);
+    method public int getOffset(long);
     method public abstract int getRawOffset();
     method public static synchronized java.util.TimeZone getTimeZone(java.lang.String);
     method public boolean hasSameRules(java.util.TimeZone);
     method public abstract boolean inDaylightTime(java.util.Date);
+    method public boolean observesDaylightTime();
     method public static synchronized void setDefault(java.util.TimeZone);
     method public void setID(java.lang.String);
     method public abstract void setRawOffset(int);
@@ -52135,14 +53226,14 @@
   }
 
   public class Timer {
-    ctor public Timer(java.lang.String, boolean);
-    ctor public Timer(java.lang.String);
-    ctor public Timer(boolean);
     ctor public Timer();
+    ctor public Timer(boolean);
+    ctor public Timer(java.lang.String);
+    ctor public Timer(java.lang.String, boolean);
     method public void cancel();
     method public int purge();
-    method public void schedule(java.util.TimerTask, java.util.Date);
     method public void schedule(java.util.TimerTask, long);
+    method public void schedule(java.util.TimerTask, java.util.Date);
     method public void schedule(java.util.TimerTask, long, long);
     method public void schedule(java.util.TimerTask, java.util.Date, long);
     method public void scheduleAtFixedRate(java.util.TimerTask, long, long);
@@ -52161,10 +53252,10 @@
     ctor public TooManyListenersException(java.lang.String);
   }
 
-  public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable java.util.SortedMap {
+  public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable {
     ctor public TreeMap();
-    ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
     ctor public TreeMap(java.util.Comparator<? super K>);
+    ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
     ctor public TreeMap(java.util.SortedMap<K, ? extends V>);
     method public java.util.Map.Entry<K, V> ceilingEntry(K);
     method public K ceilingKey(K);
@@ -52196,8 +53287,8 @@
 
   public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable {
     ctor public TreeSet();
-    ctor public TreeSet(java.util.Collection<? extends E>);
     ctor public TreeSet(java.util.Comparator<? super E>);
+    ctor public TreeSet(java.util.Collection<? extends E>);
     ctor public TreeSet(java.util.SortedSet<E>);
     method public E ceiling(E);
     method public java.lang.Object clone();
@@ -52247,9 +53338,9 @@
   }
 
   public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
-    ctor public Vector();
-    ctor public Vector(int);
     ctor public Vector(int, int);
+    ctor public Vector(int);
+    ctor public Vector();
     ctor public Vector(java.util.Collection<? extends E>);
     method public synchronized void addElement(E);
     method public synchronized int capacity();
@@ -52259,7 +53350,7 @@
     method public java.util.Enumeration<E> elements();
     method public synchronized void ensureCapacity(int);
     method public synchronized E firstElement();
-    method public E get(int);
+    method public synchronized E get(int);
     method public synchronized int indexOf(java.lang.Object, int);
     method public synchronized void insertElementAt(E, int);
     method public synchronized E lastElement();
@@ -52277,9 +53368,9 @@
   }
 
   public class WeakHashMap extends java.util.AbstractMap implements java.util.Map {
-    ctor public WeakHashMap();
-    ctor public WeakHashMap(int);
     ctor public WeakHashMap(int, float);
+    ctor public WeakHashMap(int);
+    ctor public WeakHashMap();
     ctor public WeakHashMap(java.util.Map<? extends K, ? extends V>);
     method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
   }
@@ -53517,16 +54608,16 @@
 
   public class Attributes implements java.lang.Cloneable java.util.Map {
     ctor public Attributes();
-    ctor public Attributes(java.util.jar.Attributes);
     ctor public Attributes(int);
+    ctor public Attributes(java.util.jar.Attributes);
     method public void clear();
     method public java.lang.Object clone();
     method public boolean containsKey(java.lang.Object);
     method public boolean containsValue(java.lang.Object);
     method public java.util.Set<java.util.Map.Entry<java.lang.Object, java.lang.Object>> entrySet();
     method public java.lang.Object get(java.lang.Object);
-    method public java.lang.String getValue(java.util.jar.Attributes.Name);
     method public java.lang.String getValue(java.lang.String);
+    method public java.lang.String getValue(java.util.jar.Attributes.Name);
     method public boolean isEmpty();
     method public java.util.Set<java.lang.Object> keySet();
     method public java.lang.Object put(java.lang.Object, java.lang.Object);
@@ -53574,19 +54665,20 @@
   }
 
   public class JarFile extends java.util.zip.ZipFile {
+    ctor public JarFile(java.lang.String) throws java.io.IOException;
+    ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
     ctor public JarFile(java.io.File) throws java.io.IOException;
     ctor public JarFile(java.io.File, boolean) throws java.io.IOException;
     ctor public JarFile(java.io.File, boolean, int) throws java.io.IOException;
-    ctor public JarFile(java.lang.String) throws java.io.IOException;
-    ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
     method public java.util.jar.JarEntry getJarEntry(java.lang.String);
     method public java.util.jar.Manifest getManifest() throws java.io.IOException;
+    method public boolean hasClassPathAttribute() throws java.io.IOException;
     field public static final java.lang.String MANIFEST_NAME = "META-INF/MANIFEST.MF";
   }
 
   public class JarInputStream extends java.util.zip.ZipInputStream {
-    ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
     ctor public JarInputStream(java.io.InputStream) throws java.io.IOException;
+    ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
     method public java.util.jar.Manifest getManifest();
     method public java.util.jar.JarEntry getNextJarEntry() throws java.io.IOException;
   }
@@ -53610,7 +54702,7 @@
   }
 
   public abstract class Pack200 {
-    method public static java.util.jar.Pack200.Packer newPacker();
+    method public static synchronized java.util.jar.Pack200.Packer newPacker();
     method public static java.util.jar.Pack200.Unpacker newUnpacker();
   }
 
@@ -53664,7 +54756,7 @@
 
   public class ErrorManager {
     ctor public ErrorManager();
-    method public void error(java.lang.String, java.lang.Exception, int);
+    method public synchronized void error(java.lang.String, java.lang.Exception, int);
     field public static final int CLOSE_FAILURE = 3; // 0x3
     field public static final int FLUSH_FAILURE = 2; // 0x2
     field public static final int FORMAT_FAILURE = 5; // 0x5
@@ -53674,11 +54766,11 @@
   }
 
   public class FileHandler extends java.util.logging.StreamHandler {
-    ctor public FileHandler() throws java.io.IOException;
-    ctor public FileHandler(java.lang.String) throws java.io.IOException;
-    ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException;
-    ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException;
-    ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException;
+    ctor public FileHandler() throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException, java.lang.SecurityException;
   }
 
   public abstract interface Filter {
@@ -53688,28 +54780,28 @@
   public abstract class Formatter {
     ctor protected Formatter();
     method public abstract java.lang.String format(java.util.logging.LogRecord);
-    method public java.lang.String formatMessage(java.util.logging.LogRecord);
+    method public synchronized java.lang.String formatMessage(java.util.logging.LogRecord);
     method public java.lang.String getHead(java.util.logging.Handler);
     method public java.lang.String getTail(java.util.logging.Handler);
   }
 
   public abstract class Handler {
     ctor protected Handler();
-    method public abstract void close();
+    method public abstract void close() throws java.lang.SecurityException;
     method public abstract void flush();
     method public java.lang.String getEncoding();
     method public java.util.logging.ErrorManager getErrorManager();
     method public java.util.logging.Filter getFilter();
     method public java.util.logging.Formatter getFormatter();
-    method public java.util.logging.Level getLevel();
+    method public synchronized java.util.logging.Level getLevel();
     method public boolean isLoggable(java.util.logging.LogRecord);
     method public abstract void publish(java.util.logging.LogRecord);
     method protected void reportError(java.lang.String, java.lang.Exception, int);
-    method public void setEncoding(java.lang.String) throws java.io.UnsupportedEncodingException;
+    method public void setEncoding(java.lang.String) throws java.lang.SecurityException, java.io.UnsupportedEncodingException;
     method public void setErrorManager(java.util.logging.ErrorManager);
-    method public void setFilter(java.util.logging.Filter);
-    method public void setFormatter(java.util.logging.Formatter);
-    method public void setLevel(java.util.logging.Level);
+    method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+    method public void setFormatter(java.util.logging.Formatter) throws java.lang.SecurityException;
+    method public synchronized void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
   }
 
   public class Level implements java.io.Serializable {
@@ -53719,7 +54811,7 @@
     method public java.lang.String getName();
     method public java.lang.String getResourceBundleName();
     method public final int intValue();
-    method public static java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
+    method public static synchronized java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
     method public final java.lang.String toString();
     field public static final java.util.logging.Level ALL;
     field public static final java.util.logging.Level CONFIG;
@@ -53734,18 +54826,18 @@
 
   public class LogManager {
     ctor protected LogManager();
-    method public synchronized boolean addLogger(java.util.logging.Logger);
-    method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
-    method public void checkAccess();
+    method public boolean addLogger(java.util.logging.Logger);
+    method public void addPropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+    method public void checkAccess() throws java.lang.SecurityException;
     method public static java.util.logging.LogManager getLogManager();
-    method public synchronized java.util.logging.Logger getLogger(java.lang.String);
-    method public synchronized java.util.Enumeration<java.lang.String> getLoggerNames();
-    method public static java.util.logging.LoggingMXBean getLoggingMXBean();
+    method public java.util.logging.Logger getLogger(java.lang.String);
+    method public java.util.Enumeration<java.lang.String> getLoggerNames();
+    method public static synchronized java.util.logging.LoggingMXBean getLoggingMXBean();
     method public java.lang.String getProperty(java.lang.String);
-    method public void readConfiguration() throws java.io.IOException;
-    method public void readConfiguration(java.io.InputStream) throws java.io.IOException;
-    method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
-    method public synchronized void reset();
+    method public void readConfiguration() throws java.io.IOException, java.lang.SecurityException;
+    method public void readConfiguration(java.io.InputStream) throws java.io.IOException, java.lang.SecurityException;
+    method public void removePropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+    method public void reset() throws java.lang.SecurityException;
     field public static final java.lang.String LOGGING_MXBEAN_NAME = "java.util.logging:type=Logging";
   }
 
@@ -53779,7 +54871,7 @@
 
   public class Logger {
     ctor protected Logger(java.lang.String, java.lang.String);
-    method public void addHandler(java.util.logging.Handler);
+    method public void addHandler(java.util.logging.Handler) throws java.lang.SecurityException;
     method public void config(java.lang.String);
     method public void entering(java.lang.String, java.lang.String);
     method public void entering(java.lang.String, java.lang.String, java.lang.Object);
@@ -53792,7 +54884,7 @@
     method public static java.util.logging.Logger getAnonymousLogger();
     method public static java.util.logging.Logger getAnonymousLogger(java.lang.String);
     method public java.util.logging.Filter getFilter();
-    method public static java.util.logging.Logger getGlobal();
+    method public static final java.util.logging.Logger getGlobal();
     method public java.util.logging.Handler[] getHandlers();
     method public java.util.logging.Level getLevel();
     method public static java.util.logging.Logger getLogger(java.lang.String);
@@ -53804,11 +54896,11 @@
     method public boolean getUseParentHandlers();
     method public void info(java.lang.String);
     method public boolean isLoggable(java.util.logging.Level);
+    method public void log(java.util.logging.LogRecord);
     method public void log(java.util.logging.Level, java.lang.String);
     method public void log(java.util.logging.Level, java.lang.String, java.lang.Object);
     method public void log(java.util.logging.Level, java.lang.String, java.lang.Object[]);
     method public void log(java.util.logging.Level, java.lang.String, java.lang.Throwable);
-    method public void log(java.util.logging.LogRecord);
     method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String);
     method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
     method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
@@ -53817,9 +54909,9 @@
     method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
     method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
     method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
-    method public void removeHandler(java.util.logging.Handler);
-    method public void setFilter(java.util.logging.Filter);
-    method public void setLevel(java.util.logging.Level);
+    method public void removeHandler(java.util.logging.Handler) throws java.lang.SecurityException;
+    method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+    method public void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
     method public void setParent(java.util.logging.Logger);
     method public void setUseParentHandlers(boolean);
     method public void severe(java.lang.String);
@@ -53836,24 +54928,24 @@
     method public abstract void setLoggerLevel(java.lang.String, java.lang.String);
   }
 
-  public final class LoggingPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
-    ctor public LoggingPermission(java.lang.String, java.lang.String);
+  public final class LoggingPermission extends java.security.BasicPermission {
+    ctor public LoggingPermission(java.lang.String, java.lang.String) throws java.lang.IllegalArgumentException;
   }
 
   public class MemoryHandler extends java.util.logging.Handler {
     ctor public MemoryHandler();
     ctor public MemoryHandler(java.util.logging.Handler, int, java.util.logging.Level);
-    method public void close();
+    method public void close() throws java.lang.SecurityException;
     method public void flush();
-    method public java.util.logging.Level getPushLevel();
+    method public synchronized java.util.logging.Level getPushLevel();
     method public synchronized void publish(java.util.logging.LogRecord);
-    method public void push();
-    method public void setPushLevel(java.util.logging.Level);
+    method public synchronized void push();
+    method public void setPushLevel(java.util.logging.Level) throws java.lang.SecurityException;
   }
 
   public class SimpleFormatter extends java.util.logging.Formatter {
     ctor public SimpleFormatter();
-    method public java.lang.String format(java.util.logging.LogRecord);
+    method public synchronized java.lang.String format(java.util.logging.LogRecord);
   }
 
   public class SocketHandler extends java.util.logging.StreamHandler {
@@ -53864,10 +54956,10 @@
   public class StreamHandler extends java.util.logging.Handler {
     ctor public StreamHandler();
     ctor public StreamHandler(java.io.OutputStream, java.util.logging.Formatter);
-    method public void close();
-    method public void flush();
+    method public synchronized void close() throws java.lang.SecurityException;
+    method public synchronized void flush();
     method public synchronized void publish(java.util.logging.LogRecord);
-    method protected void setOutputStream(java.io.OutputStream);
+    method protected synchronized void setOutputStream(java.io.OutputStream) throws java.lang.SecurityException;
   }
 
   public class XMLFormatter extends java.util.logging.Formatter {
@@ -53937,12 +55029,12 @@
   }
 
   public class InvalidPreferencesFormatException extends java.lang.Exception {
+    ctor public InvalidPreferencesFormatException(java.lang.Throwable);
     ctor public InvalidPreferencesFormatException(java.lang.String);
     ctor public InvalidPreferencesFormatException(java.lang.String, java.lang.Throwable);
-    ctor public InvalidPreferencesFormatException(java.lang.Throwable);
   }
 
-  public class NodeChangeEvent extends java.util.EventObject implements java.io.Serializable {
+  public class NodeChangeEvent extends java.util.EventObject {
     ctor public NodeChangeEvent(java.util.prefs.Preferences, java.util.prefs.Preferences);
     method public java.util.prefs.Preferences getChild();
     method public java.util.prefs.Preferences getParent();
@@ -53953,7 +55045,7 @@
     method public abstract void childRemoved(java.util.prefs.NodeChangeEvent);
   }
 
-  public class PreferenceChangeEvent extends java.util.EventObject implements java.io.Serializable {
+  public class PreferenceChangeEvent extends java.util.EventObject {
     ctor public PreferenceChangeEvent(java.util.prefs.Preferences, java.lang.String, java.lang.String);
     method public java.lang.String getKey();
     method public java.lang.String getNewValue();
@@ -54098,8 +55190,8 @@
     method public long getValue();
     method public void reset();
     method public void update(int);
-    method public void update(byte[]);
     method public void update(byte[], int, int);
+    method public void update(byte[]);
   }
 
   public class CRC32 implements java.util.zip.Checksum {
@@ -54107,8 +55199,8 @@
     method public long getValue();
     method public void reset();
     method public void update(int);
-    method public void update(byte[]);
     method public void update(byte[], int, int);
+    method public void update(byte[]);
   }
 
   public class CheckedInputStream extends java.io.FilterInputStream {
@@ -54124,8 +55216,8 @@
   public abstract interface Checksum {
     method public abstract long getValue();
     method public abstract void reset();
-    method public abstract void update(byte[], int, int);
     method public abstract void update(int);
+    method public abstract void update(byte[], int, int);
   }
 
   public class DataFormatException extends java.lang.Exception {
@@ -54134,28 +55226,28 @@
   }
 
   public class Deflater {
-    ctor public Deflater();
-    ctor public Deflater(int);
     ctor public Deflater(int, boolean);
+    ctor public Deflater(int);
+    ctor public Deflater();
+    method public int deflate(byte[], int, int);
     method public int deflate(byte[]);
-    method public synchronized int deflate(byte[], int, int);
-    method public synchronized int deflate(byte[], int, int, int);
-    method public synchronized void end();
-    method public synchronized void finish();
-    method public synchronized boolean finished();
-    method public synchronized int getAdler();
-    method public synchronized long getBytesRead();
-    method public synchronized long getBytesWritten();
-    method public synchronized int getTotalIn();
-    method public synchronized int getTotalOut();
-    method public synchronized boolean needsInput();
-    method public synchronized void reset();
+    method public int deflate(byte[], int, int, int);
+    method public void end();
+    method public void finish();
+    method public boolean finished();
+    method public int getAdler();
+    method public long getBytesRead();
+    method public long getBytesWritten();
+    method public int getTotalIn();
+    method public int getTotalOut();
+    method public boolean needsInput();
+    method public void reset();
+    method public void setDictionary(byte[], int, int);
     method public void setDictionary(byte[]);
-    method public synchronized void setDictionary(byte[], int, int);
+    method public void setInput(byte[], int, int);
     method public void setInput(byte[]);
-    method public synchronized void setInput(byte[], int, int);
-    method public synchronized void setLevel(int);
-    method public synchronized void setStrategy(int);
+    method public void setLevel(int);
+    method public void setStrategy(int);
     field public static final int BEST_COMPRESSION = 9; // 0x9
     field public static final int BEST_SPEED = 1; // 0x1
     field public static final int DEFAULT_COMPRESSION = -1; // 0xffffffff
@@ -54178,12 +55270,12 @@
   }
 
   public class DeflaterOutputStream extends java.io.FilterOutputStream {
-    ctor public DeflaterOutputStream(java.io.OutputStream);
-    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
-    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
-    ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
-    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
     ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int, boolean);
+    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
+    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
+    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
+    ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
+    ctor public DeflaterOutputStream(java.io.OutputStream);
     method protected void deflate() throws java.io.IOException;
     method public void finish() throws java.io.IOException;
     field protected byte[] buf;
@@ -54191,49 +55283,50 @@
   }
 
   public class GZIPInputStream extends java.util.zip.InflaterInputStream {
-    ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
     ctor public GZIPInputStream(java.io.InputStream, int) throws java.io.IOException;
+    ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
     field public static final int GZIP_MAGIC = 35615; // 0x8b1f
     field protected java.util.zip.CRC32 crc;
     field protected boolean eos;
   }
 
   public class GZIPOutputStream extends java.util.zip.DeflaterOutputStream {
-    ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
-    ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
     ctor public GZIPOutputStream(java.io.OutputStream, int) throws java.io.IOException;
     ctor public GZIPOutputStream(java.io.OutputStream, int, boolean) throws java.io.IOException;
+    ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
+    ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
     field protected java.util.zip.CRC32 crc;
   }
 
   public class Inflater {
-    ctor public Inflater();
     ctor public Inflater(boolean);
-    method public synchronized void end();
-    method public synchronized boolean finished();
-    method public synchronized int getAdler();
-    method public synchronized long getBytesRead();
-    method public synchronized long getBytesWritten();
-    method public synchronized int getRemaining();
-    method public synchronized int getTotalIn();
-    method public synchronized int getTotalOut();
+    ctor public Inflater();
+    method public void end();
+    method public boolean finished();
+    method public int getAdler();
+    method public long getBytesRead();
+    method public long getBytesWritten();
+    method public int getRemaining();
+    method public int getTotalIn();
+    method public int getTotalOut();
+    method public int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
     method public int inflate(byte[]) throws java.util.zip.DataFormatException;
-    method public synchronized int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
-    method public synchronized boolean needsDictionary();
-    method public synchronized boolean needsInput();
-    method public synchronized void reset();
-    method public synchronized void setDictionary(byte[]);
-    method public synchronized void setDictionary(byte[], int, int);
-    method public synchronized void setInput(byte[]);
-    method public synchronized void setInput(byte[], int, int);
+    method public boolean needsDictionary();
+    method public boolean needsInput();
+    method public void reset();
+    method public void setDictionary(byte[], int, int);
+    method public void setDictionary(byte[]);
+    method public void setInput(byte[], int, int);
+    method public void setInput(byte[]);
   }
 
   public class InflaterInputStream extends java.io.FilterInputStream {
-    ctor public InflaterInputStream(java.io.InputStream);
-    ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
     ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater, int);
+    ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
+    ctor public InflaterInputStream(java.io.InputStream);
     method protected void fill() throws java.io.IOException;
     field protected byte[] buf;
+    field protected boolean closed;
     field protected java.util.zip.Inflater inf;
     field protected int len;
   }
@@ -54321,9 +55414,12 @@
   }
 
   public class ZipFile implements java.io.Closeable {
-    ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
     ctor public ZipFile(java.lang.String) throws java.io.IOException;
     ctor public ZipFile(java.io.File, int) throws java.io.IOException;
+    ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
+    ctor public ZipFile(java.io.File, int, java.nio.charset.Charset) throws java.io.IOException;
+    ctor public ZipFile(java.lang.String, java.nio.charset.Charset) throws java.io.IOException;
+    ctor public ZipFile(java.io.File, java.nio.charset.Charset) throws java.io.IOException;
     method public void close() throws java.io.IOException;
     method public java.util.Enumeration<? extends java.util.zip.ZipEntry> entries();
     method public java.lang.String getComment();
@@ -54377,6 +55473,7 @@
 
   public class ZipInputStream extends java.util.zip.InflaterInputStream {
     ctor public ZipInputStream(java.io.InputStream);
+    ctor public ZipInputStream(java.io.InputStream, java.nio.charset.Charset);
     method public void closeEntry() throws java.io.IOException;
     method protected java.util.zip.ZipEntry createZipEntry(java.lang.String);
     method public java.util.zip.ZipEntry getNextEntry() throws java.io.IOException;
@@ -54424,6 +55521,7 @@
 
   public class ZipOutputStream extends java.util.zip.DeflaterOutputStream {
     ctor public ZipOutputStream(java.io.OutputStream);
+    ctor public ZipOutputStream(java.io.OutputStream, java.nio.charset.Charset);
     method public void closeEntry() throws java.io.IOException;
     method public void putNextEntry(java.util.zip.ZipEntry) throws java.io.IOException;
     method public void setComment(java.lang.String);
@@ -54483,8 +55581,8 @@
   }
 
   public class BadPaddingException extends java.security.GeneralSecurityException {
-    ctor public BadPaddingException(java.lang.String);
     ctor public BadPaddingException();
+    ctor public BadPaddingException(java.lang.String);
   }
 
   public class Cipher {
@@ -54595,14 +55693,14 @@
     method public final int getOutputSize(int) throws java.lang.IllegalStateException;
     method public final java.security.Provider getProvider();
     method public final void init(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
-    method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+    method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final boolean isCryptoAllowed(java.security.Key) throws javax.crypto.ExemptionMechanismException;
   }
 
   public class ExemptionMechanismException extends java.security.GeneralSecurityException {
-    ctor public ExemptionMechanismException(java.lang.String);
     ctor public ExemptionMechanismException();
+    ctor public ExemptionMechanismException(java.lang.String);
   }
 
   public abstract class ExemptionMechanismSpi {
@@ -54611,13 +55709,13 @@
     method protected abstract int engineGenExemptionBlob(byte[], int) throws javax.crypto.ExemptionMechanismException, javax.crypto.ShortBufferException;
     method protected abstract int engineGetOutputSize(int);
     method protected abstract void engineInit(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
-    method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method protected abstract void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+    method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
   }
 
   public class IllegalBlockSizeException extends java.security.GeneralSecurityException {
-    ctor public IllegalBlockSizeException(java.lang.String);
     ctor public IllegalBlockSizeException();
+    ctor public IllegalBlockSizeException(java.lang.String);
   }
 
   public class KeyAgreement {
@@ -54655,19 +55753,19 @@
     method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
     method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
+    method public final void init(java.security.SecureRandom);
     method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
     method public final void init(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
     method public final void init(int);
     method public final void init(int, java.security.SecureRandom);
-    method public final void init(java.security.SecureRandom);
   }
 
   public abstract class KeyGeneratorSpi {
     ctor public KeyGeneratorSpi();
     method protected abstract javax.crypto.SecretKey engineGenerateKey();
+    method protected abstract void engineInit(java.security.SecureRandom);
     method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
     method protected abstract void engineInit(int, java.security.SecureRandom);
-    method protected abstract void engineInit(java.security.SecureRandom);
   }
 
   public class Mac implements java.lang.Cloneable {
@@ -54682,12 +55780,12 @@
     method public static final javax.crypto.Mac getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final int getMacLength();
     method public final java.security.Provider getProvider();
-    method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final void init(java.security.Key) throws java.security.InvalidKeyException;
+    method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final void reset();
     method public final void update(byte) throws java.lang.IllegalStateException;
-    method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
     method public final void update(byte[]) throws java.lang.IllegalStateException;
+    method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
     method public final void update(java.nio.ByteBuffer);
   }
 
@@ -54704,8 +55802,8 @@
   }
 
   public class NoSuchPaddingException extends java.security.GeneralSecurityException {
-    ctor public NoSuchPaddingException(java.lang.String);
     ctor public NoSuchPaddingException();
+    ctor public NoSuchPaddingException(java.lang.String);
   }
 
   public class NullCipher extends javax.crypto.Cipher {
@@ -54746,8 +55844,8 @@
   }
 
   public class ShortBufferException extends java.security.GeneralSecurityException {
-    ctor public ShortBufferException(java.lang.String);
     ctor public ShortBufferException();
+    ctor public ShortBufferException(java.lang.String);
   }
 
 }
@@ -54892,7 +55990,7 @@
     method public int getWordSize();
   }
 
-  public class SecretKeySpec implements java.security.spec.KeySpec javax.crypto.SecretKey java.io.Serializable {
+  public class SecretKeySpec implements java.security.spec.KeySpec javax.crypto.SecretKey {
     ctor public SecretKeySpec(byte[], java.lang.String);
     ctor public SecretKeySpec(byte[], int, int, java.lang.String);
     method public java.lang.String getAlgorithm();
@@ -55787,7 +56885,7 @@
     method public abstract java.net.ServerSocket createServerSocket(int) throws java.io.IOException;
     method public abstract java.net.ServerSocket createServerSocket(int, int) throws java.io.IOException;
     method public abstract java.net.ServerSocket createServerSocket(int, int, java.net.InetAddress) throws java.io.IOException;
-    method public static synchronized javax.net.ServerSocketFactory getDefault();
+    method public static javax.net.ServerSocketFactory getDefault();
   }
 
   public abstract class SocketFactory {
@@ -55797,7 +56895,7 @@
     method public abstract java.net.Socket createSocket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException, java.net.UnknownHostException;
     method public abstract java.net.Socket createSocket(java.net.InetAddress, int) throws java.io.IOException;
     method public abstract java.net.Socket createSocket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
-    method public static synchronized javax.net.SocketFactory getDefault();
+    method public static javax.net.SocketFactory getDefault();
   }
 
 }
@@ -55809,6 +56907,12 @@
     method public java.security.cert.CertPathParameters getParameters();
   }
 
+  public abstract class ExtendedSSLSession implements javax.net.ssl.SSLSession {
+    ctor public ExtendedSSLSession();
+    method public abstract java.lang.String[] getLocalSupportedSignatureAlgorithms();
+    method public abstract java.lang.String[] getPeerSupportedSignatureAlgorithms();
+  }
+
   public class HandshakeCompletedEvent extends java.util.EventObject {
     ctor public HandshakeCompletedEvent(javax.net.ssl.SSLSocket, javax.net.ssl.SSLSession);
     method public java.lang.String getCipherSuite();
@@ -55884,7 +56988,7 @@
     method public final javax.net.ssl.SSLEngine createSSLEngine();
     method public final javax.net.ssl.SSLEngine createSSLEngine(java.lang.String, int);
     method public final javax.net.ssl.SSLSessionContext getClientSessionContext();
-    method public static javax.net.ssl.SSLContext getDefault() throws java.security.NoSuchAlgorithmException;
+    method public static synchronized javax.net.ssl.SSLContext getDefault() throws java.security.NoSuchAlgorithmException;
     method public final javax.net.ssl.SSLParameters getDefaultSSLParameters();
     method public static javax.net.ssl.SSLContext getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
     method public static javax.net.ssl.SSLContext getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
@@ -55896,13 +57000,13 @@
     method public final javax.net.ssl.SSLSocketFactory getSocketFactory();
     method public final javax.net.ssl.SSLParameters getSupportedSSLParameters();
     method public final void init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom) throws java.security.KeyManagementException;
-    method public static void setDefault(javax.net.ssl.SSLContext);
+    method public static synchronized void setDefault(javax.net.ssl.SSLContext);
   }
 
   public abstract class SSLContextSpi {
     ctor public SSLContextSpi();
-    method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine(java.lang.String, int);
     method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine();
+    method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine(java.lang.String, int);
     method protected abstract javax.net.ssl.SSLSessionContext engineGetClientSessionContext();
     method protected javax.net.ssl.SSLParameters engineGetDefaultSSLParameters();
     method protected abstract javax.net.ssl.SSLSessionContext engineGetServerSessionContext();
@@ -55922,6 +57026,7 @@
     method public abstract boolean getEnableSessionCreation();
     method public abstract java.lang.String[] getEnabledCipherSuites();
     method public abstract java.lang.String[] getEnabledProtocols();
+    method public javax.net.ssl.SSLSession getHandshakeSession();
     method public abstract javax.net.ssl.SSLEngineResult.HandshakeStatus getHandshakeStatus();
     method public abstract boolean getNeedClientAuth();
     method public java.lang.String getPeerHost();
@@ -55941,12 +57046,12 @@
     method public void setSSLParameters(javax.net.ssl.SSLParameters);
     method public abstract void setUseClientMode(boolean);
     method public abstract void setWantClientAuth(boolean);
-    method public abstract javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int) throws javax.net.ssl.SSLException;
     method public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
     method public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[]) throws javax.net.ssl.SSLException;
-    method public abstract javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
-    method public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
+    method public abstract javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int) throws javax.net.ssl.SSLException;
     method public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
+    method public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
+    method public abstract javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
   }
 
   public class SSLEngineResult {
@@ -55994,11 +57099,15 @@
     ctor public SSLParameters();
     ctor public SSLParameters(java.lang.String[]);
     ctor public SSLParameters(java.lang.String[], java.lang.String[]);
+    method public java.security.AlgorithmConstraints getAlgorithmConstraints();
     method public java.lang.String[] getCipherSuites();
+    method public java.lang.String getEndpointIdentificationAlgorithm();
     method public boolean getNeedClientAuth();
     method public java.lang.String[] getProtocols();
     method public boolean getWantClientAuth();
+    method public void setAlgorithmConstraints(java.security.AlgorithmConstraints);
     method public void setCipherSuites(java.lang.String[]);
+    method public void setEndpointIdentificationAlgorithm(java.lang.String);
     method public void setNeedClientAuth(boolean);
     method public void setProtocols(java.lang.String[]);
     method public void setWantClientAuth(boolean);
@@ -56026,6 +57135,7 @@
     method public abstract java.lang.String[] getEnabledCipherSuites();
     method public abstract java.lang.String[] getEnabledProtocols();
     method public abstract boolean getNeedClientAuth();
+    method public javax.net.ssl.SSLParameters getSSLParameters();
     method public abstract java.lang.String[] getSupportedCipherSuites();
     method public abstract java.lang.String[] getSupportedProtocols();
     method public abstract boolean getUseClientMode();
@@ -56034,6 +57144,7 @@
     method public abstract void setEnabledCipherSuites(java.lang.String[]);
     method public abstract void setEnabledProtocols(java.lang.String[]);
     method public abstract void setNeedClientAuth(boolean);
+    method public void setSSLParameters(javax.net.ssl.SSLParameters);
     method public abstract void setUseClientMode(boolean);
     method public abstract void setWantClientAuth(boolean);
   }
@@ -56099,6 +57210,7 @@
     method public abstract boolean getEnableSessionCreation();
     method public abstract java.lang.String[] getEnabledCipherSuites();
     method public abstract java.lang.String[] getEnabledProtocols();
+    method public javax.net.ssl.SSLSession getHandshakeSession();
     method public abstract boolean getNeedClientAuth();
     method public javax.net.ssl.SSLParameters getSSLParameters();
     method public abstract javax.net.ssl.SSLSession getSession();
@@ -56154,6 +57266,14 @@
     method public java.lang.String chooseEngineServerAlias(java.lang.String, java.security.Principal[], javax.net.ssl.SSLEngine);
   }
 
+  public abstract class X509ExtendedTrustManager implements javax.net.ssl.X509TrustManager {
+    ctor public X509ExtendedTrustManager();
+    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
+    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
+    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
+    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
+  }
+
   public abstract interface X509KeyManager implements javax.net.ssl.KeyManager {
     method public abstract java.lang.String chooseClientAlias(java.lang.String[], java.security.Principal[], java.net.Socket);
     method public abstract java.lang.String chooseServerAlias(java.lang.String, java.security.Principal[], java.net.Socket);
@@ -56188,11 +57308,21 @@
     method public abstract boolean isDestroyed();
   }
 
+  public abstract deprecated class Policy {
+    ctor protected Policy();
+    method public abstract java.security.PermissionCollection getPermissions(javax.security.auth.Subject, java.security.CodeSource);
+    method public static javax.security.auth.Policy getPolicy();
+    method public abstract void refresh();
+    method public static void setPolicy(javax.security.auth.Policy);
+  }
+
   public final class PrivateCredentialPermission extends java.security.Permission {
     ctor public PrivateCredentialPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
     method public java.lang.String getCredentialClass();
     method public java.lang.String[][] getPrincipals();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -56250,6 +57380,43 @@
 
 package javax.security.auth.login {
 
+  public class AppConfigurationEntry {
+    ctor public AppConfigurationEntry(java.lang.String, javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag, java.util.Map<java.lang.String, ?>);
+    method public javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag getControlFlag();
+    method public java.lang.String getLoginModuleName();
+    method public java.util.Map<java.lang.String, ?> getOptions();
+  }
+
+  public static class AppConfigurationEntry.LoginModuleControlFlag {
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag OPTIONAL;
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag REQUIRED;
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag REQUISITE;
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag SUFFICIENT;
+  }
+
+  public abstract class Configuration {
+    ctor protected Configuration();
+    method public abstract javax.security.auth.login.AppConfigurationEntry[] getAppConfigurationEntry(java.lang.String);
+    method public static javax.security.auth.login.Configuration getConfiguration();
+    method public static javax.security.auth.login.Configuration getInstance(java.lang.String, javax.security.auth.login.Configuration.Parameters) throws java.security.NoSuchAlgorithmException;
+    method public static javax.security.auth.login.Configuration getInstance(java.lang.String, javax.security.auth.login.Configuration.Parameters, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static javax.security.auth.login.Configuration getInstance(java.lang.String, javax.security.auth.login.Configuration.Parameters, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public javax.security.auth.login.Configuration.Parameters getParameters();
+    method public java.security.Provider getProvider();
+    method public java.lang.String getType();
+    method public void refresh();
+    method public static void setConfiguration(javax.security.auth.login.Configuration);
+  }
+
+  public static abstract interface Configuration.Parameters {
+  }
+
+  public abstract class ConfigurationSpi {
+    ctor public ConfigurationSpi();
+    method protected abstract javax.security.auth.login.AppConfigurationEntry[] engineGetAppConfigurationEntry(java.lang.String);
+    method protected void engineRefresh();
+  }
+
   public class LoginException extends java.security.GeneralSecurityException {
     ctor public LoginException();
     ctor public LoginException(java.lang.String);
@@ -56260,10 +57427,10 @@
 package javax.security.auth.x500 {
 
   public final class X500Principal implements java.security.Principal java.io.Serializable {
-    ctor public X500Principal(byte[]);
-    ctor public X500Principal(java.io.InputStream);
     ctor public X500Principal(java.lang.String);
     ctor public X500Principal(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
+    ctor public X500Principal(byte[]);
+    ctor public X500Principal(java.io.InputStream);
     method public byte[] getEncoded();
     method public java.lang.String getName();
     method public java.lang.String getName(java.lang.String);
@@ -56287,28 +57454,28 @@
   }
 
   public class CertificateEncodingException extends javax.security.cert.CertificateException {
-    ctor public CertificateEncodingException(java.lang.String);
     ctor public CertificateEncodingException();
+    ctor public CertificateEncodingException(java.lang.String);
   }
 
   public class CertificateException extends java.lang.Exception {
-    ctor public CertificateException(java.lang.String);
     ctor public CertificateException();
+    ctor public CertificateException(java.lang.String);
   }
 
   public class CertificateExpiredException extends javax.security.cert.CertificateException {
-    ctor public CertificateExpiredException(java.lang.String);
     ctor public CertificateExpiredException();
+    ctor public CertificateExpiredException(java.lang.String);
   }
 
   public class CertificateNotYetValidException extends javax.security.cert.CertificateException {
-    ctor public CertificateNotYetValidException(java.lang.String);
     ctor public CertificateNotYetValidException();
+    ctor public CertificateNotYetValidException(java.lang.String);
   }
 
   public class CertificateParsingException extends javax.security.cert.CertificateException {
-    ctor public CertificateParsingException(java.lang.String);
     ctor public CertificateParsingException();
+    ctor public CertificateParsingException(java.lang.String);
   }
 
   public abstract class X509Certificate extends javax.security.cert.Certificate {
@@ -56335,11 +57502,12 @@
   public abstract interface CommonDataSource {
     method public abstract java.io.PrintWriter getLogWriter() throws java.sql.SQLException;
     method public abstract int getLoginTimeout() throws java.sql.SQLException;
+    method public abstract java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException;
     method public abstract void setLogWriter(java.io.PrintWriter) throws java.sql.SQLException;
     method public abstract void setLoginTimeout(int) throws java.sql.SQLException;
   }
 
-  public class ConnectionEvent extends java.util.EventObject implements java.io.Serializable {
+  public class ConnectionEvent extends java.util.EventObject {
     ctor public ConnectionEvent(javax.sql.PooledConnection);
     ctor public ConnectionEvent(javax.sql.PooledConnection, java.sql.SQLException);
     method public java.sql.SQLException getSQLException();
@@ -56388,21 +57556,21 @@
     method public abstract void removeRowSetListener(javax.sql.RowSetListener);
     method public abstract void setArray(int, java.sql.Array) throws java.sql.SQLException;
     method public abstract void setAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setAsciiStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
     method public abstract void setBigDecimal(java.lang.String, java.math.BigDecimal) throws java.sql.SQLException;
     method public abstract void setBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBinaryStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setBlob(int, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
+    method public abstract void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBlob(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
     method public abstract void setBlob(java.lang.String, java.sql.Blob) throws java.sql.SQLException;
+    method public abstract void setBlob(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBoolean(int, boolean) throws java.sql.SQLException;
     method public abstract void setBoolean(java.lang.String, boolean) throws java.sql.SQLException;
     method public abstract void setByte(int, byte) throws java.sql.SQLException;
@@ -56410,15 +57578,15 @@
     method public abstract void setBytes(int, byte[]) throws java.sql.SQLException;
     method public abstract void setBytes(java.lang.String, byte[]) throws java.sql.SQLException;
     method public abstract void setCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
+    method public abstract void setCharacterStream(java.lang.String, java.io.Reader, int) throws java.sql.SQLException;
     method public abstract void setCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(java.lang.String, java.io.Reader, int) throws java.sql.SQLException;
     method public abstract void setClob(int, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public abstract void setClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public abstract void setClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setClob(java.lang.String, java.sql.Clob) throws java.sql.SQLException;
     method public abstract void setClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setCommand(java.lang.String) throws java.sql.SQLException;
     method public abstract void setConcurrency(int) throws java.sql.SQLException;
     method public abstract void setDataSourceName(java.lang.String) throws java.sql.SQLException;
@@ -56439,26 +57607,26 @@
     method public abstract void setMaxRows(int) throws java.sql.SQLException;
     method public abstract void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setNCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+    method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
+    method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+    method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+    method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
     method public abstract void setNClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(int, int) throws java.sql.SQLException;
-    method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
+    method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
     method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
     method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+    method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setPassword(java.lang.String) throws java.sql.SQLException;
     method public abstract void setQueryTimeout(int) throws java.sql.SQLException;
     method public abstract void setReadOnly(boolean) throws java.sql.SQLException;
@@ -56476,8 +57644,8 @@
     method public abstract void setTime(java.lang.String, java.sql.Time) throws java.sql.SQLException;
     method public abstract void setTime(java.lang.String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp) throws java.sql.SQLException;
+    method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTransactionIsolation(int) throws java.sql.SQLException;
     method public abstract void setType(int) throws java.sql.SQLException;
@@ -56487,7 +57655,7 @@
     method public abstract void setUsername(java.lang.String) throws java.sql.SQLException;
   }
 
-  public class RowSetEvent extends java.util.EventObject implements java.io.Serializable {
+  public class RowSetEvent extends java.util.EventObject {
     ctor public RowSetEvent(javax.sql.RowSet);
   }
 
@@ -56534,8 +57702,8 @@
   }
 
   public class StatementEvent extends java.util.EventObject {
-    ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
     ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement);
+    ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
     method public java.sql.SQLException getSQLException();
     method public java.sql.PreparedStatement getStatement();
   }
diff --git a/api/system-current.txt b/api/system-current.txt
index cbe8db7..d2c1725 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -45394,13 +45394,18 @@
 package java.awt.font {
 
   public final class NumericShaper implements java.io.Serializable {
-    method public static java.awt.font.NumericShaper getContextualShaper(int, int);
     method public static java.awt.font.NumericShaper getContextualShaper(int);
+    method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>);
+    method public static java.awt.font.NumericShaper getContextualShaper(int, int);
+    method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>, java.awt.font.NumericShaper.Range);
+    method public java.util.Set<java.awt.font.NumericShaper.Range> getRangeSet();
     method public int getRanges();
     method public static java.awt.font.NumericShaper getShaper(int);
+    method public static java.awt.font.NumericShaper getShaper(java.awt.font.NumericShaper.Range);
     method public boolean isContextual();
-    method public void shape(char[], int, int, int);
     method public void shape(char[], int, int);
+    method public void shape(char[], int, int, int);
+    method public void shape(char[], int, int, java.awt.font.NumericShaper.Range);
     field public static final int ALL_RANGES = 524287; // 0x7ffff
     field public static final int ARABIC = 2; // 0x2
     field public static final int BENGALI = 16; // 0x10
@@ -45423,6 +45428,46 @@
     field public static final int TIBETAN = 16384; // 0x4000
   }
 
+  public static class NumericShaper.Range extends java.lang.Enum {
+    method public static java.awt.font.NumericShaper.Range valueOf(java.lang.String);
+    method public static final java.awt.font.NumericShaper.Range[] values();
+    enum_constant public static final java.awt.font.NumericShaper.Range ARABIC;
+    enum_constant public static final java.awt.font.NumericShaper.Range BALINESE;
+    enum_constant public static final java.awt.font.NumericShaper.Range BENGALI;
+    enum_constant public static final java.awt.font.NumericShaper.Range CHAM;
+    enum_constant public static final java.awt.font.NumericShaper.Range DEVANAGARI;
+    enum_constant public static final java.awt.font.NumericShaper.Range EASTERN_ARABIC;
+    enum_constant public static final java.awt.font.NumericShaper.Range ETHIOPIC;
+    enum_constant public static final java.awt.font.NumericShaper.Range EUROPEAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range GUJARATI;
+    enum_constant public static final java.awt.font.NumericShaper.Range GURMUKHI;
+    enum_constant public static final java.awt.font.NumericShaper.Range JAVANESE;
+    enum_constant public static final java.awt.font.NumericShaper.Range KANNADA;
+    enum_constant public static final java.awt.font.NumericShaper.Range KAYAH_LI;
+    enum_constant public static final java.awt.font.NumericShaper.Range KHMER;
+    enum_constant public static final java.awt.font.NumericShaper.Range LAO;
+    enum_constant public static final java.awt.font.NumericShaper.Range LEPCHA;
+    enum_constant public static final java.awt.font.NumericShaper.Range LIMBU;
+    enum_constant public static final java.awt.font.NumericShaper.Range MALAYALAM;
+    enum_constant public static final java.awt.font.NumericShaper.Range MEETEI_MAYEK;
+    enum_constant public static final java.awt.font.NumericShaper.Range MONGOLIAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR;
+    enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR_SHAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range NEW_TAI_LUE;
+    enum_constant public static final java.awt.font.NumericShaper.Range NKO;
+    enum_constant public static final java.awt.font.NumericShaper.Range OL_CHIKI;
+    enum_constant public static final java.awt.font.NumericShaper.Range ORIYA;
+    enum_constant public static final java.awt.font.NumericShaper.Range SAURASHTRA;
+    enum_constant public static final java.awt.font.NumericShaper.Range SUNDANESE;
+    enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_HORA;
+    enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_THAM;
+    enum_constant public static final java.awt.font.NumericShaper.Range TAMIL;
+    enum_constant public static final java.awt.font.NumericShaper.Range TELUGU;
+    enum_constant public static final java.awt.font.NumericShaper.Range THAI;
+    enum_constant public static final java.awt.font.NumericShaper.Range TIBETAN;
+    enum_constant public static final java.awt.font.NumericShaper.Range VAI;
+  }
+
   public final class TextAttribute extends java.text.AttributedCharacterIterator.Attribute {
     ctor protected TextAttribute(java.lang.String);
     field public static final java.awt.font.TextAttribute BACKGROUND;
@@ -45516,20 +45561,20 @@
 
   public class PropertyChangeSupport implements java.io.Serializable {
     ctor public PropertyChangeSupport(java.lang.Object);
-    method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
     method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
+    method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
     method public void fireIndexedPropertyChange(java.lang.String, int, java.lang.Object, java.lang.Object);
-    method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
     method public void fireIndexedPropertyChange(java.lang.String, int, int, int);
+    method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
     method public void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
-    method public void firePropertyChange(java.lang.String, boolean, boolean);
     method public void firePropertyChange(java.lang.String, int, int);
+    method public void firePropertyChange(java.lang.String, boolean, boolean);
     method public void firePropertyChange(java.beans.PropertyChangeEvent);
-    method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
     method public java.beans.PropertyChangeListener[] getPropertyChangeListeners();
+    method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
     method public boolean hasListeners(java.lang.String);
-    method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
     method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
+    method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
   }
 
 }
@@ -45554,8 +45599,8 @@
   }
 
   public class BufferedReader extends java.io.Reader {
-    ctor public BufferedReader(java.io.Reader);
     ctor public BufferedReader(java.io.Reader, int);
+    ctor public BufferedReader(java.io.Reader);
     method public void close() throws java.io.IOException;
     method public int read(char[], int, int) throws java.io.IOException;
     method public java.lang.String readLine() throws java.io.IOException;
@@ -45584,10 +45629,10 @@
     ctor public ByteArrayOutputStream();
     ctor public ByteArrayOutputStream(int);
     method public synchronized void reset();
-    method public int size();
+    method public synchronized int size();
     method public synchronized byte[] toByteArray();
-    method public deprecated java.lang.String toString(int);
-    method public java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+    method public synchronized java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+    method public deprecated synchronized java.lang.String toString(int);
     method public synchronized void write(int);
     method public synchronized void writeTo(java.io.OutputStream) throws java.io.IOException;
     field protected byte[] buf;
@@ -45629,13 +45674,15 @@
   }
 
   public final class Console implements java.io.Flushable {
+    method public static java.io.Console console();
     method public void flush();
     method public java.io.Console format(java.lang.String, java.lang.Object...);
+    method public static synchronized java.io.Console getConsole();
     method public java.io.Console printf(java.lang.String, java.lang.Object...);
-    method public java.lang.String readLine();
     method public java.lang.String readLine(java.lang.String, java.lang.Object...);
-    method public char[] readPassword();
+    method public java.lang.String readLine();
     method public char[] readPassword(java.lang.String, java.lang.Object...);
+    method public char[] readPassword();
     method public java.io.Reader reader();
     method public java.io.PrintWriter writer();
   }
@@ -45681,9 +45728,9 @@
   }
 
   public abstract interface DataOutput {
+    method public abstract void write(int) throws java.io.IOException;
     method public abstract void write(byte[]) throws java.io.IOException;
     method public abstract void write(byte[], int, int) throws java.io.IOException;
-    method public abstract void write(int) throws java.io.IOException;
     method public abstract void writeBoolean(boolean) throws java.io.IOException;
     method public abstract void writeByte(int) throws java.io.IOException;
     method public abstract void writeBytes(java.lang.String) throws java.io.IOException;
@@ -45725,17 +45772,17 @@
   }
 
   public class File implements java.lang.Comparable java.io.Serializable {
-    ctor public File(java.io.File, java.lang.String);
     ctor public File(java.lang.String);
     ctor public File(java.lang.String, java.lang.String);
+    ctor public File(java.io.File, java.lang.String);
     ctor public File(java.net.URI);
     method public boolean canExecute();
     method public boolean canRead();
     method public boolean canWrite();
     method public int compareTo(java.io.File);
     method public boolean createNewFile() throws java.io.IOException;
-    method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
     method public static java.io.File createTempFile(java.lang.String, java.lang.String, java.io.File) throws java.io.IOException;
+    method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
     method public boolean delete();
     method public void deleteOnExit();
     method public boolean exists();
@@ -45773,6 +45820,7 @@
     method public boolean setReadable(boolean);
     method public boolean setWritable(boolean, boolean);
     method public boolean setWritable(boolean);
+    method public java.nio.file.Path toPath();
     method public java.net.URI toURI();
     method public deprecated java.net.URL toURL() throws java.net.MalformedURLException;
     field public static final java.lang.String pathSeparator;
@@ -45795,9 +45843,9 @@
   }
 
   public class FileInputStream extends java.io.InputStream {
+    ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
     ctor public FileInputStream(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileInputStream(java.io.FileDescriptor);
-    ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
     method public java.nio.channels.FileChannel getChannel();
     method public final java.io.FileDescriptor getFD() throws java.io.IOException;
     method public int read() throws java.io.IOException;
@@ -45809,11 +45857,11 @@
   }
 
   public class FileOutputStream extends java.io.OutputStream {
+    ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
+    ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.File, boolean) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.FileDescriptor);
-    ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
-    ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
     method public java.nio.channels.FileChannel getChannel();
     method public final java.io.FileDescriptor getFD() throws java.io.IOException;
     method public void write(int) throws java.io.IOException;
@@ -45821,22 +45869,24 @@
 
   public final class FilePermission extends java.security.Permission implements java.io.Serializable {
     ctor public FilePermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
   public class FileReader extends java.io.InputStreamReader {
+    ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
     ctor public FileReader(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileReader(java.io.FileDescriptor);
-    ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
   }
 
   public class FileWriter extends java.io.OutputStreamWriter {
+    ctor public FileWriter(java.lang.String) throws java.io.IOException;
+    ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
     ctor public FileWriter(java.io.File) throws java.io.IOException;
     ctor public FileWriter(java.io.File, boolean) throws java.io.IOException;
     ctor public FileWriter(java.io.FileDescriptor);
-    ctor public FileWriter(java.lang.String) throws java.io.IOException;
-    ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
   }
 
   public abstract interface FilenameFilter {
@@ -45889,7 +45939,7 @@
     ctor public InputStream();
     method public int available() throws java.io.IOException;
     method public void close() throws java.io.IOException;
-    method public void mark(int);
+    method public synchronized void mark(int);
     method public boolean markSupported();
     method public abstract int read() throws java.io.IOException;
     method public int read(byte[]) throws java.io.IOException;
@@ -45901,8 +45951,8 @@
   public class InputStreamReader extends java.io.Reader {
     ctor public InputStreamReader(java.io.InputStream);
     ctor public InputStreamReader(java.io.InputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
     ctor public InputStreamReader(java.io.InputStream, java.nio.charset.Charset);
+    ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
     method public void close() throws java.io.IOException;
     method public java.lang.String getEncoding();
     method public int read(char[], int, int) throws java.io.IOException;
@@ -45911,6 +45961,7 @@
   public class InterruptedIOException extends java.io.IOException {
     ctor public InterruptedIOException();
     ctor public InterruptedIOException(java.lang.String);
+    ctor public InterruptedIOException(java.lang.Throwable);
     field public int bytesTransferred;
   }
 
@@ -45938,13 +45989,13 @@
   }
 
   public class NotActiveException extends java.io.ObjectStreamException {
-    ctor public NotActiveException();
     ctor public NotActiveException(java.lang.String);
+    ctor public NotActiveException();
   }
 
   public class NotSerializableException extends java.io.ObjectStreamException {
-    ctor public NotSerializableException();
     ctor public NotSerializableException(java.lang.String);
+    ctor public NotSerializableException();
   }
 
   public abstract interface ObjectInput implements java.lang.AutoCloseable java.io.DataInput {
@@ -45958,32 +46009,32 @@
   }
 
   public class ObjectInputStream extends java.io.InputStream implements java.io.ObjectInput java.io.ObjectStreamConstants {
-    ctor protected ObjectInputStream() throws java.io.IOException;
-    ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException, java.io.StreamCorruptedException;
-    method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
-    method protected boolean enableResolveObject(boolean);
+    ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException;
+    ctor protected ObjectInputStream() throws java.io.IOException, java.lang.SecurityException;
+    method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method protected boolean enableResolveObject(boolean) throws java.lang.SecurityException;
     method public int read() throws java.io.IOException;
     method public boolean readBoolean() throws java.io.IOException;
     method public byte readByte() throws java.io.IOException;
     method public char readChar() throws java.io.IOException;
     method protected java.io.ObjectStreamClass readClassDescriptor() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public double readDouble() throws java.io.IOException;
-    method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
+    method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public float readFloat() throws java.io.IOException;
     method public void readFully(byte[]) throws java.io.IOException;
     method public void readFully(byte[], int, int) throws java.io.IOException;
     method public int readInt() throws java.io.IOException;
     method public deprecated java.lang.String readLine() throws java.io.IOException;
     method public long readLong() throws java.io.IOException;
-    method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
-    method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
+    method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public short readShort() throws java.io.IOException;
     method protected void readStreamHeader() throws java.io.IOException, java.io.StreamCorruptedException;
     method public java.lang.String readUTF() throws java.io.IOException;
     method public java.lang.Object readUnshared() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public int readUnsignedByte() throws java.io.IOException;
     method public int readUnsignedShort() throws java.io.IOException;
-    method public synchronized void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
+    method public void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
     method protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass) throws java.lang.ClassNotFoundException, java.io.IOException;
     method protected java.lang.Object resolveObject(java.lang.Object) throws java.io.IOException;
     method protected java.lang.Class<?> resolveProxyClass(java.lang.String[]) throws java.lang.ClassNotFoundException, java.io.IOException;
@@ -45992,16 +46043,16 @@
 
   public static abstract class ObjectInputStream.GetField {
     ctor public ObjectInputStream.GetField();
-    method public abstract boolean defaulted(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract char get(java.lang.String, char) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract byte get(java.lang.String, byte) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract short get(java.lang.String, short) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract int get(java.lang.String, int) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract long get(java.lang.String, long) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract float get(java.lang.String, float) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract double get(java.lang.String, double) throws java.io.IOException, java.lang.IllegalArgumentException;
-    method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException, java.lang.IllegalArgumentException;
+    method public abstract boolean defaulted(java.lang.String) throws java.io.IOException;
+    method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException;
+    method public abstract byte get(java.lang.String, byte) throws java.io.IOException;
+    method public abstract char get(java.lang.String, char) throws java.io.IOException;
+    method public abstract short get(java.lang.String, short) throws java.io.IOException;
+    method public abstract int get(java.lang.String, int) throws java.io.IOException;
+    method public abstract long get(java.lang.String, long) throws java.io.IOException;
+    method public abstract float get(java.lang.String, float) throws java.io.IOException;
+    method public abstract double get(java.lang.String, double) throws java.io.IOException;
+    method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException;
     method public abstract java.io.ObjectStreamClass getObjectStreamClass();
   }
 
@@ -46012,20 +46063,20 @@
   public abstract interface ObjectOutput implements java.lang.AutoCloseable java.io.DataOutput {
     method public abstract void close() throws java.io.IOException;
     method public abstract void flush() throws java.io.IOException;
+    method public abstract void write(int) throws java.io.IOException;
     method public abstract void write(byte[]) throws java.io.IOException;
     method public abstract void write(byte[], int, int) throws java.io.IOException;
-    method public abstract void write(int) throws java.io.IOException;
     method public abstract void writeObject(java.lang.Object) throws java.io.IOException;
   }
 
   public class ObjectOutputStream extends java.io.OutputStream implements java.io.ObjectOutput java.io.ObjectStreamConstants {
-    ctor protected ObjectOutputStream() throws java.io.IOException;
     ctor public ObjectOutputStream(java.io.OutputStream) throws java.io.IOException;
+    ctor protected ObjectOutputStream() throws java.io.IOException, java.lang.SecurityException;
     method protected void annotateClass(java.lang.Class<?>) throws java.io.IOException;
     method protected void annotateProxyClass(java.lang.Class<?>) throws java.io.IOException;
     method public void defaultWriteObject() throws java.io.IOException;
     method protected void drain() throws java.io.IOException;
-    method protected boolean enableReplaceObject(boolean);
+    method protected boolean enableReplaceObject(boolean) throws java.lang.SecurityException;
     method public java.io.ObjectOutputStream.PutField putFields() throws java.io.IOException;
     method protected java.lang.Object replaceObject(java.lang.Object) throws java.io.IOException;
     method public void reset() throws java.io.IOException;
@@ -46053,8 +46104,8 @@
   public static abstract class ObjectOutputStream.PutField {
     ctor public ObjectOutputStream.PutField();
     method public abstract void put(java.lang.String, boolean);
-    method public abstract void put(java.lang.String, char);
     method public abstract void put(java.lang.String, byte);
+    method public abstract void put(java.lang.String, char);
     method public abstract void put(java.lang.String, short);
     method public abstract void put(java.lang.String, int);
     method public abstract void put(java.lang.String, long);
@@ -46108,8 +46159,8 @@
   }
 
   public abstract class ObjectStreamException extends java.io.IOException {
-    ctor protected ObjectStreamException();
     ctor protected ObjectStreamException(java.lang.String);
+    ctor protected ObjectStreamException();
   }
 
   public class ObjectStreamField implements java.lang.Comparable {
@@ -46135,14 +46186,14 @@
     ctor public OutputStream();
     method public void close() throws java.io.IOException;
     method public void flush() throws java.io.IOException;
+    method public abstract void write(int) throws java.io.IOException;
     method public void write(byte[]) throws java.io.IOException;
     method public void write(byte[], int, int) throws java.io.IOException;
-    method public abstract void write(int) throws java.io.IOException;
   }
 
   public class OutputStreamWriter extends java.io.Writer {
-    ctor public OutputStreamWriter(java.io.OutputStream);
     ctor public OutputStreamWriter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public OutputStreamWriter(java.io.OutputStream);
     ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.Charset);
     ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.CharsetEncoder);
     method public void close() throws java.io.IOException;
@@ -46152,10 +46203,10 @@
   }
 
   public class PipedInputStream extends java.io.InputStream {
-    ctor public PipedInputStream();
     ctor public PipedInputStream(java.io.PipedOutputStream) throws java.io.IOException;
-    ctor public PipedInputStream(int);
     ctor public PipedInputStream(java.io.PipedOutputStream, int) throws java.io.IOException;
+    ctor public PipedInputStream();
+    ctor public PipedInputStream(int);
     method public void connect(java.io.PipedOutputStream) throws java.io.IOException;
     method public synchronized int read() throws java.io.IOException;
     method protected synchronized void receive(int) throws java.io.IOException;
@@ -46166,28 +46217,28 @@
   }
 
   public class PipedOutputStream extends java.io.OutputStream {
-    ctor public PipedOutputStream();
     ctor public PipedOutputStream(java.io.PipedInputStream) throws java.io.IOException;
-    method public void connect(java.io.PipedInputStream) throws java.io.IOException;
+    ctor public PipedOutputStream();
+    method public synchronized void connect(java.io.PipedInputStream) throws java.io.IOException;
     method public void write(int) throws java.io.IOException;
   }
 
   public class PipedReader extends java.io.Reader {
-    ctor public PipedReader();
     ctor public PipedReader(java.io.PipedWriter) throws java.io.IOException;
-    ctor public PipedReader(int);
     ctor public PipedReader(java.io.PipedWriter, int) throws java.io.IOException;
-    method public synchronized void close() throws java.io.IOException;
+    ctor public PipedReader();
+    ctor public PipedReader(int);
+    method public void close() throws java.io.IOException;
     method public void connect(java.io.PipedWriter) throws java.io.IOException;
     method public synchronized int read(char[], int, int) throws java.io.IOException;
   }
 
   public class PipedWriter extends java.io.Writer {
-    ctor public PipedWriter();
     ctor public PipedWriter(java.io.PipedReader) throws java.io.IOException;
+    ctor public PipedWriter();
     method public void close() throws java.io.IOException;
-    method public void connect(java.io.PipedReader) throws java.io.IOException;
-    method public void flush() throws java.io.IOException;
+    method public synchronized void connect(java.io.PipedReader) throws java.io.IOException;
+    method public synchronized void flush() throws java.io.IOException;
     method public void write(char[], int, int) throws java.io.IOException;
   }
 
@@ -46195,111 +46246,111 @@
     ctor public PrintStream(java.io.OutputStream);
     ctor public PrintStream(java.io.OutputStream, boolean);
     ctor public PrintStream(java.io.OutputStream, boolean, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
-    ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     ctor public PrintStream(java.lang.String) throws java.io.FileNotFoundException;
     ctor public PrintStream(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
-    method public java.io.PrintStream append(char);
+    ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
+    ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     method public java.io.PrintStream append(java.lang.CharSequence);
     method public java.io.PrintStream append(java.lang.CharSequence, int, int);
+    method public java.io.PrintStream append(char);
     method public boolean checkError();
     method protected void clearError();
     method public java.io.PrintStream format(java.lang.String, java.lang.Object...);
     method public java.io.PrintStream format(java.util.Locale, java.lang.String, java.lang.Object...);
-    method public void print(char[]);
+    method public void print(boolean);
     method public void print(char);
-    method public void print(double);
-    method public void print(float);
     method public void print(int);
     method public void print(long);
+    method public void print(float);
+    method public void print(double);
+    method public void print(char[]);
+    method public void print(java.lang.String);
     method public void print(java.lang.Object);
-    method public synchronized void print(java.lang.String);
-    method public void print(boolean);
     method public java.io.PrintStream printf(java.lang.String, java.lang.Object...);
     method public java.io.PrintStream printf(java.util.Locale, java.lang.String, java.lang.Object...);
     method public void println();
-    method public void println(char[]);
+    method public void println(boolean);
     method public void println(char);
-    method public void println(double);
-    method public void println(float);
     method public void println(int);
     method public void println(long);
+    method public void println(float);
+    method public void println(double);
+    method public void println(char[]);
+    method public void println(java.lang.String);
     method public void println(java.lang.Object);
-    method public synchronized void println(java.lang.String);
-    method public void println(boolean);
     method protected void setError();
   }
 
   public class PrintWriter extends java.io.Writer {
-    ctor public PrintWriter(java.io.OutputStream);
-    ctor public PrintWriter(java.io.OutputStream, boolean);
     ctor public PrintWriter(java.io.Writer);
     ctor public PrintWriter(java.io.Writer, boolean);
-    ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
-    ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public PrintWriter(java.io.OutputStream);
+    ctor public PrintWriter(java.io.OutputStream, boolean);
     ctor public PrintWriter(java.lang.String) throws java.io.FileNotFoundException;
     ctor public PrintWriter(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
+    ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     method public boolean checkError();
     method protected void clearError();
     method public void close();
     method public void flush();
     method public java.io.PrintWriter format(java.lang.String, java.lang.Object...);
     method public java.io.PrintWriter format(java.util.Locale, java.lang.String, java.lang.Object...);
-    method public void print(char[]);
+    method public void print(boolean);
     method public void print(char);
-    method public void print(double);
-    method public void print(float);
     method public void print(int);
     method public void print(long);
-    method public void print(java.lang.Object);
+    method public void print(float);
+    method public void print(double);
+    method public void print(char[]);
     method public void print(java.lang.String);
-    method public void print(boolean);
+    method public void print(java.lang.Object);
     method public java.io.PrintWriter printf(java.lang.String, java.lang.Object...);
     method public java.io.PrintWriter printf(java.util.Locale, java.lang.String, java.lang.Object...);
     method public void println();
-    method public void println(char[]);
+    method public void println(boolean);
     method public void println(char);
-    method public void println(double);
-    method public void println(float);
     method public void println(int);
     method public void println(long);
-    method public void println(java.lang.Object);
+    method public void println(float);
+    method public void println(double);
+    method public void println(char[]);
     method public void println(java.lang.String);
-    method public void println(boolean);
+    method public void println(java.lang.Object);
     method protected void setError();
     method public void write(char[], int, int);
     field protected java.io.Writer out;
   }
 
   public class PushbackInputStream extends java.io.FilterInputStream {
-    ctor public PushbackInputStream(java.io.InputStream);
     ctor public PushbackInputStream(java.io.InputStream, int);
-    method public void unread(byte[]) throws java.io.IOException;
-    method public void unread(byte[], int, int) throws java.io.IOException;
+    ctor public PushbackInputStream(java.io.InputStream);
     method public void unread(int) throws java.io.IOException;
+    method public void unread(byte[], int, int) throws java.io.IOException;
+    method public void unread(byte[]) throws java.io.IOException;
     field protected byte[] buf;
     field protected int pos;
   }
 
   public class PushbackReader extends java.io.FilterReader {
-    ctor public PushbackReader(java.io.Reader);
     ctor public PushbackReader(java.io.Reader, int);
-    method public void unread(char[]) throws java.io.IOException;
-    method public void unread(char[], int, int) throws java.io.IOException;
+    ctor public PushbackReader(java.io.Reader);
     method public void unread(int) throws java.io.IOException;
+    method public void unread(char[], int, int) throws java.io.IOException;
+    method public void unread(char[]) throws java.io.IOException;
   }
 
   public class RandomAccessFile implements java.io.Closeable java.io.DataInput java.io.DataOutput {
-    ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
     ctor public RandomAccessFile(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
+    ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
     method public void close() throws java.io.IOException;
-    method public final synchronized java.nio.channels.FileChannel getChannel();
+    method public final java.nio.channels.FileChannel getChannel();
     method public final java.io.FileDescriptor getFD() throws java.io.IOException;
     method public long getFilePointer() throws java.io.IOException;
     method public long length() throws java.io.IOException;
     method public int read() throws java.io.IOException;
-    method public int read(byte[]) throws java.io.IOException;
     method public int read(byte[], int, int) throws java.io.IOException;
+    method public int read(byte[]) throws java.io.IOException;
     method public final boolean readBoolean() throws java.io.IOException;
     method public final byte readByte() throws java.io.IOException;
     method public final char readChar() throws java.io.IOException;
@@ -46317,9 +46368,9 @@
     method public void seek(long) throws java.io.IOException;
     method public void setLength(long) throws java.io.IOException;
     method public int skipBytes(int) throws java.io.IOException;
+    method public void write(int) throws java.io.IOException;
     method public void write(byte[]) throws java.io.IOException;
     method public void write(byte[], int, int) throws java.io.IOException;
-    method public void write(int) throws java.io.IOException;
     method public final void writeBoolean(boolean) throws java.io.IOException;
     method public final void writeByte(int) throws java.io.IOException;
     method public final void writeBytes(java.lang.String) throws java.io.IOException;
@@ -46339,10 +46390,10 @@
     method public abstract void close() throws java.io.IOException;
     method public void mark(int) throws java.io.IOException;
     method public boolean markSupported();
+    method public int read(java.nio.CharBuffer) throws java.io.IOException;
     method public int read() throws java.io.IOException;
     method public int read(char[]) throws java.io.IOException;
     method public abstract int read(char[], int, int) throws java.io.IOException;
-    method public int read(java.nio.CharBuffer) throws java.io.IOException;
     method public boolean ready() throws java.io.IOException;
     method public void reset() throws java.io.IOException;
     method public long skip(long) throws java.io.IOException;
@@ -46350,8 +46401,8 @@
   }
 
   public class SequenceInputStream extends java.io.InputStream {
-    ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
     ctor public SequenceInputStream(java.util.Enumeration<? extends java.io.InputStream>);
+    ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
     method public int read() throws java.io.IOException;
   }
 
@@ -46364,8 +46415,8 @@
   }
 
   public class StreamCorruptedException extends java.io.ObjectStreamException {
-    ctor public StreamCorruptedException();
     ctor public StreamCorruptedException(java.lang.String);
+    ctor public StreamCorruptedException();
   }
 
   public class StreamTokenizer {
@@ -46440,14 +46491,14 @@
   public abstract class Writer implements java.lang.Appendable java.io.Closeable java.io.Flushable {
     ctor protected Writer();
     ctor protected Writer(java.lang.Object);
-    method public java.io.Writer append(char) throws java.io.IOException;
     method public java.io.Writer append(java.lang.CharSequence) throws java.io.IOException;
     method public java.io.Writer append(java.lang.CharSequence, int, int) throws java.io.IOException;
+    method public java.io.Writer append(char) throws java.io.IOException;
     method public abstract void close() throws java.io.IOException;
     method public abstract void flush() throws java.io.IOException;
+    method public void write(int) throws java.io.IOException;
     method public void write(char[]) throws java.io.IOException;
     method public abstract void write(char[], int, int) throws java.io.IOException;
-    method public void write(int) throws java.io.IOException;
     method public void write(java.lang.String) throws java.io.IOException;
     method public void write(java.lang.String, int, int) throws java.io.IOException;
     field protected java.lang.Object lock;
@@ -46462,32 +46513,63 @@
     ctor public AbstractMethodError(java.lang.String);
   }
 
-   abstract class AbstractStringBuilder {
+   abstract class AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence {
+    method public java.lang.AbstractStringBuilder append(java.lang.Object);
+    method public java.lang.AbstractStringBuilder append(java.lang.String);
+    method public java.lang.AbstractStringBuilder append(java.lang.StringBuffer);
+    method public java.lang.AbstractStringBuilder append(java.lang.CharSequence);
+    method public java.lang.AbstractStringBuilder append(java.lang.CharSequence, int, int);
+    method public java.lang.AbstractStringBuilder append(char[]);
+    method public java.lang.AbstractStringBuilder append(char[], int, int);
+    method public java.lang.AbstractStringBuilder append(boolean);
+    method public java.lang.AbstractStringBuilder append(char);
+    method public java.lang.AbstractStringBuilder append(int);
+    method public java.lang.AbstractStringBuilder append(long);
+    method public java.lang.AbstractStringBuilder append(float);
+    method public java.lang.AbstractStringBuilder append(double);
+    method public java.lang.AbstractStringBuilder appendCodePoint(int);
     method public int capacity();
     method public char charAt(int);
     method public int codePointAt(int);
     method public int codePointBefore(int);
     method public int codePointCount(int, int);
+    method public java.lang.AbstractStringBuilder delete(int, int);
+    method public java.lang.AbstractStringBuilder deleteCharAt(int);
     method public void ensureCapacity(int);
     method public void getChars(int, int, char[], int);
     method public int indexOf(java.lang.String);
     method public int indexOf(java.lang.String, int);
+    method public java.lang.AbstractStringBuilder insert(int, char[], int, int);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.Object);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.String);
+    method public java.lang.AbstractStringBuilder insert(int, char[]);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.CharSequence);
+    method public java.lang.AbstractStringBuilder insert(int, java.lang.CharSequence, int, int);
+    method public java.lang.AbstractStringBuilder insert(int, boolean);
+    method public java.lang.AbstractStringBuilder insert(int, char);
+    method public java.lang.AbstractStringBuilder insert(int, int);
+    method public java.lang.AbstractStringBuilder insert(int, long);
+    method public java.lang.AbstractStringBuilder insert(int, float);
+    method public java.lang.AbstractStringBuilder insert(int, double);
     method public int lastIndexOf(java.lang.String);
     method public int lastIndexOf(java.lang.String, int);
     method public int length();
     method public int offsetByCodePoints(int, int);
+    method public java.lang.AbstractStringBuilder replace(int, int, java.lang.String);
+    method public java.lang.AbstractStringBuilder reverse();
     method public void setCharAt(int, char);
     method public void setLength(int);
     method public java.lang.CharSequence subSequence(int, int);
     method public java.lang.String substring(int);
     method public java.lang.String substring(int, int);
+    method public abstract java.lang.String toString();
     method public void trimToSize();
   }
 
   public abstract interface Appendable {
-    method public abstract java.lang.Appendable append(char) throws java.io.IOException;
     method public abstract java.lang.Appendable append(java.lang.CharSequence) throws java.io.IOException;
     method public abstract java.lang.Appendable append(java.lang.CharSequence, int, int) throws java.io.IOException;
+    method public abstract java.lang.Appendable append(char) throws java.io.IOException;
   }
 
   public class ArithmeticException extends java.lang.RuntimeException {
@@ -46508,7 +46590,6 @@
 
   public class AssertionError extends java.lang.Error {
     ctor public AssertionError();
-    ctor public AssertionError(java.lang.String, java.lang.Throwable);
     ctor public AssertionError(java.lang.Object);
     ctor public AssertionError(boolean);
     ctor public AssertionError(char);
@@ -46516,6 +46597,7 @@
     ctor public AssertionError(long);
     ctor public AssertionError(float);
     ctor public AssertionError(double);
+    ctor public AssertionError(java.lang.String, java.lang.Throwable);
   }
 
   public abstract interface AutoCloseable {
@@ -46523,16 +46605,16 @@
   }
 
   public final class Boolean implements java.lang.Comparable java.io.Serializable {
-    ctor public Boolean(java.lang.String);
     ctor public Boolean(boolean);
+    ctor public Boolean(java.lang.String);
     method public boolean booleanValue();
     method public static int compare(boolean, boolean);
     method public int compareTo(java.lang.Boolean);
     method public static boolean getBoolean(java.lang.String);
     method public static boolean parseBoolean(java.lang.String);
     method public static java.lang.String toString(boolean);
-    method public static java.lang.Boolean valueOf(java.lang.String);
     method public static java.lang.Boolean valueOf(boolean);
+    method public static java.lang.Boolean valueOf(java.lang.String);
     field public static final java.lang.Boolean FALSE;
     field public static final java.lang.Boolean TRUE;
     field public static final java.lang.Class<java.lang.Boolean> TYPE;
@@ -46548,12 +46630,13 @@
     method public float floatValue();
     method public int intValue();
     method public long longValue();
-    method public static byte parseByte(java.lang.String) throws java.lang.NumberFormatException;
     method public static byte parseByte(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static byte parseByte(java.lang.String) throws java.lang.NumberFormatException;
+    method public static java.lang.String toHexString(byte, boolean);
     method public static java.lang.String toString(byte);
-    method public static java.lang.Byte valueOf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.Byte valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
     method public static java.lang.Byte valueOf(byte);
+    method public static java.lang.Byte valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Byte valueOf(java.lang.String) throws java.lang.NumberFormatException;
     field public static final byte MAX_VALUE = 127; // 0x7f
     field public static final byte MIN_VALUE = -128; // 0xffffff80
     field public static final int SIZE = 8; // 0x8
@@ -46726,7 +46809,7 @@
   }
 
   public static final class Character.UnicodeBlock extends java.lang.Character.Subset {
-    method public static java.lang.Character.UnicodeBlock forName(java.lang.String);
+    method public static final java.lang.Character.UnicodeBlock forName(java.lang.String);
     method public static java.lang.Character.UnicodeBlock of(char);
     method public static java.lang.Character.UnicodeBlock of(int);
     field public static final java.lang.Character.UnicodeBlock AEGEAN_NUMBERS;
@@ -46941,6 +47024,109 @@
     field public static final java.lang.Character.UnicodeBlock YI_SYLLABLES;
   }
 
+  public static final class Character.UnicodeScript extends java.lang.Enum {
+    method public static final java.lang.Character.UnicodeScript forName(java.lang.String);
+    method public static java.lang.Character.UnicodeScript of(int);
+    method public static java.lang.Character.UnicodeScript valueOf(java.lang.String);
+    method public static final java.lang.Character.UnicodeScript[] values();
+    enum_constant public static final java.lang.Character.UnicodeScript ARABIC;
+    enum_constant public static final java.lang.Character.UnicodeScript ARMENIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript AVESTAN;
+    enum_constant public static final java.lang.Character.UnicodeScript BALINESE;
+    enum_constant public static final java.lang.Character.UnicodeScript BAMUM;
+    enum_constant public static final java.lang.Character.UnicodeScript BATAK;
+    enum_constant public static final java.lang.Character.UnicodeScript BENGALI;
+    enum_constant public static final java.lang.Character.UnicodeScript BOPOMOFO;
+    enum_constant public static final java.lang.Character.UnicodeScript BRAHMI;
+    enum_constant public static final java.lang.Character.UnicodeScript BRAILLE;
+    enum_constant public static final java.lang.Character.UnicodeScript BUGINESE;
+    enum_constant public static final java.lang.Character.UnicodeScript BUHID;
+    enum_constant public static final java.lang.Character.UnicodeScript CANADIAN_ABORIGINAL;
+    enum_constant public static final java.lang.Character.UnicodeScript CARIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript CHAM;
+    enum_constant public static final java.lang.Character.UnicodeScript CHEROKEE;
+    enum_constant public static final java.lang.Character.UnicodeScript COMMON;
+    enum_constant public static final java.lang.Character.UnicodeScript COPTIC;
+    enum_constant public static final java.lang.Character.UnicodeScript CUNEIFORM;
+    enum_constant public static final java.lang.Character.UnicodeScript CYPRIOT;
+    enum_constant public static final java.lang.Character.UnicodeScript CYRILLIC;
+    enum_constant public static final java.lang.Character.UnicodeScript DESERET;
+    enum_constant public static final java.lang.Character.UnicodeScript DEVANAGARI;
+    enum_constant public static final java.lang.Character.UnicodeScript EGYPTIAN_HIEROGLYPHS;
+    enum_constant public static final java.lang.Character.UnicodeScript ETHIOPIC;
+    enum_constant public static final java.lang.Character.UnicodeScript GEORGIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript GLAGOLITIC;
+    enum_constant public static final java.lang.Character.UnicodeScript GOTHIC;
+    enum_constant public static final java.lang.Character.UnicodeScript GREEK;
+    enum_constant public static final java.lang.Character.UnicodeScript GUJARATI;
+    enum_constant public static final java.lang.Character.UnicodeScript GURMUKHI;
+    enum_constant public static final java.lang.Character.UnicodeScript HAN;
+    enum_constant public static final java.lang.Character.UnicodeScript HANGUL;
+    enum_constant public static final java.lang.Character.UnicodeScript HANUNOO;
+    enum_constant public static final java.lang.Character.UnicodeScript HEBREW;
+    enum_constant public static final java.lang.Character.UnicodeScript HIRAGANA;
+    enum_constant public static final java.lang.Character.UnicodeScript IMPERIAL_ARAMAIC;
+    enum_constant public static final java.lang.Character.UnicodeScript INHERITED;
+    enum_constant public static final java.lang.Character.UnicodeScript INSCRIPTIONAL_PAHLAVI;
+    enum_constant public static final java.lang.Character.UnicodeScript INSCRIPTIONAL_PARTHIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript JAVANESE;
+    enum_constant public static final java.lang.Character.UnicodeScript KAITHI;
+    enum_constant public static final java.lang.Character.UnicodeScript KANNADA;
+    enum_constant public static final java.lang.Character.UnicodeScript KATAKANA;
+    enum_constant public static final java.lang.Character.UnicodeScript KAYAH_LI;
+    enum_constant public static final java.lang.Character.UnicodeScript KHAROSHTHI;
+    enum_constant public static final java.lang.Character.UnicodeScript KHMER;
+    enum_constant public static final java.lang.Character.UnicodeScript LAO;
+    enum_constant public static final java.lang.Character.UnicodeScript LATIN;
+    enum_constant public static final java.lang.Character.UnicodeScript LEPCHA;
+    enum_constant public static final java.lang.Character.UnicodeScript LIMBU;
+    enum_constant public static final java.lang.Character.UnicodeScript LINEAR_B;
+    enum_constant public static final java.lang.Character.UnicodeScript LISU;
+    enum_constant public static final java.lang.Character.UnicodeScript LYCIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript LYDIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript MALAYALAM;
+    enum_constant public static final java.lang.Character.UnicodeScript MANDAIC;
+    enum_constant public static final java.lang.Character.UnicodeScript MEETEI_MAYEK;
+    enum_constant public static final java.lang.Character.UnicodeScript MONGOLIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript MYANMAR;
+    enum_constant public static final java.lang.Character.UnicodeScript NEW_TAI_LUE;
+    enum_constant public static final java.lang.Character.UnicodeScript NKO;
+    enum_constant public static final java.lang.Character.UnicodeScript OGHAM;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_ITALIC;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_PERSIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_SOUTH_ARABIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript OLD_TURKIC;
+    enum_constant public static final java.lang.Character.UnicodeScript OL_CHIKI;
+    enum_constant public static final java.lang.Character.UnicodeScript ORIYA;
+    enum_constant public static final java.lang.Character.UnicodeScript OSMANYA;
+    enum_constant public static final java.lang.Character.UnicodeScript PHAGS_PA;
+    enum_constant public static final java.lang.Character.UnicodeScript PHOENICIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript REJANG;
+    enum_constant public static final java.lang.Character.UnicodeScript RUNIC;
+    enum_constant public static final java.lang.Character.UnicodeScript SAMARITAN;
+    enum_constant public static final java.lang.Character.UnicodeScript SAURASHTRA;
+    enum_constant public static final java.lang.Character.UnicodeScript SHAVIAN;
+    enum_constant public static final java.lang.Character.UnicodeScript SINHALA;
+    enum_constant public static final java.lang.Character.UnicodeScript SUNDANESE;
+    enum_constant public static final java.lang.Character.UnicodeScript SYLOTI_NAGRI;
+    enum_constant public static final java.lang.Character.UnicodeScript SYRIAC;
+    enum_constant public static final java.lang.Character.UnicodeScript TAGALOG;
+    enum_constant public static final java.lang.Character.UnicodeScript TAGBANWA;
+    enum_constant public static final java.lang.Character.UnicodeScript TAI_LE;
+    enum_constant public static final java.lang.Character.UnicodeScript TAI_THAM;
+    enum_constant public static final java.lang.Character.UnicodeScript TAI_VIET;
+    enum_constant public static final java.lang.Character.UnicodeScript TAMIL;
+    enum_constant public static final java.lang.Character.UnicodeScript TELUGU;
+    enum_constant public static final java.lang.Character.UnicodeScript THAANA;
+    enum_constant public static final java.lang.Character.UnicodeScript THAI;
+    enum_constant public static final java.lang.Character.UnicodeScript TIBETAN;
+    enum_constant public static final java.lang.Character.UnicodeScript TIFINAGH;
+    enum_constant public static final java.lang.Character.UnicodeScript UGARITIC;
+    enum_constant public static final java.lang.Character.UnicodeScript UNKNOWN;
+    enum_constant public static final java.lang.Character.UnicodeScript VAI;
+    enum_constant public static final java.lang.Character.UnicodeScript YI;
+  }
+
   public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type {
     method public java.lang.Class<? extends U> asSubclass(java.lang.Class<U>);
     method public T cast(java.lang.Object);
@@ -46953,28 +47139,28 @@
     method public java.lang.ClassLoader getClassLoader();
     method public java.lang.Class<?>[] getClasses();
     method public java.lang.Class<?> getComponentType();
-    method public java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Constructor<?>[] getConstructors();
+    method public java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Constructor<?>[] getConstructors() throws java.lang.SecurityException;
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<?>[] getDeclaredClasses();
-    method public java.lang.reflect.Constructor<T> getDeclaredConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Constructor<?>[] getDeclaredConstructors();
+    method public java.lang.reflect.Constructor<T> getDeclaredConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Constructor<?>[] getDeclaredConstructors() throws java.lang.SecurityException;
     method public java.lang.reflect.Field getDeclaredField(java.lang.String) throws java.lang.NoSuchFieldException;
     method public java.lang.reflect.Field[] getDeclaredFields();
-    method public java.lang.reflect.Method getDeclaredMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Method[] getDeclaredMethods();
+    method public java.lang.reflect.Method getDeclaredMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Method[] getDeclaredMethods() throws java.lang.SecurityException;
     method public java.lang.Class<?> getDeclaringClass();
     method public java.lang.Class<?> getEnclosingClass();
     method public java.lang.reflect.Constructor<?> getEnclosingConstructor();
     method public java.lang.reflect.Method getEnclosingMethod();
     method public T[] getEnumConstants();
     method public java.lang.reflect.Field getField(java.lang.String) throws java.lang.NoSuchFieldException;
-    method public java.lang.reflect.Field[] getFields();
+    method public java.lang.reflect.Field[] getFields() throws java.lang.SecurityException;
     method public java.lang.reflect.Type[] getGenericInterfaces();
     method public java.lang.reflect.Type getGenericSuperclass();
     method public java.lang.Class<?>[] getInterfaces();
-    method public java.lang.reflect.Method getMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException;
-    method public java.lang.reflect.Method[] getMethods();
+    method public java.lang.reflect.Method getMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public java.lang.reflect.Method[] getMethods() throws java.lang.SecurityException;
     method public int getModifiers();
     method public java.lang.String getName();
     method public java.lang.Package getPackage();
@@ -47016,8 +47202,8 @@
   }
 
   public abstract class ClassLoader {
-    ctor protected ClassLoader();
     ctor protected ClassLoader(java.lang.ClassLoader);
+    ctor protected ClassLoader();
     method public void clearAssertionStatus();
     method protected final deprecated java.lang.Class<?> defineClass(byte[], int, int) throws java.lang.ClassFormatError;
     method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int) throws java.lang.ClassFormatError;
@@ -47042,6 +47228,7 @@
     method public static java.util.Enumeration<java.net.URL> getSystemResources(java.lang.String) throws java.io.IOException;
     method public java.lang.Class<?> loadClass(java.lang.String) throws java.lang.ClassNotFoundException;
     method protected java.lang.Class<?> loadClass(java.lang.String, boolean) throws java.lang.ClassNotFoundException;
+    method protected static boolean registerAsParallelCapable();
     method protected final void resolveClass(java.lang.Class<?>);
     method public void setClassAssertionStatus(java.lang.String, boolean);
     method public void setDefaultAssertionStatus(boolean);
@@ -47089,10 +47276,10 @@
     method public double doubleValue();
     method public float floatValue();
     method public int intValue();
-    method public boolean isInfinite();
     method public static boolean isInfinite(double);
-    method public boolean isNaN();
+    method public boolean isInfinite();
     method public static boolean isNaN(double);
+    method public boolean isNaN();
     method public static double longBitsToDouble(long);
     method public long longValue();
     method public static double parseDouble(java.lang.String) throws java.lang.NumberFormatException;
@@ -47136,6 +47323,7 @@
     ctor public Error(java.lang.String);
     ctor public Error(java.lang.String, java.lang.Throwable);
     ctor public Error(java.lang.Throwable);
+    ctor protected Error(java.lang.String, java.lang.Throwable, boolean, boolean);
   }
 
   public class Exception extends java.lang.Throwable {
@@ -47143,12 +47331,13 @@
     ctor public Exception(java.lang.String);
     ctor public Exception(java.lang.String, java.lang.Throwable);
     ctor public Exception(java.lang.Throwable);
+    ctor protected Exception(java.lang.String, java.lang.Throwable, boolean, boolean);
   }
 
   public class ExceptionInInitializerError extends java.lang.LinkageError {
     ctor public ExceptionInInitializerError();
-    ctor public ExceptionInInitializerError(java.lang.String);
     ctor public ExceptionInInitializerError(java.lang.Throwable);
+    ctor public ExceptionInInitializerError(java.lang.String);
     method public java.lang.Throwable getException();
   }
 
@@ -47164,10 +47353,10 @@
     method public float floatValue();
     method public static float intBitsToFloat(int);
     method public int intValue();
-    method public boolean isInfinite();
     method public static boolean isInfinite(float);
-    method public boolean isNaN();
+    method public boolean isInfinite();
     method public static boolean isNaN(float);
+    method public boolean isNaN();
     method public long longValue();
     method public static float parseFloat(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.String toHexString(float);
@@ -47263,8 +47452,8 @@
     method public static int lowestOneBit(int);
     method public static int numberOfLeadingZeros(int);
     method public static int numberOfTrailingZeros(int);
-    method public static int parseInt(java.lang.String) throws java.lang.NumberFormatException;
     method public static int parseInt(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static int parseInt(java.lang.String) throws java.lang.NumberFormatException;
     method public static int reverse(int);
     method public static int reverseBytes(int);
     method public static int rotateLeft(int, int);
@@ -47273,10 +47462,10 @@
     method public static java.lang.String toBinaryString(int);
     method public static java.lang.String toHexString(int);
     method public static java.lang.String toOctalString(int);
-    method public static java.lang.String toString(int);
     method public static java.lang.String toString(int, int);
-    method public static java.lang.Integer valueOf(java.lang.String) throws java.lang.NumberFormatException;
+    method public static java.lang.String toString(int);
     method public static java.lang.Integer valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Integer valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Integer valueOf(int);
     field public static final int MAX_VALUE = 2147483647; // 0x7fffffff
     field public static final int MIN_VALUE = -2147483648; // 0x80000000
@@ -47322,8 +47511,8 @@
     method public static long lowestOneBit(long);
     method public static int numberOfLeadingZeros(long);
     method public static int numberOfTrailingZeros(long);
-    method public static long parseLong(java.lang.String) throws java.lang.NumberFormatException;
     method public static long parseLong(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static long parseLong(java.lang.String) throws java.lang.NumberFormatException;
     method public static long reverse(long);
     method public static long reverseBytes(long);
     method public static long rotateLeft(long, int);
@@ -47332,10 +47521,10 @@
     method public static java.lang.String toBinaryString(long);
     method public static java.lang.String toHexString(long);
     method public static java.lang.String toOctalString(long);
-    method public static java.lang.String toString(long);
     method public static java.lang.String toString(long, int);
-    method public static java.lang.Long valueOf(java.lang.String) throws java.lang.NumberFormatException;
+    method public static java.lang.String toString(long);
     method public static java.lang.Long valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Long valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Long valueOf(long);
     field public static final long MAX_VALUE = 9223372036854775807L; // 0x7fffffffffffffffL
     field public static final long MIN_VALUE = -9223372036854775808L; // 0x8000000000000000L
@@ -47345,10 +47534,10 @@
 
   public final class Math {
     method public static double IEEEremainder(double, double);
-    method public static double abs(double);
-    method public static float abs(float);
     method public static int abs(int);
     method public static long abs(long);
+    method public static float abs(float);
+    method public static double abs(double);
     method public static double acos(double);
     method public static double asin(double);
     method public static double atan(double);
@@ -47368,14 +47557,14 @@
     method public static double log(double);
     method public static double log10(double);
     method public static double log1p(double);
-    method public static double max(double, double);
-    method public static float max(float, float);
     method public static int max(int, int);
     method public static long max(long, long);
-    method public static double min(double, double);
-    method public static float min(float, float);
+    method public static float max(float, float);
+    method public static double max(double, double);
     method public static int min(int, int);
     method public static long min(long, long);
+    method public static float min(float, float);
+    method public static double min(double, double);
     method public static double nextAfter(double, double);
     method public static float nextAfter(float, double);
     method public static double nextUp(double);
@@ -47383,8 +47572,8 @@
     method public static double pow(double, double);
     method public static double random();
     method public static double rint(double);
-    method public static long round(double);
     method public static int round(float);
+    method public static long round(double);
     method public static double scalb(double, int);
     method public static float scalb(float, int);
     method public static double signum(double);
@@ -47462,9 +47651,9 @@
     method public final void notify();
     method public final void notifyAll();
     method public java.lang.String toString();
-    method public final void wait() throws java.lang.InterruptedException;
     method public final void wait(long) throws java.lang.InterruptedException;
     method public final void wait(long, int) throws java.lang.InterruptedException;
+    method public final void wait() throws java.lang.InterruptedException;
   }
 
   public class OutOfMemoryError extends java.lang.VirtualMachineError {
@@ -47505,19 +47694,49 @@
   }
 
   public final class ProcessBuilder {
-    ctor public ProcessBuilder(java.lang.String...);
     ctor public ProcessBuilder(java.util.List<java.lang.String>);
-    method public java.util.List<java.lang.String> command();
-    method public java.lang.ProcessBuilder command(java.lang.String...);
+    ctor public ProcessBuilder(java.lang.String...);
     method public java.lang.ProcessBuilder command(java.util.List<java.lang.String>);
+    method public java.lang.ProcessBuilder command(java.lang.String...);
+    method public java.util.List<java.lang.String> command();
     method public java.io.File directory();
     method public java.lang.ProcessBuilder directory(java.io.File);
     method public java.util.Map<java.lang.String, java.lang.String> environment();
+    method public java.lang.ProcessBuilder inheritIO();
+    method public java.lang.ProcessBuilder redirectError(java.lang.ProcessBuilder.Redirect);
+    method public java.lang.ProcessBuilder redirectError(java.io.File);
+    method public java.lang.ProcessBuilder.Redirect redirectError();
     method public boolean redirectErrorStream();
     method public java.lang.ProcessBuilder redirectErrorStream(boolean);
+    method public java.lang.ProcessBuilder redirectInput(java.lang.ProcessBuilder.Redirect);
+    method public java.lang.ProcessBuilder redirectInput(java.io.File);
+    method public java.lang.ProcessBuilder.Redirect redirectInput();
+    method public java.lang.ProcessBuilder redirectOutput(java.lang.ProcessBuilder.Redirect);
+    method public java.lang.ProcessBuilder redirectOutput(java.io.File);
+    method public java.lang.ProcessBuilder.Redirect redirectOutput();
     method public java.lang.Process start() throws java.io.IOException;
   }
 
+  public static abstract class ProcessBuilder.Redirect {
+    method public static java.lang.ProcessBuilder.Redirect appendTo(java.io.File);
+    method public java.io.File file();
+    method public static java.lang.ProcessBuilder.Redirect from(java.io.File);
+    method public static java.lang.ProcessBuilder.Redirect to(java.io.File);
+    method public abstract java.lang.ProcessBuilder.Redirect.Type type();
+    field public static final java.lang.ProcessBuilder.Redirect INHERIT;
+    field public static final java.lang.ProcessBuilder.Redirect PIPE;
+  }
+
+  public static final class ProcessBuilder.Redirect.Type extends java.lang.Enum {
+    method public static java.lang.ProcessBuilder.Redirect.Type valueOf(java.lang.String);
+    method public static final java.lang.ProcessBuilder.Redirect.Type[] values();
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type APPEND;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type INHERIT;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type PIPE;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type READ;
+    enum_constant public static final java.lang.ProcessBuilder.Redirect.Type WRITE;
+  }
+
   public abstract interface Readable {
     method public abstract int read(java.nio.CharBuffer) throws java.io.IOException;
   }
@@ -47525,8 +47744,8 @@
   public class ReflectiveOperationException extends java.lang.Exception {
     ctor public ReflectiveOperationException();
     ctor public ReflectiveOperationException(java.lang.String);
-    ctor public ReflectiveOperationException(java.lang.Throwable);
     ctor public ReflectiveOperationException(java.lang.String, java.lang.Throwable);
+    ctor public ReflectiveOperationException(java.lang.Throwable);
   }
 
   public abstract interface Runnable {
@@ -47536,12 +47755,12 @@
   public class Runtime {
     method public void addShutdownHook(java.lang.Thread);
     method public int availableProcessors();
-    method public java.lang.Process exec(java.lang.String[]) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String[], java.lang.String[]) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String[], java.lang.String[], java.io.File) throws java.io.IOException;
     method public java.lang.Process exec(java.lang.String) throws java.io.IOException;
     method public java.lang.Process exec(java.lang.String, java.lang.String[]) throws java.io.IOException;
     method public java.lang.Process exec(java.lang.String, java.lang.String[], java.io.File) throws java.io.IOException;
+    method public java.lang.Process exec(java.lang.String[]) throws java.io.IOException;
+    method public java.lang.Process exec(java.lang.String[], java.lang.String[]) throws java.io.IOException;
+    method public java.lang.Process exec(java.lang.String[], java.lang.String[], java.io.File) throws java.io.IOException;
     method public void exit(int);
     method public long freeMemory();
     method public void gc();
@@ -47565,6 +47784,7 @@
     ctor public RuntimeException(java.lang.String);
     ctor public RuntimeException(java.lang.String, java.lang.Throwable);
     ctor public RuntimeException(java.lang.Throwable);
+    ctor protected RuntimeException(java.lang.String, java.lang.Throwable, boolean, boolean);
   }
 
   public final class RuntimePermission extends java.security.BasicPermission {
@@ -47629,8 +47849,8 @@
   }
 
   public final class Short extends java.lang.Number implements java.lang.Comparable {
-    ctor public Short(java.lang.String) throws java.lang.NumberFormatException;
     ctor public Short(short);
+    ctor public Short(java.lang.String) throws java.lang.NumberFormatException;
     method public static int compare(short, short);
     method public int compareTo(java.lang.Short);
     method public static java.lang.Short decode(java.lang.String) throws java.lang.NumberFormatException;
@@ -47638,12 +47858,12 @@
     method public float floatValue();
     method public int intValue();
     method public long longValue();
-    method public static short parseShort(java.lang.String) throws java.lang.NumberFormatException;
     method public static short parseShort(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static short parseShort(java.lang.String) throws java.lang.NumberFormatException;
     method public static short reverseBytes(short);
     method public static java.lang.String toString(short);
-    method public static java.lang.Short valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Short valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
+    method public static java.lang.Short valueOf(java.lang.String) throws java.lang.NumberFormatException;
     method public static java.lang.Short valueOf(short);
     field public static final short MAX_VALUE = 32767; // 0x7fff
     field public static final short MIN_VALUE = -32768; // 0xffff8000
@@ -47667,10 +47887,10 @@
 
   public final class StrictMath {
     method public static double IEEEremainder(double, double);
-    method public static double abs(double);
-    method public static float abs(float);
     method public static int abs(int);
     method public static long abs(long);
+    method public static float abs(float);
+    method public static double abs(double);
     method public static double acos(double);
     method public static double asin(double);
     method public static double atan(double);
@@ -47690,14 +47910,14 @@
     method public static double log(double);
     method public static double log10(double);
     method public static double log1p(double);
-    method public static double max(double, double);
-    method public static float max(float, float);
     method public static int max(int, int);
     method public static long max(long, long);
-    method public static double min(double, double);
-    method public static float min(float, float);
+    method public static float max(float, float);
+    method public static double max(double, double);
     method public static int min(int, int);
     method public static long min(long, long);
+    method public static float min(float, float);
+    method public static double min(double, double);
     method public static double nextAfter(double, double);
     method public static float nextAfter(float, double);
     method public static double nextUp(double);
@@ -47705,8 +47925,8 @@
     method public static double pow(double, double);
     method public static double random();
     method public static double rint(double);
-    method public static long round(double);
     method public static int round(float);
+    method public static long round(double);
     method public static double scalb(double, int);
     method public static float scalb(float, int);
     method public static double signum(double);
@@ -47726,19 +47946,19 @@
 
   public final class String implements java.lang.CharSequence java.lang.Comparable java.io.Serializable {
     ctor public String();
-    ctor public String(byte[]);
-    ctor public deprecated String(byte[], int);
-    ctor public String(byte[], int, int);
-    ctor public deprecated String(byte[], int, int, int);
-    ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public String(byte[], int, int, java.nio.charset.Charset);
-    ctor public String(byte[], java.nio.charset.Charset);
+    ctor public String(java.lang.String);
     ctor public String(char[]);
     ctor public String(char[], int, int);
-    ctor public String(java.lang.String);
-    ctor public String(java.lang.StringBuffer);
     ctor public String(int[], int, int);
+    ctor public deprecated String(byte[], int, int, int);
+    ctor public deprecated String(byte[], int);
+    ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public String(byte[], int, int, java.nio.charset.Charset);
+    ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public String(byte[], java.nio.charset.Charset);
+    ctor public String(byte[], int, int);
+    ctor public String(byte[]);
+    ctor public String(java.lang.StringBuffer);
     ctor public String(java.lang.StringBuilder);
     method public char charAt(int);
     method public int codePointAt(int);
@@ -47750,16 +47970,16 @@
     method public boolean contains(java.lang.CharSequence);
     method public boolean contentEquals(java.lang.StringBuffer);
     method public boolean contentEquals(java.lang.CharSequence);
-    method public static java.lang.String copyValueOf(char[]);
     method public static java.lang.String copyValueOf(char[], int, int);
+    method public static java.lang.String copyValueOf(char[]);
     method public boolean endsWith(java.lang.String);
     method public boolean equalsIgnoreCase(java.lang.String);
     method public static java.lang.String format(java.lang.String, java.lang.Object...);
     method public static java.lang.String format(java.util.Locale, java.lang.String, java.lang.Object...);
     method public deprecated void getBytes(int, int, byte[], int);
-    method public byte[] getBytes();
     method public byte[] getBytes(java.lang.String) throws java.io.UnsupportedEncodingException;
     method public byte[] getBytes(java.nio.charset.Charset);
+    method public byte[] getBytes();
     method public void getChars(int, int, char[], int);
     method public int indexOf(int);
     method public int indexOf(int, int);
@@ -47780,109 +48000,51 @@
     method public java.lang.String replace(java.lang.CharSequence, java.lang.CharSequence);
     method public java.lang.String replaceAll(java.lang.String, java.lang.String);
     method public java.lang.String replaceFirst(java.lang.String, java.lang.String);
-    method public java.lang.String[] split(java.lang.String);
     method public java.lang.String[] split(java.lang.String, int);
-    method public boolean startsWith(java.lang.String);
+    method public java.lang.String[] split(java.lang.String);
     method public boolean startsWith(java.lang.String, int);
+    method public boolean startsWith(java.lang.String);
     method public java.lang.CharSequence subSequence(int, int);
     method public java.lang.String substring(int);
     method public java.lang.String substring(int, int);
     method public char[] toCharArray();
-    method public java.lang.String toLowerCase();
     method public java.lang.String toLowerCase(java.util.Locale);
-    method public java.lang.String toUpperCase();
+    method public java.lang.String toLowerCase();
     method public java.lang.String toUpperCase(java.util.Locale);
+    method public java.lang.String toUpperCase();
     method public java.lang.String trim();
+    method public static java.lang.String valueOf(java.lang.Object);
     method public static java.lang.String valueOf(char[]);
     method public static java.lang.String valueOf(char[], int, int);
+    method public static java.lang.String valueOf(boolean);
     method public static java.lang.String valueOf(char);
-    method public static java.lang.String valueOf(double);
-    method public static java.lang.String valueOf(float);
     method public static java.lang.String valueOf(int);
     method public static java.lang.String valueOf(long);
-    method public static java.lang.String valueOf(java.lang.Object);
-    method public static java.lang.String valueOf(boolean);
+    method public static java.lang.String valueOf(float);
+    method public static java.lang.String valueOf(double);
     field public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
   }
 
-  public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+  public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
     ctor public StringBuffer();
     ctor public StringBuffer(int);
     ctor public StringBuffer(java.lang.String);
     ctor public StringBuffer(java.lang.CharSequence);
-    method public java.lang.StringBuffer append(boolean);
-    method public synchronized java.lang.StringBuffer append(char);
-    method public java.lang.StringBuffer append(double);
-    method public java.lang.StringBuffer append(float);
-    method public java.lang.StringBuffer append(int);
-    method public java.lang.StringBuffer append(long);
-    method public synchronized java.lang.StringBuffer append(java.lang.Object);
-    method public synchronized java.lang.StringBuffer append(java.lang.String);
-    method public synchronized java.lang.StringBuffer append(java.lang.StringBuffer);
-    method public synchronized java.lang.StringBuffer append(char[]);
-    method public synchronized java.lang.StringBuffer append(char[], int, int);
-    method public synchronized java.lang.StringBuffer append(java.lang.CharSequence);
-    method public synchronized java.lang.StringBuffer append(java.lang.CharSequence, int, int);
-    method public java.lang.StringBuffer appendCodePoint(int);
-    method public synchronized java.lang.StringBuffer delete(int, int);
-    method public synchronized java.lang.StringBuffer deleteCharAt(int);
-    method public synchronized java.lang.StringBuffer insert(int, char);
-    method public java.lang.StringBuffer insert(int, boolean);
-    method public java.lang.StringBuffer insert(int, int);
-    method public java.lang.StringBuffer insert(int, long);
-    method public java.lang.StringBuffer insert(int, double);
-    method public java.lang.StringBuffer insert(int, float);
-    method public java.lang.StringBuffer insert(int, java.lang.Object);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.String);
-    method public synchronized java.lang.StringBuffer insert(int, char[]);
-    method public synchronized java.lang.StringBuffer insert(int, char[], int, int);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence, int, int);
-    method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
-    method public synchronized java.lang.StringBuffer reverse();
+    method public synchronized java.lang.String toString();
   }
 
-  public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+  public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
     ctor public StringBuilder();
     ctor public StringBuilder(int);
-    ctor public StringBuilder(java.lang.CharSequence);
     ctor public StringBuilder(java.lang.String);
-    method public java.lang.StringBuilder append(boolean);
-    method public java.lang.StringBuilder append(char);
-    method public java.lang.StringBuilder append(int);
-    method public java.lang.StringBuilder append(long);
-    method public java.lang.StringBuilder append(float);
-    method public java.lang.StringBuilder append(double);
-    method public java.lang.StringBuilder append(java.lang.Object);
-    method public java.lang.StringBuilder append(java.lang.String);
-    method public java.lang.StringBuilder append(java.lang.StringBuffer);
-    method public java.lang.StringBuilder append(char[]);
-    method public java.lang.StringBuilder append(char[], int, int);
-    method public java.lang.StringBuilder append(java.lang.CharSequence);
-    method public java.lang.StringBuilder append(java.lang.CharSequence, int, int);
-    method public java.lang.StringBuilder appendCodePoint(int);
-    method public java.lang.StringBuilder delete(int, int);
-    method public java.lang.StringBuilder deleteCharAt(int);
-    method public java.lang.StringBuilder insert(int, boolean);
-    method public java.lang.StringBuilder insert(int, char);
-    method public java.lang.StringBuilder insert(int, int);
-    method public java.lang.StringBuilder insert(int, long);
-    method public java.lang.StringBuilder insert(int, float);
-    method public java.lang.StringBuilder insert(int, double);
-    method public java.lang.StringBuilder insert(int, java.lang.Object);
-    method public java.lang.StringBuilder insert(int, java.lang.String);
-    method public java.lang.StringBuilder insert(int, char[]);
-    method public java.lang.StringBuilder insert(int, char[], int, int);
-    method public java.lang.StringBuilder insert(int, java.lang.CharSequence);
-    method public java.lang.StringBuilder insert(int, java.lang.CharSequence, int, int);
-    method public java.lang.StringBuilder replace(int, int, java.lang.String);
-    method public java.lang.StringBuilder reverse();
+    ctor public StringBuilder(java.lang.CharSequence);
+    method public java.lang.String toString();
   }
 
   public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
     ctor public StringIndexOutOfBoundsException();
-    ctor public StringIndexOutOfBoundsException(int);
     ctor public StringIndexOutOfBoundsException(java.lang.String);
+    ctor public StringIndexOutOfBoundsException(int);
   }
 
   public abstract class SuppressWarnings implements java.lang.annotation.Annotation {
@@ -47924,11 +48086,11 @@
   public class Thread implements java.lang.Runnable {
     ctor public Thread();
     ctor public Thread(java.lang.Runnable);
-    ctor public Thread(java.lang.Runnable, java.lang.String);
-    ctor public Thread(java.lang.String);
     ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable);
-    ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
+    ctor public Thread(java.lang.String);
     ctor public Thread(java.lang.ThreadGroup, java.lang.String);
+    ctor public Thread(java.lang.Runnable, java.lang.String);
+    ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
     ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String, long);
     method public static int activeCount();
     method public final void checkAccess();
@@ -47953,9 +48115,9 @@
     method public final boolean isAlive();
     method public final boolean isDaemon();
     method public boolean isInterrupted();
-    method public final void join() throws java.lang.InterruptedException;
     method public final void join(long) throws java.lang.InterruptedException;
     method public final void join(long, int) throws java.lang.InterruptedException;
+    method public final void join() throws java.lang.InterruptedException;
     method public final deprecated void resume();
     method public void run();
     method public void setContextClassLoader(java.lang.ClassLoader);
@@ -47968,7 +48130,7 @@
     method public static void sleep(long, int) throws java.lang.InterruptedException;
     method public synchronized void start();
     method public final deprecated void stop();
-    method public final deprecated synchronized void stop(java.lang.Throwable);
+    method public final deprecated void stop(java.lang.Throwable);
     method public final deprecated void suspend();
     method public static void yield();
     field public static final int MAX_PRIORITY = 10; // 0xa
@@ -48037,14 +48199,14 @@
     ctor public Throwable(java.lang.String, java.lang.Throwable);
     ctor public Throwable(java.lang.Throwable);
     ctor protected Throwable(java.lang.String, java.lang.Throwable, boolean, boolean);
-    method public final void addSuppressed(java.lang.Throwable);
-    method public java.lang.Throwable fillInStackTrace();
-    method public java.lang.Throwable getCause();
+    method public final synchronized void addSuppressed(java.lang.Throwable);
+    method public synchronized java.lang.Throwable fillInStackTrace();
+    method public synchronized java.lang.Throwable getCause();
     method public java.lang.String getLocalizedMessage();
     method public java.lang.String getMessage();
     method public java.lang.StackTraceElement[] getStackTrace();
-    method public final java.lang.Throwable[] getSuppressed();
-    method public java.lang.Throwable initCause(java.lang.Throwable);
+    method public final synchronized java.lang.Throwable[] getSuppressed();
+    method public synchronized java.lang.Throwable initCause(java.lang.Throwable);
     method public void printStackTrace();
     method public void printStackTrace(java.io.PrintStream);
     method public void printStackTrace(java.io.PrintWriter);
@@ -48165,15 +48327,16 @@
   public abstract class Reference {
     method public void clear();
     method public boolean enqueue();
+    method public final synchronized boolean enqueueInternal();
     method public T get();
     method public boolean isEnqueued();
   }
 
   public class ReferenceQueue {
     ctor public ReferenceQueue();
-    method public synchronized java.lang.ref.Reference<? extends T> poll();
+    method public java.lang.ref.Reference<? extends T> poll();
+    method public java.lang.ref.Reference<? extends T> remove(long) throws java.lang.IllegalArgumentException, java.lang.InterruptedException;
     method public java.lang.ref.Reference<? extends T> remove() throws java.lang.InterruptedException;
-    method public synchronized java.lang.ref.Reference<? extends T> remove(long) throws java.lang.InterruptedException;
   }
 
   public class SoftReference extends java.lang.ref.Reference {
@@ -48197,8 +48360,8 @@
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public boolean isAccessible();
     method public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
-    method public void setAccessible(boolean);
-    method public static void setAccessible(java.lang.reflect.AccessibleObject[], boolean);
+    method public static void setAccessible(java.lang.reflect.AccessibleObject[], boolean) throws java.lang.SecurityException;
+    method public void setAccessible(boolean) throws java.lang.SecurityException;
   }
 
   public abstract interface AnnotatedElement {
@@ -48219,8 +48382,9 @@
     method public static int getLength(java.lang.Object);
     method public static long getLong(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
     method public static short getShort(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static java.lang.Object newInstance(java.lang.Class<?>, int...) throws java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException;
+    method public static java.lang.Object newArray(java.lang.Class<?>, int) throws java.lang.NegativeArraySizeException;
     method public static java.lang.Object newInstance(java.lang.Class<?>, int) throws java.lang.NegativeArraySizeException;
+    method public static java.lang.Object newInstance(java.lang.Class<?>, int...) throws java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException;
     method public static void set(java.lang.Object, int, java.lang.Object) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
     method public static void setBoolean(java.lang.Object, int, boolean);
     method public static void setByte(java.lang.Object, int, byte) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
@@ -48235,7 +48399,6 @@
   public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
     method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
-    method public java.lang.annotation.Annotation[] getAnnotations();
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<T> getDeclaringClass();
     method public java.lang.Class<?>[] getExceptionTypes();
@@ -48322,7 +48485,6 @@
   public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
     method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
-    method public java.lang.annotation.Annotation[] getAnnotations();
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<?> getDeclaringClass();
     method public java.lang.Object getDefaultValue();
@@ -48603,10 +48765,10 @@
     method protected final java.net.InetAddress getRequestingSite();
     method protected java.net.URL getRequestingURL();
     method protected java.net.Authenticator.RequestorType getRequestorType();
-    method public static synchronized java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
-    method public static synchronized java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
+    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
+    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
     method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.net.Authenticator.RequestorType);
-    method public static void setDefault(java.net.Authenticator);
+    method public static synchronized void setDefault(java.net.Authenticator);
   }
 
   public static final class Authenticator.RequestorType extends java.lang.Enum {
@@ -48617,8 +48779,9 @@
   }
 
   public class BindException extends java.net.SocketException {
-    ctor public BindException();
     ctor public BindException(java.lang.String);
+    ctor public BindException();
+    ctor public BindException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract class CacheRequest {
@@ -48634,8 +48797,9 @@
   }
 
   public class ConnectException extends java.net.SocketException {
-    ctor public ConnectException();
     ctor public ConnectException(java.lang.String);
+    ctor public ConnectException();
+    ctor public ConnectException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract class ContentHandler {
@@ -48651,9 +48815,9 @@
   public abstract class CookieHandler {
     ctor public CookieHandler();
     method public abstract java.util.Map<java.lang.String, java.util.List<java.lang.String>> get(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static java.net.CookieHandler getDefault();
+    method public static synchronized java.net.CookieHandler getDefault();
     method public abstract void put(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static void setDefault(java.net.CookieHandler);
+    method public static synchronized void setDefault(java.net.CookieHandler);
   }
 
   public class CookieManager extends java.net.CookieHandler {
@@ -48682,12 +48846,12 @@
   }
 
   public final class DatagramPacket {
-    ctor public DatagramPacket(byte[], int);
     ctor public DatagramPacket(byte[], int, int);
+    ctor public DatagramPacket(byte[], int);
     ctor public DatagramPacket(byte[], int, int, java.net.InetAddress, int);
+    ctor public DatagramPacket(byte[], int, int, java.net.SocketAddress) throws java.net.SocketException;
     ctor public DatagramPacket(byte[], int, java.net.InetAddress, int);
     ctor public DatagramPacket(byte[], int, java.net.SocketAddress) throws java.net.SocketException;
-    ctor public DatagramPacket(byte[], int, int, java.net.SocketAddress) throws java.net.SocketException;
     method public synchronized java.net.InetAddress getAddress();
     method public synchronized byte[] getData();
     method public synchronized int getLength();
@@ -48704,17 +48868,18 @@
 
   public class DatagramSocket implements java.io.Closeable {
     ctor public DatagramSocket() throws java.net.SocketException;
-    ctor public DatagramSocket(int) throws java.net.SocketException;
-    ctor public DatagramSocket(int, java.net.InetAddress) throws java.net.SocketException;
     ctor protected DatagramSocket(java.net.DatagramSocketImpl);
     ctor public DatagramSocket(java.net.SocketAddress) throws java.net.SocketException;
-    method public void bind(java.net.SocketAddress) throws java.net.SocketException;
+    ctor public DatagramSocket(int) throws java.net.SocketException;
+    ctor public DatagramSocket(int, java.net.InetAddress) throws java.net.SocketException;
+    method public synchronized void bind(java.net.SocketAddress) throws java.net.SocketException;
     method public void close();
-    method public void connect(java.net.SocketAddress) throws java.net.SocketException;
     method public void connect(java.net.InetAddress, int);
+    method public void connect(java.net.SocketAddress) throws java.net.SocketException;
     method public void disconnect();
-    method public boolean getBroadcast() throws java.net.SocketException;
+    method public synchronized boolean getBroadcast() throws java.net.SocketException;
     method public java.nio.channels.DatagramChannel getChannel();
+    method public final java.io.FileDescriptor getFileDescriptor$();
     method public java.net.InetAddress getInetAddress();
     method public java.net.InetAddress getLocalAddress();
     method public int getLocalPort();
@@ -48722,22 +48887,22 @@
     method public int getPort();
     method public synchronized int getReceiveBufferSize() throws java.net.SocketException;
     method public java.net.SocketAddress getRemoteSocketAddress();
-    method public boolean getReuseAddress() throws java.net.SocketException;
+    method public synchronized boolean getReuseAddress() throws java.net.SocketException;
     method public synchronized int getSendBufferSize() throws java.net.SocketException;
     method public synchronized int getSoTimeout() throws java.net.SocketException;
-    method public int getTrafficClass() throws java.net.SocketException;
+    method public synchronized int getTrafficClass() throws java.net.SocketException;
     method public boolean isBound();
     method public boolean isClosed();
     method public boolean isConnected();
     method public synchronized void receive(java.net.DatagramPacket) throws java.io.IOException;
     method public void send(java.net.DatagramPacket) throws java.io.IOException;
-    method public void setBroadcast(boolean) throws java.net.SocketException;
+    method public synchronized void setBroadcast(boolean) throws java.net.SocketException;
     method public static synchronized void setDatagramSocketImplFactory(java.net.DatagramSocketImplFactory) throws java.io.IOException;
     method public synchronized void setReceiveBufferSize(int) throws java.net.SocketException;
-    method public void setReuseAddress(boolean) throws java.net.SocketException;
+    method public synchronized void setReuseAddress(boolean) throws java.net.SocketException;
     method public synchronized void setSendBufferSize(int) throws java.net.SocketException;
     method public synchronized void setSoTimeout(int) throws java.net.SocketException;
-    method public void setTrafficClass(int) throws java.net.SocketException;
+    method public synchronized void setTrafficClass(int) throws java.net.SocketException;
   }
 
   public abstract class DatagramSocketImpl implements java.net.SocketOptions {
@@ -48789,11 +48954,14 @@
     method public java.lang.String getValue();
     method public int getVersion();
     method public boolean hasExpired();
+    method public boolean isHttpOnly();
     method public static java.util.List<java.net.HttpCookie> parse(java.lang.String);
+    method public static java.util.List<java.net.HttpCookie> parse(java.lang.String, boolean);
     method public void setComment(java.lang.String);
     method public void setCommentURL(java.lang.String);
     method public void setDiscard(boolean);
     method public void setDomain(java.lang.String);
+    method public void setHttpOnly(boolean);
     method public void setMaxAge(long);
     method public void setPath(java.lang.String);
     method public void setPortlist(java.lang.String);
@@ -48820,8 +48988,8 @@
     method public int getResponseCode() throws java.io.IOException;
     method public java.lang.String getResponseMessage() throws java.io.IOException;
     method public void setChunkedStreamingMode(int);
-    method public void setFixedLengthStreamingMode(long);
     method public void setFixedLengthStreamingMode(int);
+    method public void setFixedLengthStreamingMode(long);
     method public static void setFollowRedirects(boolean);
     method public void setInstanceFollowRedirects(boolean);
     method public void setRequestMethod(java.lang.String) throws java.net.ProtocolException;
@@ -48881,21 +49049,27 @@
   }
 
   public final class Inet4Address extends java.net.InetAddress {
+    field public static final java.net.InetAddress ALL;
+    field public static final java.net.InetAddress ANY;
+    field public static final java.net.InetAddress LOOPBACK;
   }
 
   public final class Inet6Address extends java.net.InetAddress {
-    method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], int) throws java.net.UnknownHostException;
     method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], java.net.NetworkInterface) throws java.net.UnknownHostException;
+    method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], int) throws java.net.UnknownHostException;
     method public int getScopeId();
     method public java.net.NetworkInterface getScopedInterface();
     method public boolean isIPv4CompatibleAddress();
+    field public static final java.net.InetAddress ANY;
+    field public static final java.net.InetAddress LOOPBACK;
   }
 
   public class InetAddress implements java.io.Serializable {
     method public byte[] getAddress();
+    method public byte[] getAddressInternal();
     method public static java.net.InetAddress[] getAllByName(java.lang.String) throws java.net.UnknownHostException;
-    method public static java.net.InetAddress getByAddress(byte[]) throws java.net.UnknownHostException;
     method public static java.net.InetAddress getByAddress(java.lang.String, byte[]) throws java.net.UnknownHostException;
+    method public static java.net.InetAddress getByAddress(byte[]) throws java.net.UnknownHostException;
     method public static java.net.InetAddress getByName(java.lang.String) throws java.net.UnknownHostException;
     method public java.lang.String getCanonicalHostName();
     method public java.lang.String getHostAddress();
@@ -49002,8 +49176,8 @@
   }
 
   public class NoRouteToHostException extends java.net.SocketException {
-    ctor public NoRouteToHostException();
     ctor public NoRouteToHostException(java.lang.String);
+    ctor public NoRouteToHostException();
   }
 
   public final class PasswordAuthentication {
@@ -49013,13 +49187,19 @@
   }
 
   public class PortUnreachableException extends java.net.SocketException {
-    ctor public PortUnreachableException();
     ctor public PortUnreachableException(java.lang.String);
+    ctor public PortUnreachableException();
+    ctor public PortUnreachableException(java.lang.String, java.lang.Throwable);
   }
 
   public class ProtocolException extends java.io.IOException {
-    ctor public ProtocolException();
     ctor public ProtocolException(java.lang.String);
+    ctor public ProtocolException();
+    ctor public ProtocolException(java.lang.String, java.lang.Throwable);
+  }
+
+  public abstract interface ProtocolFamily {
+    method public abstract java.lang.String name();
   }
 
   public class Proxy {
@@ -49050,9 +49230,9 @@
   public abstract class ResponseCache {
     ctor public ResponseCache();
     method public abstract java.net.CacheResponse get(java.net.URI, java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static java.net.ResponseCache getDefault();
+    method public static synchronized java.net.ResponseCache getDefault();
     method public abstract java.net.CacheRequest put(java.net.URI, java.net.URLConnection) throws java.io.IOException;
-    method public static void setDefault(java.net.ResponseCache);
+    method public static synchronized void setDefault(java.net.ResponseCache);
   }
 
   public abstract class SecureCacheResponse extends java.net.CacheResponse {
@@ -49077,14 +49257,14 @@
     method public java.net.InetAddress getInetAddress();
     method public int getLocalPort();
     method public java.net.SocketAddress getLocalSocketAddress();
-    method public int getReceiveBufferSize() throws java.net.SocketException;
+    method public synchronized int getReceiveBufferSize() throws java.net.SocketException;
     method public boolean getReuseAddress() throws java.net.SocketException;
     method public synchronized int getSoTimeout() throws java.io.IOException;
     method protected final void implAccept(java.net.Socket) throws java.io.IOException;
     method public boolean isBound();
     method public boolean isClosed();
     method public void setPerformancePreferences(int, int, int);
-    method public void setReceiveBufferSize(int) throws java.net.SocketException;
+    method public synchronized void setReceiveBufferSize(int) throws java.net.SocketException;
     method public void setReuseAddress(boolean) throws java.net.SocketException;
     method public synchronized void setSoTimeout(int) throws java.net.SocketException;
     method public static synchronized void setSocketFactory(java.net.SocketImplFactory) throws java.io.IOException;
@@ -49093,13 +49273,13 @@
   public class Socket implements java.io.Closeable {
     ctor public Socket();
     ctor public Socket(java.net.Proxy);
-    ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
-    ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
-    ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
-    ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
-    ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
-    ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
     ctor protected Socket(java.net.SocketImpl) throws java.net.SocketException;
+    ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
+    ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
+    ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
+    ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
+    ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
+    ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
     method public void bind(java.net.SocketAddress) throws java.io.IOException;
     method public synchronized void close() throws java.io.IOException;
     method public void connect(java.net.SocketAddress) throws java.io.IOException;
@@ -49148,8 +49328,10 @@
   }
 
   public class SocketException extends java.io.IOException {
-    ctor public SocketException();
     ctor public SocketException(java.lang.String);
+    ctor public SocketException();
+    ctor public SocketException(java.lang.Throwable);
+    ctor public SocketException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract class SocketImpl implements java.net.SocketOptions {
@@ -49162,7 +49344,7 @@
     method protected abstract void connect(java.net.InetAddress, int) throws java.io.IOException;
     method protected abstract void connect(java.net.SocketAddress, int) throws java.io.IOException;
     method protected abstract void create(boolean) throws java.io.IOException;
-    method protected java.io.FileDescriptor getFileDescriptor();
+    method public java.io.FileDescriptor getFileDescriptor();
     method protected java.net.InetAddress getInetAddress();
     method protected abstract java.io.InputStream getInputStream() throws java.io.IOException;
     method protected int getLocalPort();
@@ -49184,6 +49366,11 @@
     method public abstract java.net.SocketImpl createSocketImpl();
   }
 
+  public abstract interface SocketOption {
+    method public abstract java.lang.String name();
+    method public abstract java.lang.Class<T> type();
+  }
+
   public abstract interface SocketOptions {
     method public abstract java.lang.Object getOption(int) throws java.net.SocketException;
     method public abstract void setOption(int, java.lang.Object) throws java.net.SocketException;
@@ -49205,21 +49392,46 @@
 
   public final class SocketPermission extends java.security.Permission implements java.io.Serializable {
     ctor public SocketPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
   public class SocketTimeoutException extends java.io.InterruptedIOException {
-    ctor public SocketTimeoutException();
     ctor public SocketTimeoutException(java.lang.String);
+    ctor public SocketTimeoutException();
+    ctor public SocketTimeoutException(java.lang.Throwable);
+    ctor public SocketTimeoutException(java.lang.String, java.lang.Throwable);
+  }
+
+  public final class StandardProtocolFamily extends java.lang.Enum implements java.net.ProtocolFamily {
+    method public static java.net.StandardProtocolFamily valueOf(java.lang.String);
+    method public static final java.net.StandardProtocolFamily[] values();
+    enum_constant public static final java.net.StandardProtocolFamily INET;
+    enum_constant public static final java.net.StandardProtocolFamily INET6;
+  }
+
+  public final class StandardSocketOptions {
+    field public static final java.net.SocketOption<java.net.NetworkInterface> IP_MULTICAST_IF;
+    field public static final java.net.SocketOption<java.lang.Boolean> IP_MULTICAST_LOOP;
+    field public static final java.net.SocketOption<java.lang.Integer> IP_MULTICAST_TTL;
+    field public static final java.net.SocketOption<java.lang.Integer> IP_TOS;
+    field public static final java.net.SocketOption<java.lang.Boolean> SO_BROADCAST;
+    field public static final java.net.SocketOption<java.lang.Boolean> SO_KEEPALIVE;
+    field public static final java.net.SocketOption<java.lang.Integer> SO_LINGER;
+    field public static final java.net.SocketOption<java.lang.Integer> SO_RCVBUF;
+    field public static final java.net.SocketOption<java.lang.Boolean> SO_REUSEADDR;
+    field public static final java.net.SocketOption<java.lang.Integer> SO_SNDBUF;
+    field public static final java.net.SocketOption<java.lang.Boolean> TCP_NODELAY;
   }
 
   public final class URI implements java.lang.Comparable java.io.Serializable {
     ctor public URI(java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
     ctor public URI(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
     ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+    ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+    ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
     method public int compareTo(java.net.URI);
     method public static java.net.URI create(java.lang.String);
     method public java.lang.String getAuthority();
@@ -49257,12 +49469,12 @@
   }
 
   public final class URL implements java.io.Serializable {
+    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
+    ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
+    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
     ctor public URL(java.lang.String) throws java.net.MalformedURLException;
     ctor public URL(java.net.URL, java.lang.String) throws java.net.MalformedURLException;
     ctor public URL(java.net.URL, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
     method public java.lang.String getAuthority();
     method public final java.lang.Object getContent() throws java.io.IOException;
     method public final java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
@@ -49281,22 +49493,24 @@
     method public boolean sameFile(java.net.URL);
     method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
     method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public static synchronized void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
+    method public static void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
     method public java.lang.String toExternalForm();
     method public java.net.URI toURI() throws java.net.URISyntaxException;
+    method public java.net.URI toURILenient() throws java.net.URISyntaxException;
   }
 
-  public class URLClassLoader extends java.security.SecureClassLoader {
-    ctor public URLClassLoader(java.net.URL[]);
+  public class URLClassLoader extends java.security.SecureClassLoader implements java.io.Closeable {
     ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader);
+    ctor public URLClassLoader(java.net.URL[]);
     ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader, java.net.URLStreamHandlerFactory);
     method protected void addURL(java.net.URL);
+    method public void close() throws java.io.IOException;
     method protected java.lang.Package definePackage(java.lang.String, java.util.jar.Manifest, java.net.URL) throws java.lang.IllegalArgumentException;
     method public java.net.URL findResource(java.lang.String);
     method public java.util.Enumeration<java.net.URL> findResources(java.lang.String) throws java.io.IOException;
     method public java.net.URL[] getURLs();
-    method public static java.net.URLClassLoader newInstance(java.net.URL[]);
     method public static java.net.URLClassLoader newInstance(java.net.URL[], java.lang.ClassLoader);
+    method public static java.net.URLClassLoader newInstance(java.net.URL[]);
   }
 
   public abstract class URLConnection {
@@ -49309,6 +49523,7 @@
     method public java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
     method public java.lang.String getContentEncoding();
     method public int getContentLength();
+    method public long getContentLengthLong();
     method public java.lang.String getContentType();
     method public long getDate();
     method public static boolean getDefaultAllowUserInteraction();
@@ -49317,12 +49532,13 @@
     method public boolean getDoInput();
     method public boolean getDoOutput();
     method public long getExpiration();
-    method public static java.net.FileNameMap getFileNameMap();
-    method public java.lang.String getHeaderField(int);
+    method public static synchronized java.net.FileNameMap getFileNameMap();
     method public java.lang.String getHeaderField(java.lang.String);
+    method public java.lang.String getHeaderField(int);
     method public long getHeaderFieldDate(java.lang.String, long);
     method public int getHeaderFieldInt(java.lang.String, int);
     method public java.lang.String getHeaderFieldKey(int);
+    method public long getHeaderFieldLong(java.lang.String, long);
     method public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getHeaderFields();
     method public long getIfModifiedSince();
     method public java.io.InputStream getInputStream() throws java.io.IOException;
@@ -49373,15 +49589,15 @@
     ctor public URLStreamHandler();
     method protected boolean equals(java.net.URL, java.net.URL);
     method protected int getDefaultPort();
-    method protected java.net.InetAddress getHostAddress(java.net.URL);
+    method protected synchronized java.net.InetAddress getHostAddress(java.net.URL);
     method protected int hashCode(java.net.URL);
     method protected boolean hostsEqual(java.net.URL, java.net.URL);
     method protected abstract java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
     method protected java.net.URLConnection openConnection(java.net.URL, java.net.Proxy) throws java.io.IOException;
     method protected void parseURL(java.net.URL, java.lang.String, int, int);
     method protected boolean sameFile(java.net.URL, java.net.URL);
-    method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
     method protected void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
     method protected java.lang.String toExternalForm(java.net.URL);
   }
 
@@ -49390,8 +49606,8 @@
   }
 
   public class UnknownHostException extends java.io.IOException {
-    ctor public UnknownHostException();
     ctor public UnknownHostException(java.lang.String);
+    ctor public UnknownHostException();
   }
 
   public class UnknownServiceException extends java.io.IOException {
@@ -49447,9 +49663,9 @@
     method public int compareTo(java.nio.ByteBuffer);
     method public abstract java.nio.ByteBuffer duplicate();
     method public abstract byte get();
-    method public java.nio.ByteBuffer get(byte[]);
-    method public java.nio.ByteBuffer get(byte[], int, int);
     method public abstract byte get(int);
+    method public java.nio.ByteBuffer get(byte[], int, int);
+    method public java.nio.ByteBuffer get(byte[]);
     method public abstract char getChar();
     method public abstract char getChar(int);
     method public abstract double getDouble();
@@ -49467,10 +49683,10 @@
     method public final java.nio.ByteOrder order();
     method public final java.nio.ByteBuffer order(java.nio.ByteOrder);
     method public abstract java.nio.ByteBuffer put(byte);
-    method public final java.nio.ByteBuffer put(byte[]);
-    method public java.nio.ByteBuffer put(byte[], int, int);
-    method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
     method public abstract java.nio.ByteBuffer put(int, byte);
+    method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
+    method public java.nio.ByteBuffer put(byte[], int, int);
+    method public final java.nio.ByteBuffer put(byte[]);
     method public abstract java.nio.ByteBuffer putChar(char);
     method public abstract java.nio.ByteBuffer putChar(int, char);
     method public abstract java.nio.ByteBuffer putDouble(double);
@@ -49484,8 +49700,8 @@
     method public abstract java.nio.ByteBuffer putShort(short);
     method public abstract java.nio.ByteBuffer putShort(int, short);
     method public abstract java.nio.ByteBuffer slice();
-    method public static java.nio.ByteBuffer wrap(byte[]);
     method public static java.nio.ByteBuffer wrap(byte[], int, int);
+    method public static java.nio.ByteBuffer wrap(byte[]);
   }
 
   public final class ByteOrder {
@@ -49496,9 +49712,9 @@
 
   public abstract class CharBuffer extends java.nio.Buffer implements java.lang.Appendable java.lang.CharSequence java.lang.Comparable java.lang.Readable {
     method public static java.nio.CharBuffer allocate(int);
-    method public java.nio.CharBuffer append(char);
     method public java.nio.CharBuffer append(java.lang.CharSequence);
     method public java.nio.CharBuffer append(java.lang.CharSequence, int, int);
+    method public java.nio.CharBuffer append(char);
     method public final char[] array();
     method public final int arrayOffset();
     method public abstract java.nio.CharBuffer asReadOnlyBuffer();
@@ -49507,27 +49723,27 @@
     method public int compareTo(java.nio.CharBuffer);
     method public abstract java.nio.CharBuffer duplicate();
     method public abstract char get();
-    method public java.nio.CharBuffer get(char[]);
-    method public java.nio.CharBuffer get(char[], int, int);
     method public abstract char get(int);
+    method public java.nio.CharBuffer get(char[], int, int);
+    method public java.nio.CharBuffer get(char[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public final int length();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.CharBuffer put(char);
-    method public final java.nio.CharBuffer put(char[]);
-    method public java.nio.CharBuffer put(char[], int, int);
-    method public java.nio.CharBuffer put(java.nio.CharBuffer);
     method public abstract java.nio.CharBuffer put(int, char);
-    method public final java.nio.CharBuffer put(java.lang.String);
+    method public java.nio.CharBuffer put(java.nio.CharBuffer);
+    method public java.nio.CharBuffer put(char[], int, int);
+    method public final java.nio.CharBuffer put(char[]);
     method public java.nio.CharBuffer put(java.lang.String, int, int);
+    method public final java.nio.CharBuffer put(java.lang.String);
     method public int read(java.nio.CharBuffer) throws java.io.IOException;
     method public abstract java.nio.CharBuffer slice();
     method public abstract java.nio.CharBuffer subSequence(int, int);
-    method public static java.nio.CharBuffer wrap(char[]);
     method public static java.nio.CharBuffer wrap(char[], int, int);
-    method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
+    method public static java.nio.CharBuffer wrap(char[]);
     method public static java.nio.CharBuffer wrap(java.lang.CharSequence, int, int);
+    method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
   }
 
   public abstract class DoubleBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -49539,20 +49755,20 @@
     method public int compareTo(java.nio.DoubleBuffer);
     method public abstract java.nio.DoubleBuffer duplicate();
     method public abstract double get();
-    method public java.nio.DoubleBuffer get(double[]);
-    method public java.nio.DoubleBuffer get(double[], int, int);
     method public abstract double get(int);
+    method public java.nio.DoubleBuffer get(double[], int, int);
+    method public java.nio.DoubleBuffer get(double[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.DoubleBuffer put(double);
-    method public final java.nio.DoubleBuffer put(double[]);
-    method public java.nio.DoubleBuffer put(double[], int, int);
-    method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
     method public abstract java.nio.DoubleBuffer put(int, double);
+    method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
+    method public java.nio.DoubleBuffer put(double[], int, int);
+    method public final java.nio.DoubleBuffer put(double[]);
     method public abstract java.nio.DoubleBuffer slice();
-    method public static java.nio.DoubleBuffer wrap(double[]);
     method public static java.nio.DoubleBuffer wrap(double[], int, int);
+    method public static java.nio.DoubleBuffer wrap(double[]);
   }
 
   public abstract class FloatBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -49564,20 +49780,20 @@
     method public int compareTo(java.nio.FloatBuffer);
     method public abstract java.nio.FloatBuffer duplicate();
     method public abstract float get();
-    method public java.nio.FloatBuffer get(float[]);
-    method public java.nio.FloatBuffer get(float[], int, int);
     method public abstract float get(int);
+    method public java.nio.FloatBuffer get(float[], int, int);
+    method public java.nio.FloatBuffer get(float[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.FloatBuffer put(float);
-    method public final java.nio.FloatBuffer put(float[]);
-    method public java.nio.FloatBuffer put(float[], int, int);
-    method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
     method public abstract java.nio.FloatBuffer put(int, float);
+    method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
+    method public java.nio.FloatBuffer put(float[], int, int);
+    method public final java.nio.FloatBuffer put(float[]);
     method public abstract java.nio.FloatBuffer slice();
-    method public static java.nio.FloatBuffer wrap(float[]);
     method public static java.nio.FloatBuffer wrap(float[], int, int);
+    method public static java.nio.FloatBuffer wrap(float[]);
   }
 
   public abstract class IntBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -49589,20 +49805,20 @@
     method public int compareTo(java.nio.IntBuffer);
     method public abstract java.nio.IntBuffer duplicate();
     method public abstract int get();
-    method public java.nio.IntBuffer get(int[]);
-    method public java.nio.IntBuffer get(int[], int, int);
     method public abstract int get(int);
+    method public java.nio.IntBuffer get(int[], int, int);
+    method public java.nio.IntBuffer get(int[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.IntBuffer put(int);
-    method public final java.nio.IntBuffer put(int[]);
-    method public java.nio.IntBuffer put(int[], int, int);
-    method public java.nio.IntBuffer put(java.nio.IntBuffer);
     method public abstract java.nio.IntBuffer put(int, int);
+    method public java.nio.IntBuffer put(java.nio.IntBuffer);
+    method public java.nio.IntBuffer put(int[], int, int);
+    method public final java.nio.IntBuffer put(int[]);
     method public abstract java.nio.IntBuffer slice();
-    method public static java.nio.IntBuffer wrap(int[]);
     method public static java.nio.IntBuffer wrap(int[], int, int);
+    method public static java.nio.IntBuffer wrap(int[]);
   }
 
   public class InvalidMarkException extends java.lang.IllegalStateException {
@@ -49618,20 +49834,20 @@
     method public int compareTo(java.nio.LongBuffer);
     method public abstract java.nio.LongBuffer duplicate();
     method public abstract long get();
-    method public java.nio.LongBuffer get(long[]);
-    method public java.nio.LongBuffer get(long[], int, int);
     method public abstract long get(int);
+    method public java.nio.LongBuffer get(long[], int, int);
+    method public java.nio.LongBuffer get(long[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.LongBuffer put(long);
-    method public final java.nio.LongBuffer put(long[]);
-    method public java.nio.LongBuffer put(long[], int, int);
-    method public java.nio.LongBuffer put(java.nio.LongBuffer);
     method public abstract java.nio.LongBuffer put(int, long);
+    method public java.nio.LongBuffer put(java.nio.LongBuffer);
+    method public java.nio.LongBuffer put(long[], int, int);
+    method public final java.nio.LongBuffer put(long[]);
     method public abstract java.nio.LongBuffer slice();
-    method public static java.nio.LongBuffer wrap(long[]);
     method public static java.nio.LongBuffer wrap(long[], int, int);
+    method public static java.nio.LongBuffer wrap(long[]);
   }
 
   public abstract class MappedByteBuffer extends java.nio.ByteBuffer {
@@ -49653,34 +49869,119 @@
     method public int compareTo(java.nio.ShortBuffer);
     method public abstract java.nio.ShortBuffer duplicate();
     method public abstract short get();
-    method public java.nio.ShortBuffer get(short[]);
-    method public java.nio.ShortBuffer get(short[], int, int);
     method public abstract short get(int);
+    method public java.nio.ShortBuffer get(short[], int, int);
+    method public java.nio.ShortBuffer get(short[]);
     method public final boolean hasArray();
     method public abstract boolean isDirect();
     method public abstract java.nio.ByteOrder order();
     method public abstract java.nio.ShortBuffer put(short);
-    method public final java.nio.ShortBuffer put(short[]);
-    method public java.nio.ShortBuffer put(short[], int, int);
-    method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
     method public abstract java.nio.ShortBuffer put(int, short);
+    method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
+    method public java.nio.ShortBuffer put(short[], int, int);
+    method public final java.nio.ShortBuffer put(short[]);
     method public abstract java.nio.ShortBuffer slice();
-    method public static java.nio.ShortBuffer wrap(short[]);
     method public static java.nio.ShortBuffer wrap(short[], int, int);
+    method public static java.nio.ShortBuffer wrap(short[]);
   }
 
 }
 
 package java.nio.channels {
 
+  public class AcceptPendingException extends java.lang.IllegalStateException {
+    ctor public AcceptPendingException();
+  }
+
+  public class AlreadyBoundException extends java.lang.IllegalStateException {
+    ctor public AlreadyBoundException();
+  }
+
   public class AlreadyConnectedException extends java.lang.IllegalStateException {
     ctor public AlreadyConnectedException();
   }
 
+  public abstract interface AsynchronousByteChannel implements java.nio.channels.AsynchronousChannel {
+    method public abstract void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+    method public abstract void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+  }
+
+  public abstract interface AsynchronousChannel implements java.nio.channels.Channel {
+    method public abstract void close() throws java.io.IOException;
+  }
+
+  public abstract class AsynchronousChannelGroup {
+    ctor protected AsynchronousChannelGroup(java.nio.channels.spi.AsynchronousChannelProvider);
+    method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public abstract boolean isShutdown();
+    method public abstract boolean isTerminated();
+    method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+    method public abstract void shutdown();
+    method public abstract void shutdownNow() throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousChannelGroup withCachedThreadPool(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousChannelGroup withFixedThreadPool(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousChannelGroup withThreadPool(java.util.concurrent.ExecutorService) throws java.io.IOException;
+  }
+
   public class AsynchronousCloseException extends java.nio.channels.ClosedChannelException {
     ctor public AsynchronousCloseException();
   }
 
+  public abstract class AsynchronousFileChannel implements java.nio.channels.AsynchronousChannel {
+    ctor protected AsynchronousFileChannel();
+    method public abstract void force(boolean) throws java.io.IOException;
+    method public abstract void lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+    method public final void lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+    method public abstract java.util.concurrent.Future<java.nio.channels.FileLock> lock(long, long, boolean);
+    method public final java.util.concurrent.Future<java.nio.channels.FileLock> lock();
+    method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public abstract void read(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer, long);
+    method public abstract long size() throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousFileChannel truncate(long) throws java.io.IOException;
+    method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+    method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
+    method public abstract void write(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer, long);
+  }
+
+  public abstract class AsynchronousServerSocketChannel implements java.nio.channels.AsynchronousChannel java.nio.channels.NetworkChannel {
+    ctor protected AsynchronousServerSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+    method public abstract void accept(A, java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel, ? super A>);
+    method public abstract java.util.concurrent.Future<java.nio.channels.AsynchronousSocketChannel> accept();
+    method public final java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousServerSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousServerSocketChannel open() throws java.io.IOException;
+    method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+    method public abstract java.nio.channels.AsynchronousServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+  }
+
+  public abstract class AsynchronousSocketChannel implements java.nio.channels.AsynchronousByteChannel java.nio.channels.NetworkChannel {
+    ctor protected AsynchronousSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+    method public abstract java.nio.channels.AsynchronousSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract void connect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Void> connect(java.net.SocketAddress);
+    method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public static java.nio.channels.AsynchronousSocketChannel open() throws java.io.IOException;
+    method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+    method public abstract void read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public final void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+    method public abstract void read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+    method public abstract java.nio.channels.AsynchronousSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousSocketChannel shutdownInput() throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousSocketChannel shutdownOutput() throws java.io.IOException;
+    method public abstract void write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public final void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+    method public abstract void write(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+  }
+
   public abstract interface ByteChannel implements java.nio.channels.ReadableByteChannel java.nio.channels.WritableByteChannel {
   }
 
@@ -49697,7 +49998,9 @@
     method public static java.nio.channels.ReadableByteChannel newChannel(java.io.InputStream);
     method public static java.nio.channels.WritableByteChannel newChannel(java.io.OutputStream);
     method public static java.io.InputStream newInputStream(java.nio.channels.ReadableByteChannel);
+    method public static java.io.InputStream newInputStream(java.nio.channels.AsynchronousByteChannel);
     method public static java.io.OutputStream newOutputStream(java.nio.channels.WritableByteChannel);
+    method public static java.io.OutputStream newOutputStream(java.nio.channels.AsynchronousByteChannel);
     method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int);
     method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.lang.String);
     method public static java.io.Writer newWriter(java.nio.channels.WritableByteChannel, java.nio.charset.CharsetEncoder, int);
@@ -49716,50 +50019,61 @@
     ctor public ClosedSelectorException();
   }
 
+  public abstract interface CompletionHandler {
+    method public abstract void completed(V, A);
+    method public abstract void failed(java.lang.Throwable, A);
+  }
+
   public class ConnectionPendingException extends java.lang.IllegalStateException {
     ctor public ConnectionPendingException();
   }
 
-  public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+  public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.MulticastChannel java.nio.channels.ScatteringByteChannel {
     ctor protected DatagramChannel(java.nio.channels.spi.SelectorProvider);
+    method public abstract java.nio.channels.DatagramChannel bind(java.net.SocketAddress) throws java.io.IOException;
     method public abstract java.nio.channels.DatagramChannel connect(java.net.SocketAddress) throws java.io.IOException;
     method public abstract java.nio.channels.DatagramChannel disconnect() throws java.io.IOException;
+    method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
     method public abstract boolean isConnected();
     method public static java.nio.channels.DatagramChannel open() throws java.io.IOException;
+    method public static java.nio.channels.DatagramChannel open(java.net.ProtocolFamily) throws java.io.IOException;
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract java.net.SocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract int send(java.nio.ByteBuffer, java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
     method public abstract java.net.DatagramSocket socket();
     method public final int validOps();
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
-  public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+  public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel java.nio.channels.SeekableByteChannel {
     ctor protected FileChannel();
     method public abstract void force(boolean) throws java.io.IOException;
-    method public final java.nio.channels.FileLock lock() throws java.io.IOException;
     method public abstract java.nio.channels.FileLock lock(long, long, boolean) throws java.io.IOException;
+    method public final java.nio.channels.FileLock lock() throws java.io.IOException;
     method public abstract java.nio.MappedByteBuffer map(java.nio.channels.FileChannel.MapMode, long, long) throws java.io.IOException;
+    method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
     method public abstract long position() throws java.io.IOException;
     method public abstract java.nio.channels.FileChannel position(long) throws java.io.IOException;
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
-    method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
-    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
     method public abstract long size() throws java.io.IOException;
     method public abstract long transferFrom(java.nio.channels.ReadableByteChannel, long, long) throws java.io.IOException;
     method public abstract long transferTo(long, long, java.nio.channels.WritableByteChannel) throws java.io.IOException;
     method public abstract java.nio.channels.FileChannel truncate(long) throws java.io.IOException;
-    method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
     method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+    method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
-    method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
-    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
   }
 
   public static class FileChannel.MapMode {
@@ -49770,6 +50084,8 @@
 
   public abstract class FileLock implements java.lang.AutoCloseable {
     ctor protected FileLock(java.nio.channels.FileChannel, long, long, boolean);
+    ctor protected FileLock(java.nio.channels.AsynchronousFileChannel, long, long, boolean);
+    method public java.nio.channels.Channel acquiredBy();
     method public final java.nio.channels.FileChannel channel();
     method public final void close() throws java.io.IOException;
     method public final boolean isShared();
@@ -49786,22 +50102,56 @@
   }
 
   public abstract interface GatheringByteChannel implements java.nio.channels.WritableByteChannel {
-    method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
   public class IllegalBlockingModeException extends java.lang.IllegalStateException {
     ctor public IllegalBlockingModeException();
   }
 
+  public class IllegalChannelGroupException extends java.lang.IllegalArgumentException {
+    ctor public IllegalChannelGroupException();
+  }
+
   public class IllegalSelectorException extends java.lang.IllegalArgumentException {
     ctor public IllegalSelectorException();
   }
 
+  public class InterruptedByTimeoutException extends java.io.IOException {
+    ctor public InterruptedByTimeoutException();
+  }
+
   public abstract interface InterruptibleChannel implements java.nio.channels.Channel {
     method public abstract void close() throws java.io.IOException;
   }
 
+  public abstract class MembershipKey {
+    ctor protected MembershipKey();
+    method public abstract java.nio.channels.MembershipKey block(java.net.InetAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.MulticastChannel channel();
+    method public abstract void drop();
+    method public abstract java.net.InetAddress group();
+    method public abstract boolean isValid();
+    method public abstract java.net.NetworkInterface networkInterface();
+    method public abstract java.net.InetAddress sourceAddress();
+    method public abstract java.nio.channels.MembershipKey unblock(java.net.InetAddress);
+  }
+
+  public abstract interface MulticastChannel implements java.nio.channels.NetworkChannel {
+    method public abstract void close() throws java.io.IOException;
+    method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface) throws java.io.IOException;
+    method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress) throws java.io.IOException;
+  }
+
+  public abstract interface NetworkChannel implements java.nio.channels.Channel {
+    method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException;
+    method public abstract T getOption(java.net.SocketOption<T>) throws java.io.IOException;
+    method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+    method public abstract java.util.Set<java.net.SocketOption<?>> supportedOptions();
+  }
+
   public class NoConnectionPendingException extends java.lang.IllegalStateException {
     ctor public NoConnectionPendingException();
   }
@@ -49843,13 +50193,26 @@
     method public final int validOps();
   }
 
+  public class ReadPendingException extends java.lang.IllegalStateException {
+    ctor public ReadPendingException();
+  }
+
   public abstract interface ReadableByteChannel implements java.nio.channels.Channel {
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
   public abstract interface ScatteringByteChannel implements java.nio.channels.ReadableByteChannel {
-    method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+  }
+
+  public abstract interface SeekableByteChannel implements java.nio.channels.ByteChannel {
+    method public abstract long position() throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel position(long) throws java.io.IOException;
+    method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
+    method public abstract long size() throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel truncate(long) throws java.io.IOException;
+    method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
   public abstract class SelectableChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.Channel {
@@ -49860,8 +50223,8 @@
     method public abstract boolean isRegistered();
     method public abstract java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
     method public abstract java.nio.channels.spi.SelectorProvider provider();
-    method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
     method public abstract java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
+    method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
     method public abstract int validOps();
   }
 
@@ -49893,37 +50256,49 @@
     method public abstract java.util.Set<java.nio.channels.SelectionKey> keys();
     method public static java.nio.channels.Selector open() throws java.io.IOException;
     method public abstract java.nio.channels.spi.SelectorProvider provider();
-    method public abstract int select() throws java.io.IOException;
     method public abstract int select(long) throws java.io.IOException;
+    method public abstract int select() throws java.io.IOException;
     method public abstract int selectNow() throws java.io.IOException;
     method public abstract java.util.Set<java.nio.channels.SelectionKey> selectedKeys();
     method public abstract java.nio.channels.Selector wakeup();
   }
 
-  public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel {
+  public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.NetworkChannel {
     ctor protected ServerSocketChannel(java.nio.channels.spi.SelectorProvider);
     method public abstract java.nio.channels.SocketChannel accept() throws java.io.IOException;
+    method public final java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public abstract java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
     method public static java.nio.channels.ServerSocketChannel open() throws java.io.IOException;
+    method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
     method public abstract java.net.ServerSocket socket();
     method public final int validOps();
   }
 
-  public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+  public class ShutdownChannelGroupException extends java.lang.IllegalStateException {
+    ctor public ShutdownChannelGroupException();
+  }
+
+  public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.NetworkChannel java.nio.channels.ScatteringByteChannel {
     ctor protected SocketChannel(java.nio.channels.spi.SelectorProvider);
+    method public abstract java.nio.channels.SocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
     method public abstract boolean connect(java.net.SocketAddress) throws java.io.IOException;
     method public abstract boolean finishConnect() throws java.io.IOException;
+    method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
     method public abstract boolean isConnected();
     method public abstract boolean isConnectionPending();
     method public static java.nio.channels.SocketChannel open() throws java.io.IOException;
     method public static java.nio.channels.SocketChannel open(java.net.SocketAddress) throws java.io.IOException;
     method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+    method public abstract java.nio.channels.SocketChannel shutdownInput() throws java.io.IOException;
+    method public abstract java.nio.channels.SocketChannel shutdownOutput() throws java.io.IOException;
     method public abstract java.net.Socket socket();
     method public final int validOps();
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
     method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+    method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
   public class UnresolvedAddressException extends java.lang.IllegalArgumentException {
@@ -49938,6 +50313,10 @@
     method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
+  public class WritePendingException extends java.lang.IllegalStateException {
+    ctor public WritePendingException();
+  }
+
 }
 
 package java.nio.channels.spi {
@@ -49948,19 +50327,19 @@
     method public final void close() throws java.io.IOException;
     method protected final void end(boolean) throws java.nio.channels.AsynchronousCloseException;
     method protected abstract void implCloseChannel() throws java.io.IOException;
-    method public final synchronized boolean isOpen();
+    method public final boolean isOpen();
   }
 
   public abstract class AbstractSelectableChannel extends java.nio.channels.SelectableChannel {
     ctor protected AbstractSelectableChannel(java.nio.channels.spi.SelectorProvider);
     method public final java.lang.Object blockingLock();
     method public final java.nio.channels.SelectableChannel configureBlocking(boolean) throws java.io.IOException;
-    method protected final synchronized void implCloseChannel() throws java.io.IOException;
+    method protected final void implCloseChannel() throws java.io.IOException;
     method protected abstract void implCloseSelectableChannel() throws java.io.IOException;
     method protected abstract void implConfigureBlocking(boolean) throws java.io.IOException;
     method public final boolean isBlocking();
-    method public final synchronized boolean isRegistered();
-    method public final synchronized java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
+    method public final boolean isRegistered();
+    method public final java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
     method public final java.nio.channels.spi.SelectorProvider provider();
     method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
   }
@@ -49984,15 +50363,25 @@
     method protected abstract java.nio.channels.SelectionKey register(java.nio.channels.spi.AbstractSelectableChannel, int, java.lang.Object);
   }
 
+  public abstract class AsynchronousChannelProvider {
+    ctor protected AsynchronousChannelProvider();
+    method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public abstract java.nio.channels.AsynchronousSocketChannel openAsynchronousSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+    method public static java.nio.channels.spi.AsynchronousChannelProvider provider();
+  }
+
   public abstract class SelectorProvider {
     ctor protected SelectorProvider();
     method public java.nio.channels.Channel inheritedChannel() throws java.io.IOException;
     method public abstract java.nio.channels.DatagramChannel openDatagramChannel() throws java.io.IOException;
+    method public abstract java.nio.channels.DatagramChannel openDatagramChannel(java.net.ProtocolFamily) throws java.io.IOException;
     method public abstract java.nio.channels.Pipe openPipe() throws java.io.IOException;
     method public abstract java.nio.channels.spi.AbstractSelector openSelector() throws java.io.IOException;
     method public abstract java.nio.channels.ServerSocketChannel openServerSocketChannel() throws java.io.IOException;
     method public abstract java.nio.channels.SocketChannel openSocketChannel() throws java.io.IOException;
-    method public static synchronized java.nio.channels.spi.SelectorProvider provider();
+    method public static java.nio.channels.spi.SelectorProvider provider();
   }
 
 }
@@ -50031,8 +50420,8 @@
     ctor protected CharsetDecoder(java.nio.charset.Charset, float, float);
     method public final float averageCharsPerByte();
     method public final java.nio.charset.Charset charset();
-    method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
     method public final java.nio.charset.CoderResult decode(java.nio.ByteBuffer, java.nio.CharBuffer, boolean);
+    method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
     method protected abstract java.nio.charset.CoderResult decodeLoop(java.nio.ByteBuffer, java.nio.CharBuffer);
     method public java.nio.charset.Charset detectedCharset();
     method public final java.nio.charset.CoderResult flush(java.nio.CharBuffer);
@@ -50054,14 +50443,14 @@
   }
 
   public abstract class CharsetEncoder {
-    ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
     ctor protected CharsetEncoder(java.nio.charset.Charset, float, float, byte[]);
+    ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
     method public final float averageBytesPerChar();
     method public boolean canEncode(char);
     method public boolean canEncode(java.lang.CharSequence);
     method public final java.nio.charset.Charset charset();
-    method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
     method public final java.nio.charset.CoderResult encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean);
+    method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
     method protected abstract java.nio.charset.CoderResult encodeLoop(java.nio.CharBuffer, java.nio.ByteBuffer);
     method public final java.nio.charset.CoderResult flush(java.nio.ByteBuffer);
     method protected java.nio.charset.CoderResult implFlush(java.nio.ByteBuffer);
@@ -50090,10 +50479,10 @@
     method public boolean isOverflow();
     method public boolean isUnderflow();
     method public boolean isUnmappable();
-    method public int length() throws java.lang.UnsupportedOperationException;
-    method public static synchronized java.nio.charset.CoderResult malformedForLength(int) throws java.lang.IllegalArgumentException;
-    method public void throwException() throws java.nio.BufferOverflowException, java.nio.BufferUnderflowException, java.nio.charset.CharacterCodingException, java.nio.charset.MalformedInputException, java.nio.charset.UnmappableCharacterException;
-    method public static synchronized java.nio.charset.CoderResult unmappableForLength(int) throws java.lang.IllegalArgumentException;
+    method public int length();
+    method public static java.nio.charset.CoderResult malformedForLength(int);
+    method public void throwException() throws java.nio.charset.CharacterCodingException;
+    method public static java.nio.charset.CoderResult unmappableForLength(int);
     field public static final java.nio.charset.CoderResult OVERFLOW;
     field public static final java.nio.charset.CoderResult UNDERFLOW;
   }
@@ -50145,11 +50534,597 @@
 
 }
 
+package java.nio.file {
+
+  public class AccessDeniedException extends java.nio.file.FileSystemException {
+    ctor public AccessDeniedException(java.lang.String);
+    ctor public AccessDeniedException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public final class AccessMode extends java.lang.Enum {
+    method public static java.nio.file.AccessMode valueOf(java.lang.String);
+    method public static final java.nio.file.AccessMode[] values();
+    enum_constant public static final java.nio.file.AccessMode EXECUTE;
+    enum_constant public static final java.nio.file.AccessMode READ;
+    enum_constant public static final java.nio.file.AccessMode WRITE;
+  }
+
+  public class AtomicMoveNotSupportedException extends java.nio.file.FileSystemException {
+    ctor public AtomicMoveNotSupportedException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public class ClosedDirectoryStreamException extends java.lang.IllegalStateException {
+    ctor public ClosedDirectoryStreamException();
+  }
+
+  public class ClosedFileSystemException extends java.lang.IllegalStateException {
+    ctor public ClosedFileSystemException();
+  }
+
+  public class ClosedWatchServiceException extends java.lang.IllegalStateException {
+    ctor public ClosedWatchServiceException();
+  }
+
+  public abstract interface CopyOption {
+  }
+
+  public final class DirectoryIteratorException extends java.util.ConcurrentModificationException {
+    ctor public DirectoryIteratorException(java.io.IOException);
+  }
+
+  public class DirectoryNotEmptyException extends java.nio.file.FileSystemException {
+    ctor public DirectoryNotEmptyException(java.lang.String);
+  }
+
+  public abstract interface DirectoryStream implements java.io.Closeable java.lang.Iterable {
+    method public abstract java.util.Iterator<T> iterator();
+  }
+
+  public static abstract interface DirectoryStream.Filter {
+    method public abstract boolean accept(T) throws java.io.IOException;
+  }
+
+  public class FileAlreadyExistsException extends java.nio.file.FileSystemException {
+    ctor public FileAlreadyExistsException(java.lang.String);
+    ctor public FileAlreadyExistsException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public abstract class FileStore {
+    ctor protected FileStore();
+    method public abstract java.lang.Object getAttribute(java.lang.String) throws java.io.IOException;
+    method public abstract V getFileStoreAttributeView(java.lang.Class<V>);
+    method public abstract long getTotalSpace() throws java.io.IOException;
+    method public abstract long getUnallocatedSpace() throws java.io.IOException;
+    method public abstract long getUsableSpace() throws java.io.IOException;
+    method public abstract boolean isReadOnly();
+    method public abstract java.lang.String name();
+    method public abstract boolean supportsFileAttributeView(java.lang.Class<? extends java.nio.file.attribute.FileAttributeView>);
+    method public abstract boolean supportsFileAttributeView(java.lang.String);
+    method public abstract java.lang.String type();
+  }
+
+  public abstract class FileSystem implements java.io.Closeable {
+    ctor protected FileSystem();
+    method public abstract void close() throws java.io.IOException;
+    method public abstract java.lang.Iterable<java.nio.file.FileStore> getFileStores();
+    method public abstract java.nio.file.Path getPath(java.lang.String, java.lang.String...);
+    method public abstract java.nio.file.PathMatcher getPathMatcher(java.lang.String);
+    method public abstract java.lang.Iterable<java.nio.file.Path> getRootDirectories();
+    method public abstract java.lang.String getSeparator();
+    method public abstract java.nio.file.attribute.UserPrincipalLookupService getUserPrincipalLookupService();
+    method public abstract boolean isOpen();
+    method public abstract boolean isReadOnly();
+    method public abstract java.nio.file.WatchService newWatchService() throws java.io.IOException;
+    method public abstract java.nio.file.spi.FileSystemProvider provider();
+    method public abstract java.util.Set<java.lang.String> supportedFileAttributeViews();
+  }
+
+  public class FileSystemAlreadyExistsException extends java.lang.RuntimeException {
+    ctor public FileSystemAlreadyExistsException();
+    ctor public FileSystemAlreadyExistsException(java.lang.String);
+  }
+
+  public class FileSystemException extends java.io.IOException {
+    ctor public FileSystemException(java.lang.String);
+    ctor public FileSystemException(java.lang.String, java.lang.String, java.lang.String);
+    method public java.lang.String getFile();
+    method public java.lang.String getOtherFile();
+    method public java.lang.String getReason();
+  }
+
+  public class FileSystemLoopException extends java.nio.file.FileSystemException {
+    ctor public FileSystemLoopException(java.lang.String);
+  }
+
+  public class FileSystemNotFoundException extends java.lang.RuntimeException {
+    ctor public FileSystemNotFoundException();
+    ctor public FileSystemNotFoundException(java.lang.String);
+  }
+
+  public final class FileSystems {
+    method public static java.nio.file.FileSystem getDefault();
+    method public static java.nio.file.FileSystem getFileSystem(java.net.URI);
+    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>, java.lang.ClassLoader) throws java.io.IOException;
+    method public static java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.lang.ClassLoader) throws java.io.IOException;
+  }
+
+  public final class FileVisitOption extends java.lang.Enum {
+    method public static java.nio.file.FileVisitOption valueOf(java.lang.String);
+    method public static final java.nio.file.FileVisitOption[] values();
+    enum_constant public static final java.nio.file.FileVisitOption FOLLOW_LINKS;
+  }
+
+  public final class FileVisitResult extends java.lang.Enum {
+    method public static java.nio.file.FileVisitResult valueOf(java.lang.String);
+    method public static final java.nio.file.FileVisitResult[] values();
+    enum_constant public static final java.nio.file.FileVisitResult CONTINUE;
+    enum_constant public static final java.nio.file.FileVisitResult SKIP_SIBLINGS;
+    enum_constant public static final java.nio.file.FileVisitResult SKIP_SUBTREE;
+    enum_constant public static final java.nio.file.FileVisitResult TERMINATE;
+  }
+
+  public abstract interface FileVisitor {
+    method public abstract java.nio.file.FileVisitResult postVisitDirectory(T, java.io.IOException) throws java.io.IOException;
+    method public abstract java.nio.file.FileVisitResult preVisitDirectory(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+    method public abstract java.nio.file.FileVisitResult visitFile(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+    method public abstract java.nio.file.FileVisitResult visitFileFailed(T, java.io.IOException) throws java.io.IOException;
+  }
+
+  public final class Files {
+    method public static java.nio.file.Path copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public static long copy(java.io.InputStream, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public static long copy(java.nio.file.Path, java.io.OutputStream) throws java.io.IOException;
+    method public static java.nio.file.Path createDirectories(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createFile(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.Path createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempDirectory(java.nio.file.Path, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempDirectory(java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempFile(java.nio.file.Path, java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempFile(java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static void delete(java.nio.file.Path) throws java.io.IOException;
+    method public static boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+    method public static boolean exists(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static java.lang.Object getAttribute(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public static java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.attribute.FileTime getLastModifiedTime(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.nio.file.attribute.UserPrincipal getOwner(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> getPosixFilePermissions(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static boolean isDirectory(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static boolean isExecutable(java.nio.file.Path);
+    method public static boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+    method public static boolean isReadable(java.nio.file.Path);
+    method public static boolean isRegularFile(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public static boolean isSymbolicLink(java.nio.file.Path);
+    method public static boolean isWritable(java.nio.file.Path);
+    method public static java.nio.file.Path move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public static java.io.BufferedReader newBufferedReader(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+    method public static java.io.BufferedWriter newBufferedWriter(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+    method public static java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static boolean notExists(java.nio.file.Path, java.nio.file.LinkOption...);
+    method public static java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+    method public static byte[] readAllBytes(java.nio.file.Path) throws java.io.IOException;
+    method public static java.util.List<java.lang.String> readAllLines(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+    method public static A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.Path setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.nio.file.Path setLastModifiedTime(java.nio.file.Path, java.nio.file.attribute.FileTime) throws java.io.IOException;
+    method public static java.nio.file.Path setOwner(java.nio.file.Path, java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+    method public static java.nio.file.Path setPosixFilePermissions(java.nio.file.Path, java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+    method public static long size(java.nio.file.Path) throws java.io.IOException;
+    method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.util.Set<java.nio.file.FileVisitOption>, int, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+    method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+    method public static java.nio.file.Path write(java.nio.file.Path, byte[], java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.file.Path write(java.nio.file.Path, java.lang.Iterable<? extends java.lang.CharSequence>, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+  }
+
+  public class InvalidPathException extends java.lang.IllegalArgumentException {
+    ctor public InvalidPathException(java.lang.String, java.lang.String, int);
+    ctor public InvalidPathException(java.lang.String, java.lang.String);
+    method public int getIndex();
+    method public java.lang.String getInput();
+    method public java.lang.String getReason();
+  }
+
+  public final class LinkOption extends java.lang.Enum implements java.nio.file.CopyOption java.nio.file.OpenOption {
+    method public static java.nio.file.LinkOption valueOf(java.lang.String);
+    method public static final java.nio.file.LinkOption[] values();
+    enum_constant public static final java.nio.file.LinkOption NOFOLLOW_LINKS;
+  }
+
+  public final class LinkPermission extends java.security.BasicPermission {
+    ctor public LinkPermission(java.lang.String);
+    ctor public LinkPermission(java.lang.String, java.lang.String);
+  }
+
+  public class NoSuchFileException extends java.nio.file.FileSystemException {
+    ctor public NoSuchFileException(java.lang.String);
+    ctor public NoSuchFileException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public class NotDirectoryException extends java.nio.file.FileSystemException {
+    ctor public NotDirectoryException(java.lang.String);
+  }
+
+  public class NotLinkException extends java.nio.file.FileSystemException {
+    ctor public NotLinkException(java.lang.String);
+    ctor public NotLinkException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public abstract interface OpenOption {
+  }
+
+  public abstract interface Path implements java.lang.Comparable java.lang.Iterable java.nio.file.Watchable {
+    method public abstract int compareTo(java.nio.file.Path);
+    method public abstract boolean endsWith(java.nio.file.Path);
+    method public abstract boolean endsWith(java.lang.String);
+    method public abstract boolean equals(java.lang.Object);
+    method public abstract java.nio.file.Path getFileName();
+    method public abstract java.nio.file.FileSystem getFileSystem();
+    method public abstract java.nio.file.Path getName(int);
+    method public abstract int getNameCount();
+    method public abstract java.nio.file.Path getParent();
+    method public abstract java.nio.file.Path getRoot();
+    method public abstract int hashCode();
+    method public abstract boolean isAbsolute();
+    method public abstract java.util.Iterator<java.nio.file.Path> iterator();
+    method public abstract java.nio.file.Path normalize();
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.Path relativize(java.nio.file.Path);
+    method public abstract java.nio.file.Path resolve(java.nio.file.Path);
+    method public abstract java.nio.file.Path resolve(java.lang.String);
+    method public abstract java.nio.file.Path resolveSibling(java.nio.file.Path);
+    method public abstract java.nio.file.Path resolveSibling(java.lang.String);
+    method public abstract boolean startsWith(java.nio.file.Path);
+    method public abstract boolean startsWith(java.lang.String);
+    method public abstract java.nio.file.Path subpath(int, int);
+    method public abstract java.nio.file.Path toAbsolutePath();
+    method public abstract java.io.File toFile();
+    method public abstract java.nio.file.Path toRealPath(java.nio.file.LinkOption...) throws java.io.IOException;
+    method public abstract java.lang.String toString();
+    method public abstract java.net.URI toUri();
+  }
+
+  public abstract interface PathMatcher {
+    method public abstract boolean matches(java.nio.file.Path);
+  }
+
+  public final class Paths {
+    method public static java.nio.file.Path get(java.lang.String, java.lang.String...);
+    method public static java.nio.file.Path get(java.net.URI);
+  }
+
+  public class ProviderMismatchException extends java.lang.IllegalArgumentException {
+    ctor public ProviderMismatchException();
+    ctor public ProviderMismatchException(java.lang.String);
+  }
+
+  public class ProviderNotFoundException extends java.lang.RuntimeException {
+    ctor public ProviderNotFoundException();
+    ctor public ProviderNotFoundException(java.lang.String);
+  }
+
+  public class ReadOnlyFileSystemException extends java.lang.UnsupportedOperationException {
+    ctor public ReadOnlyFileSystemException();
+  }
+
+  public abstract interface SecureDirectoryStream implements java.nio.file.DirectoryStream {
+    method public abstract void deleteDirectory(T) throws java.io.IOException;
+    method public abstract void deleteFile(T) throws java.io.IOException;
+    method public abstract V getFileAttributeView(java.lang.Class<V>);
+    method public abstract V getFileAttributeView(T, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public abstract void move(T, java.nio.file.SecureDirectoryStream<T>, T) throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel newByteChannel(T, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.SecureDirectoryStream<T> newDirectoryStream(T, java.nio.file.LinkOption...) throws java.io.IOException;
+  }
+
+  public final class StandardCopyOption extends java.lang.Enum implements java.nio.file.CopyOption {
+    method public static java.nio.file.StandardCopyOption valueOf(java.lang.String);
+    method public static final java.nio.file.StandardCopyOption[] values();
+    enum_constant public static final java.nio.file.StandardCopyOption ATOMIC_MOVE;
+    enum_constant public static final java.nio.file.StandardCopyOption COPY_ATTRIBUTES;
+    enum_constant public static final java.nio.file.StandardCopyOption REPLACE_EXISTING;
+  }
+
+  public final class StandardOpenOption extends java.lang.Enum implements java.nio.file.OpenOption {
+    method public static java.nio.file.StandardOpenOption valueOf(java.lang.String);
+    method public static final java.nio.file.StandardOpenOption[] values();
+    enum_constant public static final java.nio.file.StandardOpenOption APPEND;
+    enum_constant public static final java.nio.file.StandardOpenOption CREATE;
+    enum_constant public static final java.nio.file.StandardOpenOption CREATE_NEW;
+    enum_constant public static final java.nio.file.StandardOpenOption DELETE_ON_CLOSE;
+    enum_constant public static final java.nio.file.StandardOpenOption DSYNC;
+    enum_constant public static final java.nio.file.StandardOpenOption READ;
+    enum_constant public static final java.nio.file.StandardOpenOption SPARSE;
+    enum_constant public static final java.nio.file.StandardOpenOption SYNC;
+    enum_constant public static final java.nio.file.StandardOpenOption TRUNCATE_EXISTING;
+    enum_constant public static final java.nio.file.StandardOpenOption WRITE;
+  }
+
+  public final class StandardWatchEventKinds {
+    field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_CREATE;
+    field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_DELETE;
+    field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_MODIFY;
+    field public static final java.nio.file.WatchEvent.Kind<java.lang.Object> OVERFLOW;
+  }
+
+  public abstract interface WatchEvent {
+    method public abstract T context();
+    method public abstract int count();
+    method public abstract java.nio.file.WatchEvent.Kind<T> kind();
+  }
+
+  public static abstract interface WatchEvent.Kind {
+    method public abstract java.lang.String name();
+    method public abstract java.lang.Class<T> type();
+  }
+
+  public static abstract interface WatchEvent.Modifier {
+    method public abstract java.lang.String name();
+  }
+
+  public abstract interface WatchKey {
+    method public abstract void cancel();
+    method public abstract boolean isValid();
+    method public abstract java.util.List<java.nio.file.WatchEvent<?>> pollEvents();
+    method public abstract boolean reset();
+    method public abstract java.nio.file.Watchable watchable();
+  }
+
+  public abstract interface WatchService implements java.io.Closeable {
+    method public abstract void close() throws java.io.IOException;
+    method public abstract java.nio.file.WatchKey poll();
+    method public abstract java.nio.file.WatchKey poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public abstract java.nio.file.WatchKey take() throws java.lang.InterruptedException;
+  }
+
+  public abstract interface Watchable {
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+  }
+
+}
+
+package java.nio.file.attribute {
+
+  public final class AclEntry {
+    method public java.util.Set<java.nio.file.attribute.AclEntryFlag> flags();
+    method public static java.nio.file.attribute.AclEntry.Builder newBuilder();
+    method public static java.nio.file.attribute.AclEntry.Builder newBuilder(java.nio.file.attribute.AclEntry);
+    method public java.util.Set<java.nio.file.attribute.AclEntryPermission> permissions();
+    method public java.nio.file.attribute.UserPrincipal principal();
+    method public java.nio.file.attribute.AclEntryType type();
+  }
+
+  public static final class AclEntry.Builder {
+    method public java.nio.file.attribute.AclEntry build();
+    method public java.nio.file.attribute.AclEntry.Builder setFlags(java.util.Set<java.nio.file.attribute.AclEntryFlag>);
+    method public java.nio.file.attribute.AclEntry.Builder setFlags(java.nio.file.attribute.AclEntryFlag...);
+    method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.util.Set<java.nio.file.attribute.AclEntryPermission>);
+    method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.nio.file.attribute.AclEntryPermission...);
+    method public java.nio.file.attribute.AclEntry.Builder setPrincipal(java.nio.file.attribute.UserPrincipal);
+    method public java.nio.file.attribute.AclEntry.Builder setType(java.nio.file.attribute.AclEntryType);
+  }
+
+  public final class AclEntryFlag extends java.lang.Enum {
+    method public static java.nio.file.attribute.AclEntryFlag valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.AclEntryFlag[] values();
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag DIRECTORY_INHERIT;
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag FILE_INHERIT;
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag INHERIT_ONLY;
+    enum_constant public static final java.nio.file.attribute.AclEntryFlag NO_PROPAGATE_INHERIT;
+  }
+
+  public final class AclEntryPermission extends java.lang.Enum {
+    method public static java.nio.file.attribute.AclEntryPermission valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.AclEntryPermission[] values();
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission APPEND_DATA;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE_CHILD;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission EXECUTE;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ACL;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ATTRIBUTES;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_DATA;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_NAMED_ATTRS;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission SYNCHRONIZE;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ACL;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ATTRIBUTES;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_DATA;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_NAMED_ATTRS;
+    enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_OWNER;
+    field public static final java.nio.file.attribute.AclEntryPermission ADD_FILE;
+    field public static final java.nio.file.attribute.AclEntryPermission ADD_SUBDIRECTORY;
+    field public static final java.nio.file.attribute.AclEntryPermission LIST_DIRECTORY;
+  }
+
+  public final class AclEntryType extends java.lang.Enum {
+    method public static java.nio.file.attribute.AclEntryType valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.AclEntryType[] values();
+    enum_constant public static final java.nio.file.attribute.AclEntryType ALARM;
+    enum_constant public static final java.nio.file.attribute.AclEntryType ALLOW;
+    enum_constant public static final java.nio.file.attribute.AclEntryType AUDIT;
+    enum_constant public static final java.nio.file.attribute.AclEntryType DENY;
+  }
+
+  public abstract interface AclFileAttributeView implements java.nio.file.attribute.FileOwnerAttributeView {
+    method public abstract java.util.List<java.nio.file.attribute.AclEntry> getAcl() throws java.io.IOException;
+    method public abstract java.lang.String name();
+    method public abstract void setAcl(java.util.List<java.nio.file.attribute.AclEntry>) throws java.io.IOException;
+  }
+
+  public abstract interface AttributeView {
+    method public abstract java.lang.String name();
+  }
+
+  public abstract interface BasicFileAttributeView implements java.nio.file.attribute.FileAttributeView {
+    method public abstract java.lang.String name();
+    method public abstract java.nio.file.attribute.BasicFileAttributes readAttributes() throws java.io.IOException;
+    method public abstract void setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime) throws java.io.IOException;
+  }
+
+  public abstract interface BasicFileAttributes {
+    method public abstract java.nio.file.attribute.FileTime creationTime();
+    method public abstract java.lang.Object fileKey();
+    method public abstract boolean isDirectory();
+    method public abstract boolean isOther();
+    method public abstract boolean isRegularFile();
+    method public abstract boolean isSymbolicLink();
+    method public abstract java.nio.file.attribute.FileTime lastAccessTime();
+    method public abstract java.nio.file.attribute.FileTime lastModifiedTime();
+    method public abstract long size();
+  }
+
+  public abstract interface DosFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView {
+    method public abstract java.lang.String name();
+    method public abstract java.nio.file.attribute.DosFileAttributes readAttributes() throws java.io.IOException;
+    method public abstract void setArchive(boolean) throws java.io.IOException;
+    method public abstract void setHidden(boolean) throws java.io.IOException;
+    method public abstract void setReadOnly(boolean) throws java.io.IOException;
+    method public abstract void setSystem(boolean) throws java.io.IOException;
+  }
+
+  public abstract interface DosFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+    method public abstract boolean isArchive();
+    method public abstract boolean isHidden();
+    method public abstract boolean isReadOnly();
+    method public abstract boolean isSystem();
+  }
+
+  public abstract interface FileAttribute {
+    method public abstract java.lang.String name();
+    method public abstract T value();
+  }
+
+  public abstract interface FileAttributeView implements java.nio.file.attribute.AttributeView {
+  }
+
+  public abstract interface FileOwnerAttributeView implements java.nio.file.attribute.FileAttributeView {
+    method public abstract java.nio.file.attribute.UserPrincipal getOwner() throws java.io.IOException;
+    method public abstract java.lang.String name();
+    method public abstract void setOwner(java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+  }
+
+  public abstract interface FileStoreAttributeView implements java.nio.file.attribute.AttributeView {
+  }
+
+  public final class FileTime implements java.lang.Comparable {
+    method public int compareTo(java.nio.file.attribute.FileTime);
+    method public static java.nio.file.attribute.FileTime from(long, java.util.concurrent.TimeUnit);
+    method public static java.nio.file.attribute.FileTime fromMillis(long);
+    method public long to(java.util.concurrent.TimeUnit);
+    method public long toMillis();
+  }
+
+  public abstract interface GroupPrincipal implements java.nio.file.attribute.UserPrincipal {
+  }
+
+  public abstract interface PosixFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
+    method public abstract java.lang.String name();
+    method public abstract java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
+    method public abstract void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
+    method public abstract void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+  }
+
+  public abstract interface PosixFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+    method public abstract java.nio.file.attribute.GroupPrincipal group();
+    method public abstract java.nio.file.attribute.UserPrincipal owner();
+    method public abstract java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions();
+  }
+
+  public final class PosixFilePermission extends java.lang.Enum {
+    method public static java.nio.file.attribute.PosixFilePermission valueOf(java.lang.String);
+    method public static final java.nio.file.attribute.PosixFilePermission[] values();
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_EXECUTE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_READ;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_WRITE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_EXECUTE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_READ;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_WRITE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_EXECUTE;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_READ;
+    enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_WRITE;
+  }
+
+  public final class PosixFilePermissions {
+    method public static java.nio.file.attribute.FileAttribute<java.util.Set<java.nio.file.attribute.PosixFilePermission>> asFileAttribute(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+    method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> fromString(java.lang.String);
+    method public static java.lang.String toString(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+  }
+
+  public abstract interface UserPrincipal implements java.security.Principal {
+  }
+
+  public abstract class UserPrincipalLookupService {
+    ctor protected UserPrincipalLookupService();
+    method public abstract java.nio.file.attribute.GroupPrincipal lookupPrincipalByGroupName(java.lang.String) throws java.io.IOException;
+    method public abstract java.nio.file.attribute.UserPrincipal lookupPrincipalByName(java.lang.String) throws java.io.IOException;
+  }
+
+  public class UserPrincipalNotFoundException extends java.io.IOException {
+    ctor public UserPrincipalNotFoundException(java.lang.String);
+    method public java.lang.String getName();
+  }
+
+}
+
+package java.nio.file.spi {
+
+  public abstract class FileSystemProvider {
+    ctor protected FileSystemProvider();
+    method public abstract void checkAccess(java.nio.file.Path, java.nio.file.AccessMode...) throws java.io.IOException;
+    method public abstract void copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public abstract void createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public void createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public void createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract void delete(java.nio.file.Path) throws java.io.IOException;
+    method public boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+    method public abstract V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public abstract java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+    method public abstract java.nio.file.FileSystem getFileSystem(java.net.URI);
+    method public abstract java.nio.file.Path getPath(java.net.URI);
+    method public abstract java.lang.String getScheme();
+    method public static java.util.List<java.nio.file.spi.FileSystemProvider> installedProviders();
+    method public abstract boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+    method public abstract boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+    method public abstract void move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+    method public java.nio.channels.AsynchronousFileChannel newAsynchronousFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+    method public java.nio.channels.FileChannel newFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public abstract java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+    method public java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+    method public java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public abstract A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public abstract java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+    method public abstract void setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+  }
+
+  public abstract class FileTypeDetector {
+    ctor protected FileTypeDetector();
+    method public abstract java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+  }
+
+}
+
 package java.security {
 
   public final class AccessControlContext {
-    ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
     ctor public AccessControlContext(java.security.ProtectionDomain[]);
+    ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
     method public void checkPermission(java.security.Permission) throws java.security.AccessControlException;
     method public java.security.DomainCombiner getDomainCombiner();
   }
@@ -50171,6 +51146,12 @@
     method public static java.security.AccessControlContext getContext();
   }
 
+  public abstract interface AlgorithmConstraints {
+    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.AlgorithmParameters);
+    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.security.Key);
+    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.Key, java.security.AlgorithmParameters);
+  }
+
   public class AlgorithmParameterGenerator {
     ctor protected AlgorithmParameterGenerator(java.security.AlgorithmParameterGeneratorSpi, java.security.Provider, java.lang.String);
     method public final java.security.AlgorithmParameters generateParameters();
@@ -50220,9 +51201,11 @@
   }
 
   public final class AllPermission extends java.security.Permission {
-    ctor public AllPermission(java.lang.String, java.lang.String);
     ctor public AllPermission();
+    ctor public AllPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -50236,7 +51219,9 @@
   public abstract class BasicPermission extends java.security.Permission implements java.io.Serializable {
     ctor public BasicPermission(java.lang.String);
     ctor public BasicPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -50265,9 +51250,24 @@
     method public boolean implies(java.security.CodeSource);
   }
 
+  public final class CryptoPrimitive extends java.lang.Enum {
+    method public static java.security.CryptoPrimitive valueOf(java.lang.String);
+    method public static final java.security.CryptoPrimitive[] values();
+    enum_constant public static final java.security.CryptoPrimitive BLOCK_CIPHER;
+    enum_constant public static final java.security.CryptoPrimitive KEY_AGREEMENT;
+    enum_constant public static final java.security.CryptoPrimitive KEY_ENCAPSULATION;
+    enum_constant public static final java.security.CryptoPrimitive KEY_WRAP;
+    enum_constant public static final java.security.CryptoPrimitive MAC;
+    enum_constant public static final java.security.CryptoPrimitive MESSAGE_DIGEST;
+    enum_constant public static final java.security.CryptoPrimitive PUBLIC_KEY_ENCRYPTION;
+    enum_constant public static final java.security.CryptoPrimitive SECURE_RANDOM;
+    enum_constant public static final java.security.CryptoPrimitive SIGNATURE;
+    enum_constant public static final java.security.CryptoPrimitive STREAM_CIPHER;
+  }
+
   public class DigestException extends java.security.GeneralSecurityException {
-    ctor public DigestException(java.lang.String);
     ctor public DigestException();
+    ctor public DigestException(java.lang.String);
     ctor public DigestException(java.lang.String, java.lang.Throwable);
     ctor public DigestException(java.lang.Throwable);
   }
@@ -50293,8 +51293,8 @@
   }
 
   public class GeneralSecurityException extends java.lang.Exception {
-    ctor public GeneralSecurityException(java.lang.String);
     ctor public GeneralSecurityException();
+    ctor public GeneralSecurityException(java.lang.String);
     ctor public GeneralSecurityException(java.lang.String, java.lang.Throwable);
     ctor public GeneralSecurityException(java.lang.Throwable);
   }
@@ -50310,8 +51310,8 @@
 
   public abstract deprecated class Identity implements java.security.Principal java.io.Serializable {
     ctor protected Identity();
-    ctor public Identity(java.lang.String);
     ctor public Identity(java.lang.String, java.security.IdentityScope) throws java.security.KeyManagementException;
+    ctor public Identity(java.lang.String);
     method public void addCertificate(java.security.Certificate) throws java.security.KeyManagementException;
     method public java.security.Certificate[] certificates();
     method public final boolean equals(java.lang.Object);
@@ -50342,22 +51342,22 @@
   }
 
   public class InvalidAlgorithmParameterException extends java.security.GeneralSecurityException {
-    ctor public InvalidAlgorithmParameterException(java.lang.String);
     ctor public InvalidAlgorithmParameterException();
+    ctor public InvalidAlgorithmParameterException(java.lang.String);
     ctor public InvalidAlgorithmParameterException(java.lang.String, java.lang.Throwable);
     ctor public InvalidAlgorithmParameterException(java.lang.Throwable);
   }
 
   public class InvalidKeyException extends java.security.KeyException {
-    ctor public InvalidKeyException(java.lang.String);
     ctor public InvalidKeyException();
+    ctor public InvalidKeyException(java.lang.String);
     ctor public InvalidKeyException(java.lang.String, java.lang.Throwable);
     ctor public InvalidKeyException(java.lang.Throwable);
   }
 
   public class InvalidParameterException extends java.lang.IllegalArgumentException {
-    ctor public InvalidParameterException(java.lang.String);
     ctor public InvalidParameterException();
+    ctor public InvalidParameterException(java.lang.String);
   }
 
   public abstract interface Key implements java.io.Serializable {
@@ -50368,8 +51368,8 @@
   }
 
   public class KeyException extends java.security.GeneralSecurityException {
-    ctor public KeyException(java.lang.String);
     ctor public KeyException();
+    ctor public KeyException(java.lang.String);
     ctor public KeyException(java.lang.String, java.lang.Throwable);
     ctor public KeyException(java.lang.Throwable);
   }
@@ -50396,8 +51396,8 @@
   }
 
   public class KeyManagementException extends java.security.KeyException {
-    ctor public KeyManagementException(java.lang.String);
     ctor public KeyManagementException();
+    ctor public KeyManagementException(java.lang.String);
     ctor public KeyManagementException(java.lang.String, java.lang.Throwable);
     ctor public KeyManagementException(java.lang.Throwable);
   }
@@ -50418,8 +51418,8 @@
     method public static java.security.KeyPairGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public void initialize(int);
-    method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
     method public void initialize(int, java.security.SecureRandom);
+    method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
   }
 
   public abstract class KeyPairGeneratorSpi {
@@ -50522,8 +51522,8 @@
   }
 
   public class KeyStoreException extends java.security.GeneralSecurityException {
-    ctor public KeyStoreException(java.lang.String);
     ctor public KeyStoreException();
+    ctor public KeyStoreException(java.lang.String);
     ctor public KeyStoreException(java.lang.String, java.lang.Throwable);
     ctor public KeyStoreException(java.lang.Throwable);
   }
@@ -50585,22 +51585,24 @@
   }
 
   public class NoSuchAlgorithmException extends java.security.GeneralSecurityException {
-    ctor public NoSuchAlgorithmException(java.lang.String);
     ctor public NoSuchAlgorithmException();
+    ctor public NoSuchAlgorithmException(java.lang.String);
     ctor public NoSuchAlgorithmException(java.lang.String, java.lang.Throwable);
     ctor public NoSuchAlgorithmException(java.lang.Throwable);
   }
 
   public class NoSuchProviderException extends java.security.GeneralSecurityException {
-    ctor public NoSuchProviderException(java.lang.String);
     ctor public NoSuchProviderException();
+    ctor public NoSuchProviderException(java.lang.String);
   }
 
   public abstract class Permission implements java.security.Guard java.io.Serializable {
     ctor public Permission(java.lang.String);
     method public void checkGuard(java.lang.Object) throws java.lang.SecurityException;
+    method public abstract boolean equals(java.lang.Object);
     method public abstract java.lang.String getActions();
     method public final java.lang.String getName();
+    method public abstract int hashCode();
     method public abstract boolean implies(java.security.Permission);
     method public java.security.PermissionCollection newPermissionCollection();
   }
@@ -50708,8 +51710,8 @@
   }
 
   public class ProviderException extends java.lang.RuntimeException {
-    ctor public ProviderException(java.lang.String);
     ctor public ProviderException();
+    ctor public ProviderException(java.lang.String);
     ctor public ProviderException(java.lang.String, java.lang.Throwable);
     ctor public ProviderException(java.lang.Throwable);
   }
@@ -50719,8 +51721,8 @@
   }
 
   public class SecureClassLoader extends java.lang.ClassLoader {
-    ctor protected SecureClassLoader();
     ctor protected SecureClassLoader(java.lang.ClassLoader);
+    ctor protected SecureClassLoader();
     method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.security.CodeSource);
     method protected final java.lang.Class<?> defineClass(java.lang.String, java.nio.ByteBuffer, java.security.CodeSource);
     method protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
@@ -50753,10 +51755,10 @@
     method public static deprecated java.lang.String getAlgorithmProperty(java.lang.String, java.lang.String);
     method public static java.util.Set<java.lang.String> getAlgorithms(java.lang.String);
     method public static java.lang.String getProperty(java.lang.String);
-    method public static synchronized java.security.Provider getProvider(java.lang.String);
-    method public static synchronized java.security.Provider[] getProviders();
+    method public static java.security.Provider getProvider(java.lang.String);
+    method public static java.security.Provider[] getProviders();
     method public static java.security.Provider[] getProviders(java.lang.String);
-    method public static synchronized java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
+    method public static java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
     method public static synchronized int insertProviderAt(java.security.Provider, int);
     method public static synchronized void removeProvider(java.lang.String);
     method public static void setProperty(java.lang.String, java.lang.String);
@@ -50770,6 +51772,7 @@
   public abstract class Signature extends java.security.SignatureSpi {
     ctor protected Signature(java.lang.String);
     method public final java.lang.String getAlgorithm();
+    method public java.security.SignatureSpi getCurrentSpi();
     method public static java.security.Signature getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
     method public static java.security.Signature getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
     method public static java.security.Signature getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
@@ -50797,8 +51800,8 @@
   }
 
   public class SignatureException extends java.security.GeneralSecurityException {
-    ctor public SignatureException(java.lang.String);
     ctor public SignatureException();
+    ctor public SignatureException(java.lang.String);
     ctor public SignatureException(java.lang.String, java.lang.Throwable);
     ctor public SignatureException(java.lang.Throwable);
   }
@@ -50851,17 +51854,19 @@
   }
 
   public class UnrecoverableKeyException extends java.security.UnrecoverableEntryException {
-    ctor public UnrecoverableKeyException(java.lang.String);
     ctor public UnrecoverableKeyException();
+    ctor public UnrecoverableKeyException(java.lang.String);
   }
 
   public final class UnresolvedPermission extends java.security.Permission implements java.io.Serializable {
     ctor public UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
     method public java.lang.String getUnresolvedActions();
     method public java.security.cert.Certificate[] getUnresolvedCerts();
     method public java.lang.String getUnresolvedName();
     method public java.lang.String getUnresolvedType();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -50935,12 +51940,28 @@
   }
 
   public class CRLException extends java.security.GeneralSecurityException {
-    ctor public CRLException(java.lang.String);
     ctor public CRLException();
+    ctor public CRLException(java.lang.String);
     ctor public CRLException(java.lang.String, java.lang.Throwable);
     ctor public CRLException(java.lang.Throwable);
   }
 
+  public final class CRLReason extends java.lang.Enum {
+    method public static java.security.cert.CRLReason valueOf(java.lang.String);
+    method public static final java.security.cert.CRLReason[] values();
+    enum_constant public static final java.security.cert.CRLReason AA_COMPROMISE;
+    enum_constant public static final java.security.cert.CRLReason AFFILIATION_CHANGED;
+    enum_constant public static final java.security.cert.CRLReason CA_COMPROMISE;
+    enum_constant public static final java.security.cert.CRLReason CERTIFICATE_HOLD;
+    enum_constant public static final java.security.cert.CRLReason CESSATION_OF_OPERATION;
+    enum_constant public static final java.security.cert.CRLReason KEY_COMPROMISE;
+    enum_constant public static final java.security.cert.CRLReason PRIVILEGE_WITHDRAWN;
+    enum_constant public static final java.security.cert.CRLReason REMOVE_FROM_CRL;
+    enum_constant public static final java.security.cert.CRLReason SUPERSEDED;
+    enum_constant public static final java.security.cert.CRLReason UNSPECIFIED;
+    enum_constant public static final java.security.cert.CRLReason UNUSED;
+  }
+
   public abstract interface CRLSelector implements java.lang.Cloneable {
     method public abstract java.lang.Object clone();
     method public abstract boolean match(java.security.cert.CRL);
@@ -50973,10 +51994,10 @@
   }
 
   public class CertPathBuilderException extends java.security.GeneralSecurityException {
-    ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
-    ctor public CertPathBuilderException(java.lang.Throwable);
-    ctor public CertPathBuilderException(java.lang.String);
     ctor public CertPathBuilderException();
+    ctor public CertPathBuilderException(java.lang.String);
+    ctor public CertPathBuilderException(java.lang.Throwable);
+    ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract interface CertPathBuilderResult implements java.lang.Cloneable {
@@ -51005,13 +52026,30 @@
   }
 
   public class CertPathValidatorException extends java.security.GeneralSecurityException {
-    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
-    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
-    ctor public CertPathValidatorException(java.lang.Throwable);
-    ctor public CertPathValidatorException(java.lang.String);
     ctor public CertPathValidatorException();
+    ctor public CertPathValidatorException(java.lang.String);
+    ctor public CertPathValidatorException(java.lang.Throwable);
+    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
+    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
+    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int, java.security.cert.CertPathValidatorException.Reason);
     method public java.security.cert.CertPath getCertPath();
     method public int getIndex();
+    method public java.security.cert.CertPathValidatorException.Reason getReason();
+  }
+
+  public static final class CertPathValidatorException.BasicReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+    method public static java.security.cert.CertPathValidatorException.BasicReason valueOf(java.lang.String);
+    method public static final java.security.cert.CertPathValidatorException.BasicReason[] values();
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason ALGORITHM_CONSTRAINED;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason EXPIRED;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason INVALID_SIGNATURE;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason NOT_YET_VALID;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason REVOKED;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNDETERMINED_REVOCATION_STATUS;
+    enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNSPECIFIED;
+  }
+
+  public static abstract interface CertPathValidatorException.Reason implements java.io.Serializable {
   }
 
   public abstract interface CertPathValidatorResult implements java.lang.Cloneable {
@@ -51042,10 +52080,10 @@
   }
 
   public class CertStoreException extends java.security.GeneralSecurityException {
-    ctor public CertStoreException(java.lang.String, java.lang.Throwable);
-    ctor public CertStoreException(java.lang.Throwable);
-    ctor public CertStoreException(java.lang.String);
     ctor public CertStoreException();
+    ctor public CertStoreException(java.lang.String);
+    ctor public CertStoreException(java.lang.Throwable);
+    ctor public CertStoreException(java.lang.String, java.lang.Throwable);
   }
 
   public abstract interface CertStoreParameters implements java.lang.Cloneable {
@@ -51075,22 +52113,22 @@
   }
 
   public class CertificateEncodingException extends java.security.cert.CertificateException {
-    ctor public CertificateEncodingException(java.lang.String);
     ctor public CertificateEncodingException();
+    ctor public CertificateEncodingException(java.lang.String);
     ctor public CertificateEncodingException(java.lang.String, java.lang.Throwable);
     ctor public CertificateEncodingException(java.lang.Throwable);
   }
 
   public class CertificateException extends java.security.GeneralSecurityException {
-    ctor public CertificateException(java.lang.String);
     ctor public CertificateException();
+    ctor public CertificateException(java.lang.String);
     ctor public CertificateException(java.lang.String, java.lang.Throwable);
     ctor public CertificateException(java.lang.Throwable);
   }
 
   public class CertificateExpiredException extends java.security.cert.CertificateException {
-    ctor public CertificateExpiredException(java.lang.String);
     ctor public CertificateExpiredException();
+    ctor public CertificateExpiredException(java.lang.String);
   }
 
   public class CertificateFactory {
@@ -51123,28 +52161,44 @@
   }
 
   public class CertificateNotYetValidException extends java.security.cert.CertificateException {
-    ctor public CertificateNotYetValidException(java.lang.String);
     ctor public CertificateNotYetValidException();
+    ctor public CertificateNotYetValidException(java.lang.String);
   }
 
   public class CertificateParsingException extends java.security.cert.CertificateException {
-    ctor public CertificateParsingException(java.lang.String);
     ctor public CertificateParsingException();
+    ctor public CertificateParsingException(java.lang.String);
     ctor public CertificateParsingException(java.lang.String, java.lang.Throwable);
     ctor public CertificateParsingException(java.lang.Throwable);
   }
 
+  public class CertificateRevokedException extends java.security.cert.CertificateException {
+    ctor public CertificateRevokedException(java.util.Date, java.security.cert.CRLReason, javax.security.auth.x500.X500Principal, java.util.Map<java.lang.String, java.security.cert.Extension>);
+    method public javax.security.auth.x500.X500Principal getAuthorityName();
+    method public java.util.Map<java.lang.String, java.security.cert.Extension> getExtensions();
+    method public java.util.Date getInvalidityDate();
+    method public java.util.Date getRevocationDate();
+    method public java.security.cert.CRLReason getRevocationReason();
+  }
+
   public class CollectionCertStoreParameters implements java.security.cert.CertStoreParameters {
-    ctor public CollectionCertStoreParameters();
     ctor public CollectionCertStoreParameters(java.util.Collection<?>);
+    ctor public CollectionCertStoreParameters();
     method public java.lang.Object clone();
     method public java.util.Collection<?> getCollection();
   }
 
+  public abstract interface Extension {
+    method public abstract void encode(java.io.OutputStream) throws java.io.IOException;
+    method public abstract java.lang.String getId();
+    method public abstract byte[] getValue();
+    method public abstract boolean isCritical();
+  }
+
   public class LDAPCertStoreParameters implements java.security.cert.CertStoreParameters {
     ctor public LDAPCertStoreParameters(java.lang.String, int);
-    ctor public LDAPCertStoreParameters();
     ctor public LDAPCertStoreParameters(java.lang.String);
+    ctor public LDAPCertStoreParameters();
     method public java.lang.Object clone();
     method public int getPort();
     method public java.lang.String getServerName();
@@ -51211,6 +52265,19 @@
     method public void setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>) throws java.security.InvalidAlgorithmParameterException;
   }
 
+  public final class PKIXReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+    method public static java.security.cert.PKIXReason valueOf(java.lang.String);
+    method public static final java.security.cert.PKIXReason[] values();
+    enum_constant public static final java.security.cert.PKIXReason INVALID_KEY_USAGE;
+    enum_constant public static final java.security.cert.PKIXReason INVALID_NAME;
+    enum_constant public static final java.security.cert.PKIXReason INVALID_POLICY;
+    enum_constant public static final java.security.cert.PKIXReason NAME_CHAINING;
+    enum_constant public static final java.security.cert.PKIXReason NOT_CA_CERT;
+    enum_constant public static final java.security.cert.PKIXReason NO_TRUST_ANCHOR;
+    enum_constant public static final java.security.cert.PKIXReason PATH_TOO_LONG;
+    enum_constant public static final java.security.cert.PKIXReason UNRECOGNIZED_CRIT_EXT;
+  }
+
   public abstract interface PolicyNode {
     method public abstract java.util.Iterator<? extends java.security.cert.PolicyNode> getChildren();
     method public abstract int getDepth();
@@ -51230,8 +52297,8 @@
 
   public class TrustAnchor {
     ctor public TrustAnchor(java.security.cert.X509Certificate, byte[]);
-    ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
     ctor public TrustAnchor(javax.security.auth.x500.X500Principal, java.security.PublicKey, byte[]);
+    ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
     method public final javax.security.auth.x500.X500Principal getCA();
     method public final java.lang.String getCAName();
     method public final java.security.PublicKey getCAPublicKey();
@@ -51264,6 +52331,7 @@
     method public javax.security.auth.x500.X500Principal getCertificateIssuer();
     method public abstract byte[] getEncoded() throws java.security.cert.CRLException;
     method public abstract java.util.Date getRevocationDate();
+    method public java.security.cert.CRLReason getRevocationReason();
     method public abstract java.math.BigInteger getSerialNumber();
     method public abstract boolean hasExtensions();
     method public abstract java.lang.String toString();
@@ -51539,8 +52607,8 @@
   }
 
   public class EllipticCurve {
-    ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
     ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger);
+    ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
     method public java.math.BigInteger getA();
     method public java.math.BigInteger getB();
     method public java.security.spec.ECField getField();
@@ -51554,15 +52622,15 @@
   }
 
   public class InvalidKeySpecException extends java.security.GeneralSecurityException {
-    ctor public InvalidKeySpecException(java.lang.String);
     ctor public InvalidKeySpecException();
+    ctor public InvalidKeySpecException(java.lang.String);
     ctor public InvalidKeySpecException(java.lang.String, java.lang.Throwable);
     ctor public InvalidKeySpecException(java.lang.Throwable);
   }
 
   public class InvalidParameterSpecException extends java.security.GeneralSecurityException {
-    ctor public InvalidParameterSpecException(java.lang.String);
     ctor public InvalidParameterSpecException();
+    ctor public InvalidParameterSpecException(java.lang.String);
   }
 
   public abstract interface KeySpec {
@@ -51583,8 +52651,8 @@
   }
 
   public class PSSParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    ctor public PSSParameterSpec(int);
     ctor public PSSParameterSpec(java.lang.String, java.lang.String, java.security.spec.AlgorithmParameterSpec, int, int);
+    ctor public PSSParameterSpec(int);
     method public java.lang.String getDigestAlgorithm();
     method public java.lang.String getMGFAlgorithm();
     method public java.security.spec.AlgorithmParameterSpec getMGFParameters();
@@ -51653,28 +52721,28 @@
   public abstract interface Array {
     method public abstract void free() throws java.sql.SQLException;
     method public abstract java.lang.Object getArray() throws java.sql.SQLException;
+    method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.lang.Object getArray(long, int) throws java.sql.SQLException;
     method public abstract java.lang.Object getArray(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract int getBaseType() throws java.sql.SQLException;
     method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
     method public abstract java.sql.ResultSet getResultSet() throws java.sql.SQLException;
+    method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.sql.ResultSet getResultSet(long, int) throws java.sql.SQLException;
     method public abstract java.sql.ResultSet getResultSet(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
   }
 
-  public class BatchUpdateException extends java.sql.SQLException implements java.io.Serializable {
+  public class BatchUpdateException extends java.sql.SQLException {
+    ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
+    ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
+    ctor public BatchUpdateException(java.lang.String, int[]);
+    ctor public BatchUpdateException(int[]);
     ctor public BatchUpdateException();
     ctor public BatchUpdateException(java.lang.Throwable);
     ctor public BatchUpdateException(int[], java.lang.Throwable);
     ctor public BatchUpdateException(java.lang.String, int[], java.lang.Throwable);
     ctor public BatchUpdateException(java.lang.String, java.lang.String, int[], java.lang.Throwable);
     ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[], java.lang.Throwable);
-    ctor public BatchUpdateException(int[]);
-    ctor public BatchUpdateException(java.lang.String, int[]);
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
     method public int[] getUpdateCounts();
   }
 
@@ -51684,8 +52752,8 @@
     method public abstract java.io.InputStream getBinaryStream(long, long) throws java.sql.SQLException;
     method public abstract byte[] getBytes(long, int) throws java.sql.SQLException;
     method public abstract long length() throws java.sql.SQLException;
-    method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
     method public abstract long position(byte[], long) throws java.sql.SQLException;
+    method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
     method public abstract java.io.OutputStream setBinaryStream(long) throws java.sql.SQLException;
     method public abstract int setBytes(long, byte[]) throws java.sql.SQLException;
     method public abstract int setBytes(long, byte[], int, int) throws java.sql.SQLException;
@@ -51695,8 +52763,8 @@
   public abstract interface CallableStatement implements java.sql.PreparedStatement {
     method public abstract java.sql.Array getArray(int) throws java.sql.SQLException;
     method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
     method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
+    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
     method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
     method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
     method public abstract java.sql.Blob getBlob(java.lang.String) throws java.sql.SQLException;
@@ -51791,9 +52859,9 @@
     method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
     method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setRowId(java.lang.String, java.sql.RowId) throws java.sql.SQLException;
     method public abstract void setSQLXML(java.lang.String, java.sql.SQLXML) throws java.sql.SQLException;
     method public abstract void setShort(java.lang.String, short) throws java.sql.SQLException;
@@ -51822,8 +52890,8 @@
     method public abstract java.io.Reader getCharacterStream(long, long) throws java.sql.SQLException;
     method public abstract java.lang.String getSubString(long, int) throws java.sql.SQLException;
     method public abstract long length() throws java.sql.SQLException;
-    method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
     method public abstract long position(java.lang.String, long) throws java.sql.SQLException;
+    method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
     method public abstract java.io.OutputStream setAsciiStream(long) throws java.sql.SQLException;
     method public abstract java.io.Writer setCharacterStream(long) throws java.sql.SQLException;
     method public abstract int setString(long, java.lang.String) throws java.sql.SQLException;
@@ -51861,10 +52929,10 @@
     method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int) throws java.sql.SQLException;
     method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int, int) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) throws java.sql.SQLException;
+    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
+    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
     method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String[]) throws java.sql.SQLException;
     method public abstract void releaseSavepoint(java.sql.Savepoint) throws java.sql.SQLException;
     method public abstract void rollback() throws java.sql.SQLException;
@@ -51886,7 +52954,7 @@
     field public static final int TRANSACTION_SERIALIZABLE = 8; // 0x8
   }
 
-  public class DataTruncation extends java.sql.SQLWarning implements java.io.Serializable {
+  public class DataTruncation extends java.sql.SQLWarning {
     ctor public DataTruncation(int, boolean, boolean, int, int);
     ctor public DataTruncation(int, boolean, boolean, int, int, java.lang.Throwable);
     method public int getDataSize();
@@ -52148,17 +53216,17 @@
   }
 
   public class DriverManager {
-    method public static void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
-    method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
+    method public static synchronized void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
     method public static java.sql.Connection getConnection(java.lang.String, java.util.Properties) throws java.sql.SQLException;
     method public static java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
+    method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
     method public static java.sql.Driver getDriver(java.lang.String) throws java.sql.SQLException;
     method public static java.util.Enumeration<java.sql.Driver> getDrivers();
     method public static deprecated java.io.PrintStream getLogStream();
     method public static java.io.PrintWriter getLogWriter();
     method public static int getLoginTimeout();
     method public static void println(java.lang.String);
-    method public static void registerDriver(java.sql.Driver) throws java.sql.SQLException;
+    method public static synchronized void registerDriver(java.sql.Driver) throws java.sql.SQLException;
     method public static deprecated void setLogStream(java.io.PrintStream);
     method public static void setLogWriter(java.io.PrintWriter);
     method public static void setLoginTimeout(int);
@@ -52237,8 +53305,8 @@
     method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(int, int) throws java.sql.SQLException;
     method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
     method public abstract void setRef(int, java.sql.Ref) throws java.sql.SQLException;
     method public abstract void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
@@ -52255,8 +53323,8 @@
 
   public abstract interface Ref {
     method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject() throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
+    method public abstract java.lang.Object getObject() throws java.sql.SQLException;
     method public abstract void setObject(java.lang.Object) throws java.sql.SQLException;
   }
 
@@ -52274,10 +53342,10 @@
     method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
     method public abstract java.io.InputStream getAsciiStream(int) throws java.sql.SQLException;
     method public abstract java.io.InputStream getAsciiStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
     method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
     method public abstract deprecated java.math.BigDecimal getBigDecimal(java.lang.String, int) throws java.sql.SQLException;
+    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
+    method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
     method public abstract java.io.InputStream getBinaryStream(int) throws java.sql.SQLException;
     method public abstract java.io.InputStream getBinaryStream(java.lang.String) throws java.sql.SQLException;
     method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
@@ -52295,8 +53363,8 @@
     method public abstract int getConcurrency() throws java.sql.SQLException;
     method public abstract java.lang.String getCursorName() throws java.sql.SQLException;
     method public abstract java.sql.Date getDate(int) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Date getDate(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Date getDate(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
     method public abstract double getDouble(int) throws java.sql.SQLException;
     method public abstract double getDouble(java.lang.String) throws java.sql.SQLException;
@@ -52317,8 +53385,8 @@
     method public abstract java.lang.String getNString(int) throws java.sql.SQLException;
     method public abstract java.lang.String getNString(java.lang.String) throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(int) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.lang.Object getObject(java.lang.String, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
     method public abstract java.sql.Ref getRef(int) throws java.sql.SQLException;
     method public abstract java.sql.Ref getRef(java.lang.String) throws java.sql.SQLException;
@@ -52333,12 +53401,12 @@
     method public abstract java.lang.String getString(int) throws java.sql.SQLException;
     method public abstract java.lang.String getString(java.lang.String) throws java.sql.SQLException;
     method public abstract java.sql.Time getTime(int) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Time getTime(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Time getTime(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Timestamp getTimestamp(java.lang.String) throws java.sql.SQLException;
+    method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
     method public abstract java.sql.Timestamp getTimestamp(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
     method public abstract int getType() throws java.sql.SQLException;
     method public abstract java.net.URL getURL(int) throws java.sql.SQLException;
@@ -52428,10 +53496,10 @@
     method public abstract void updateNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
     method public abstract void updateNull(int) throws java.sql.SQLException;
     method public abstract void updateNull(java.lang.String) throws java.sql.SQLException;
-    method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void updateObject(int, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+    method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void updateObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
     method public abstract void updateRef(int, java.sql.Ref) throws java.sql.SQLException;
     method public abstract void updateRef(java.lang.String, java.sql.Ref) throws java.sql.SQLException;
     method public abstract void updateRow() throws java.sql.SQLException;
@@ -52510,10 +53578,10 @@
     ctor public SQLClientInfoException(java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
     ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
     ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
     ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
     ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
+    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
+    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
     method public java.util.Map<java.lang.String, java.sql.ClientInfoStatus> getFailedProperties();
   }
 
@@ -52534,11 +53602,11 @@
     ctor public SQLDataException(java.lang.String, java.lang.String, int, java.lang.Throwable);
   }
 
-  public class SQLException extends java.lang.Exception implements java.lang.Iterable java.io.Serializable {
-    ctor public SQLException();
-    ctor public SQLException(java.lang.String);
-    ctor public SQLException(java.lang.String, java.lang.String);
+  public class SQLException extends java.lang.Exception implements java.lang.Iterable {
     ctor public SQLException(java.lang.String, java.lang.String, int);
+    ctor public SQLException(java.lang.String, java.lang.String);
+    ctor public SQLException(java.lang.String);
+    ctor public SQLException();
     ctor public SQLException(java.lang.Throwable);
     ctor public SQLException(java.lang.String, java.lang.Throwable);
     ctor public SQLException(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -52665,7 +53733,7 @@
     method public abstract void writeURL(java.net.URL) throws java.sql.SQLException;
   }
 
-  public final class SQLPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
+  public final class SQLPermission extends java.security.BasicPermission {
     ctor public SQLPermission(java.lang.String);
     ctor public SQLPermission(java.lang.String, java.lang.String);
   }
@@ -52736,11 +53804,11 @@
     ctor public SQLTransientException(java.lang.String, java.lang.String, int, java.lang.Throwable);
   }
 
-  public class SQLWarning extends java.sql.SQLException implements java.io.Serializable {
-    ctor public SQLWarning();
-    ctor public SQLWarning(java.lang.String);
-    ctor public SQLWarning(java.lang.String, java.lang.String);
+  public class SQLWarning extends java.sql.SQLException {
     ctor public SQLWarning(java.lang.String, java.lang.String, int);
+    ctor public SQLWarning(java.lang.String, java.lang.String);
+    ctor public SQLWarning(java.lang.String);
+    ctor public SQLWarning();
     ctor public SQLWarning(java.lang.Throwable);
     ctor public SQLWarning(java.lang.String, java.lang.Throwable);
     ctor public SQLWarning(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -52829,15 +53897,15 @@
   }
 
   public class Timestamp extends java.util.Date {
-    ctor public deprecated Timestamp(int, int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
+    ctor public deprecated Timestamp(int, int, int, int, int, int, int);
     ctor public Timestamp(long);
     method public boolean after(java.sql.Timestamp);
     method public boolean before(java.sql.Timestamp);
     method public int compareTo(java.sql.Timestamp);
     method public boolean equals(java.sql.Timestamp);
     method public int getNanos();
-    method public void setNanos(int) throws java.lang.IllegalArgumentException;
-    method public static java.sql.Timestamp valueOf(java.lang.String) throws java.lang.IllegalArgumentException;
+    method public void setNanos(int);
+    method public static java.sql.Timestamp valueOf(java.lang.String);
   }
 
   public class Types {
@@ -52917,11 +53985,11 @@
   }
 
   public class AttributedString {
+    ctor public AttributedString(java.lang.String);
+    ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
     ctor public AttributedString(java.text.AttributedCharacterIterator);
     ctor public AttributedString(java.text.AttributedCharacterIterator, int, int);
     ctor public AttributedString(java.text.AttributedCharacterIterator, int, int, java.text.AttributedCharacterIterator.Attribute[]);
-    ctor public AttributedString(java.lang.String);
-    ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
     method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object);
     method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object, int, int);
     method public void addAttributes(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>, int, int);
@@ -52931,9 +53999,9 @@
   }
 
   public final class Bidi {
+    ctor public Bidi(java.lang.String, int);
     ctor public Bidi(java.text.AttributedCharacterIterator);
     ctor public Bidi(char[], int, byte[], int, int, int);
-    ctor public Bidi(java.lang.String, int);
     method public boolean baseIsLeftToRight();
     method public java.text.Bidi createLineBidi(int, int);
     method public int getBaseLevel();
@@ -52960,7 +54028,7 @@
     method public abstract int current();
     method public abstract int first();
     method public abstract int following(int);
-    method public static java.util.Locale[] getAvailableLocales();
+    method public static synchronized java.util.Locale[] getAvailableLocales();
     method public static java.text.BreakIterator getCharacterInstance();
     method public static java.text.BreakIterator getCharacterInstance(java.util.Locale);
     method public static java.text.BreakIterator getLineInstance();
@@ -52972,8 +54040,8 @@
     method public static java.text.BreakIterator getWordInstance(java.util.Locale);
     method public boolean isBoundary(int);
     method public abstract int last();
-    method public abstract int next();
     method public abstract int next(int);
+    method public abstract int next();
     method public int preceding(int);
     method public abstract int previous();
     method public void setText(java.lang.String);
@@ -52996,11 +54064,11 @@
   }
 
   public class ChoiceFormat extends java.text.NumberFormat {
-    ctor public ChoiceFormat(double[], java.lang.String[]);
     ctor public ChoiceFormat(java.lang.String);
+    ctor public ChoiceFormat(double[], java.lang.String[]);
     method public void applyPattern(java.lang.String);
-    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.Object[] getFormats();
     method public double[] getLimits();
     method public static final double nextDouble(double);
@@ -53020,8 +54088,8 @@
     method public void reset();
     method public static final short secondaryOrder(int);
     method public void setOffset(int);
-    method public void setText(java.text.CharacterIterator);
     method public void setText(java.lang.String);
+    method public void setText(java.text.CharacterIterator);
     method public static final short tertiaryOrder(int);
     field public static final int NULLORDER = -1; // 0xffffffff
   }
@@ -53036,18 +54104,18 @@
   public abstract class Collator implements java.lang.Cloneable java.util.Comparator {
     ctor protected Collator();
     method public java.lang.Object clone();
-    method public int compare(java.lang.Object, java.lang.Object);
     method public abstract int compare(java.lang.String, java.lang.String);
+    method public int compare(java.lang.Object, java.lang.Object);
     method public boolean equals(java.lang.String, java.lang.String);
-    method public static java.util.Locale[] getAvailableLocales();
+    method public static synchronized java.util.Locale[] getAvailableLocales();
     method public abstract java.text.CollationKey getCollationKey(java.lang.String);
-    method public int getDecomposition();
-    method public static java.text.Collator getInstance();
-    method public static java.text.Collator getInstance(java.util.Locale);
-    method public int getStrength();
+    method public synchronized int getDecomposition();
+    method public static synchronized java.text.Collator getInstance();
+    method public static synchronized java.text.Collator getInstance(java.util.Locale);
+    method public synchronized int getStrength();
     method public abstract int hashCode();
-    method public void setDecomposition(int);
-    method public void setStrength(int);
+    method public synchronized void setDecomposition(int);
+    method public synchronized void setStrength(int);
     field public static final int CANONICAL_DECOMPOSITION = 1; // 0x1
     field public static final int FULL_DECOMPOSITION = 2; // 0x2
     field public static final int IDENTICAL = 3; // 0x3
@@ -53060,8 +54128,8 @@
   public abstract class DateFormat extends java.text.Format {
     ctor protected DateFormat();
     method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(java.util.Date);
     method public abstract java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(java.util.Date);
     method public static java.util.Locale[] getAvailableLocales();
     method public java.util.Calendar getCalendar();
     method public static final java.text.DateFormat getDateInstance();
@@ -53166,9 +54234,9 @@
     ctor public DecimalFormat(java.lang.String, java.text.DecimalFormatSymbols);
     method public void applyLocalizedPattern(java.lang.String);
     method public void applyPattern(java.lang.String);
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.text.DecimalFormatSymbols getDecimalFormatSymbols();
     method public int getGroupingSize();
     method public int getMultiplier();
@@ -53204,15 +54272,17 @@
     method public java.lang.String getExponentSeparator();
     method public char getGroupingSeparator();
     method public java.lang.String getInfinity();
-    method public static java.text.DecimalFormatSymbols getInstance();
-    method public static java.text.DecimalFormatSymbols getInstance(java.util.Locale);
+    method public static final java.text.DecimalFormatSymbols getInstance();
+    method public static final java.text.DecimalFormatSymbols getInstance(java.util.Locale);
     method public java.lang.String getInternationalCurrencySymbol();
     method public char getMinusSign();
+    method public java.lang.String getMinusSignString();
     method public char getMonetaryDecimalSeparator();
     method public java.lang.String getNaN();
     method public char getPatternSeparator();
     method public char getPerMill();
     method public char getPercent();
+    method public java.lang.String getPercentString();
     method public char getZeroDigit();
     method public void setCurrency(java.util.Currency);
     method public void setCurrencySymbol(java.lang.String);
@@ -53249,8 +54319,8 @@
     method public final java.lang.String format(java.lang.Object);
     method public abstract java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object);
-    method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
     method public abstract java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
   }
 
   public static class Format.Field extends java.text.AttributedCharacterIterator.Attribute {
@@ -53258,17 +54328,17 @@
   }
 
   public class MessageFormat extends java.text.Format {
-    ctor public MessageFormat(java.lang.String, java.util.Locale);
     ctor public MessageFormat(java.lang.String);
+    ctor public MessageFormat(java.lang.String, java.util.Locale);
     method public void applyPattern(java.lang.String);
     method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public static java.lang.String format(java.lang.String, java.lang.Object...);
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.text.Format[] getFormats();
     method public java.text.Format[] getFormatsByArgumentIndex();
     method public java.util.Locale getLocale();
-    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
     method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
     method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
     method public void setFormat(int, java.text.Format);
     method public void setFormatByArgumentIndex(int, java.text.Format);
@@ -53299,11 +54369,11 @@
 
   public abstract class NumberFormat extends java.text.Format {
     ctor protected NumberFormat();
-    method public final java.lang.String format(double);
-    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(long);
-    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
     method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(double);
+    method public final java.lang.String format(long);
+    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
     method public static java.util.Locale[] getAvailableLocales();
     method public java.util.Currency getCurrency();
     method public static final java.text.NumberFormat getCurrencyInstance();
@@ -53323,8 +54393,8 @@
     method public java.math.RoundingMode getRoundingMode();
     method public boolean isGroupingUsed();
     method public boolean isParseIntegerOnly();
-    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
     method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
     method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
     method public void setCurrency(java.util.Currency);
     method public void setGroupingUsed(boolean);
@@ -53368,10 +54438,10 @@
 
   public class RuleBasedCollator extends java.text.Collator {
     ctor public RuleBasedCollator(java.lang.String) throws java.text.ParseException;
-    method public int compare(java.lang.String, java.lang.String);
-    method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+    method public synchronized int compare(java.lang.String, java.lang.String);
     method public java.text.CollationElementIterator getCollationElementIterator(java.lang.String);
-    method public java.text.CollationKey getCollationKey(java.lang.String);
+    method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+    method public synchronized java.text.CollationKey getCollationKey(java.lang.String);
     method public java.lang.String getRules();
     method public int hashCode();
   }
@@ -53379,8 +54449,8 @@
   public class SimpleDateFormat extends java.text.DateFormat {
     ctor public SimpleDateFormat();
     ctor public SimpleDateFormat(java.lang.String);
-    ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
     ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
+    ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
     method public void applyLocalizedPattern(java.lang.String);
     method public void applyPattern(java.lang.String);
     method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
@@ -53527,7 +54597,7 @@
     method public int size();
   }
 
-  public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.RandomAccess java.io.Serializable {
+  public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
     ctor public ArrayList(int);
     ctor public ArrayList();
     ctor public ArrayList(java.util.Collection<? extends E>);
@@ -53540,109 +54610,109 @@
 
   public class Arrays {
     method public static java.util.List<T> asList(T...);
-    method public static int binarySearch(byte[], byte);
-    method public static int binarySearch(byte[], int, int, byte);
+    method public static int binarySearch(long[], long);
+    method public static int binarySearch(long[], int, int, long);
+    method public static int binarySearch(int[], int);
+    method public static int binarySearch(int[], int, int, int);
+    method public static int binarySearch(short[], short);
+    method public static int binarySearch(short[], int, int, short);
     method public static int binarySearch(char[], char);
     method public static int binarySearch(char[], int, int, char);
+    method public static int binarySearch(byte[], byte);
+    method public static int binarySearch(byte[], int, int, byte);
     method public static int binarySearch(double[], double);
     method public static int binarySearch(double[], int, int, double);
     method public static int binarySearch(float[], float);
     method public static int binarySearch(float[], int, int, float);
-    method public static int binarySearch(int[], int);
-    method public static int binarySearch(int[], int, int, int);
-    method public static int binarySearch(long[], long);
-    method public static int binarySearch(long[], int, int, long);
     method public static int binarySearch(java.lang.Object[], java.lang.Object);
     method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object);
     method public static int binarySearch(T[], T, java.util.Comparator<? super T>);
     method public static int binarySearch(T[], int, int, T, java.util.Comparator<? super T>);
-    method public static int binarySearch(short[], short);
-    method public static int binarySearch(short[], int, int, short);
-    method public static boolean[] copyOf(boolean[], int);
-    method public static byte[] copyOf(byte[], int);
-    method public static char[] copyOf(char[], int);
-    method public static double[] copyOf(double[], int);
-    method public static float[] copyOf(float[], int);
-    method public static int[] copyOf(int[], int);
-    method public static long[] copyOf(long[], int);
-    method public static short[] copyOf(short[], int);
     method public static T[] copyOf(T[], int);
     method public static T[] copyOf(U[], int, java.lang.Class<? extends T[]>);
-    method public static boolean[] copyOfRange(boolean[], int, int);
-    method public static byte[] copyOfRange(byte[], int, int);
-    method public static char[] copyOfRange(char[], int, int);
-    method public static double[] copyOfRange(double[], int, int);
-    method public static float[] copyOfRange(float[], int, int);
-    method public static int[] copyOfRange(int[], int, int);
-    method public static long[] copyOfRange(long[], int, int);
-    method public static short[] copyOfRange(short[], int, int);
+    method public static byte[] copyOf(byte[], int);
+    method public static short[] copyOf(short[], int);
+    method public static int[] copyOf(int[], int);
+    method public static long[] copyOf(long[], int);
+    method public static char[] copyOf(char[], int);
+    method public static float[] copyOf(float[], int);
+    method public static double[] copyOf(double[], int);
+    method public static boolean[] copyOf(boolean[], int);
     method public static T[] copyOfRange(T[], int, int);
     method public static T[] copyOfRange(U[], int, int, java.lang.Class<? extends T[]>);
+    method public static byte[] copyOfRange(byte[], int, int);
+    method public static short[] copyOfRange(short[], int, int);
+    method public static int[] copyOfRange(int[], int, int);
+    method public static long[] copyOfRange(long[], int, int);
+    method public static char[] copyOfRange(char[], int, int);
+    method public static float[] copyOfRange(float[], int, int);
+    method public static double[] copyOfRange(double[], int, int);
+    method public static boolean[] copyOfRange(boolean[], int, int);
     method public static boolean deepEquals(java.lang.Object[], java.lang.Object[]);
     method public static int deepHashCode(java.lang.Object[]);
     method public static java.lang.String deepToString(java.lang.Object[]);
-    method public static boolean equals(byte[], byte[]);
+    method public static boolean equals(long[], long[]);
+    method public static boolean equals(int[], int[]);
     method public static boolean equals(short[], short[]);
     method public static boolean equals(char[], char[]);
-    method public static boolean equals(int[], int[]);
-    method public static boolean equals(long[], long[]);
-    method public static boolean equals(float[], float[]);
-    method public static boolean equals(double[], double[]);
+    method public static boolean equals(byte[], byte[]);
     method public static boolean equals(boolean[], boolean[]);
+    method public static boolean equals(double[], double[]);
+    method public static boolean equals(float[], float[]);
     method public static boolean equals(java.lang.Object[], java.lang.Object[]);
-    method public static void fill(byte[], byte);
-    method public static void fill(byte[], int, int, byte);
+    method public static void fill(long[], long);
+    method public static void fill(long[], int, int, long);
+    method public static void fill(int[], int);
+    method public static void fill(int[], int, int, int);
     method public static void fill(short[], short);
     method public static void fill(short[], int, int, short);
     method public static void fill(char[], char);
     method public static void fill(char[], int, int, char);
-    method public static void fill(int[], int);
-    method public static void fill(int[], int, int, int);
-    method public static void fill(long[], long);
-    method public static void fill(long[], int, int, long);
-    method public static void fill(float[], float);
-    method public static void fill(float[], int, int, float);
-    method public static void fill(double[], double);
-    method public static void fill(double[], int, int, double);
+    method public static void fill(byte[], byte);
+    method public static void fill(byte[], int, int, byte);
     method public static void fill(boolean[], boolean);
     method public static void fill(boolean[], int, int, boolean);
+    method public static void fill(double[], double);
+    method public static void fill(double[], int, int, double);
+    method public static void fill(float[], float);
+    method public static void fill(float[], int, int, float);
     method public static void fill(java.lang.Object[], java.lang.Object);
     method public static void fill(java.lang.Object[], int, int, java.lang.Object);
-    method public static int hashCode(boolean[]);
+    method public static int hashCode(long[]);
     method public static int hashCode(int[]);
     method public static int hashCode(short[]);
     method public static int hashCode(char[]);
     method public static int hashCode(byte[]);
-    method public static int hashCode(long[]);
+    method public static int hashCode(boolean[]);
     method public static int hashCode(float[]);
     method public static int hashCode(double[]);
     method public static int hashCode(java.lang.Object[]);
-    method public static void sort(byte[]);
-    method public static void sort(byte[], int, int);
-    method public static void sort(char[]);
-    method public static void sort(char[], int, int);
-    method public static void sort(double[]);
-    method public static void sort(double[], int, int);
-    method public static void sort(float[]);
-    method public static void sort(float[], int, int);
     method public static void sort(int[]);
     method public static void sort(int[], int, int);
     method public static void sort(long[]);
     method public static void sort(long[], int, int);
     method public static void sort(short[]);
     method public static void sort(short[], int, int);
+    method public static void sort(char[]);
+    method public static void sort(char[], int, int);
+    method public static void sort(byte[]);
+    method public static void sort(byte[], int, int);
+    method public static void sort(float[]);
+    method public static void sort(float[], int, int);
+    method public static void sort(double[]);
+    method public static void sort(double[], int, int);
     method public static void sort(java.lang.Object[]);
     method public static void sort(java.lang.Object[], int, int);
-    method public static void sort(T[], int, int, java.util.Comparator<? super T>);
     method public static void sort(T[], java.util.Comparator<? super T>);
-    method public static java.lang.String toString(boolean[]);
-    method public static java.lang.String toString(byte[]);
-    method public static java.lang.String toString(char[]);
-    method public static java.lang.String toString(double[]);
-    method public static java.lang.String toString(float[]);
-    method public static java.lang.String toString(int[]);
+    method public static void sort(T[], int, int, java.util.Comparator<? super T>);
     method public static java.lang.String toString(long[]);
+    method public static java.lang.String toString(int[]);
     method public static java.lang.String toString(short[]);
+    method public static java.lang.String toString(char[]);
+    method public static java.lang.String toString(byte[]);
+    method public static java.lang.String toString(boolean[]);
+    method public static java.lang.String toString(float[]);
+    method public static java.lang.String toString(double[]);
     method public static java.lang.String toString(java.lang.Object[]);
   }
 
@@ -53653,8 +54723,8 @@
     method public void andNot(java.util.BitSet);
     method public int cardinality();
     method public void clear(int);
-    method public void clear();
     method public void clear(int, int);
+    method public void clear();
     method public java.lang.Object clone();
     method public void flip(int);
     method public void flip(int, int);
@@ -53670,8 +54740,8 @@
     method public int previousSetBit(int);
     method public void set(int);
     method public void set(int, boolean);
-    method public void set(int, int, boolean);
     method public void set(int, int);
+    method public void set(int, int, boolean);
     method public int size();
     method public byte[] toByteArray();
     method public long[] toLongArray();
@@ -53703,10 +54773,10 @@
     method public java.util.Map<java.lang.String, java.lang.Integer> getDisplayNames(int, int, java.util.Locale);
     method public int getFirstDayOfWeek();
     method public abstract int getGreatestMinimum(int);
-    method public static synchronized java.util.Calendar getInstance();
-    method public static synchronized java.util.Calendar getInstance(java.util.Locale);
-    method public static synchronized java.util.Calendar getInstance(java.util.TimeZone);
-    method public static synchronized java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
+    method public static java.util.Calendar getInstance();
+    method public static java.util.Calendar getInstance(java.util.TimeZone);
+    method public static java.util.Calendar getInstance(java.util.Locale);
+    method public static java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
     method public abstract int getLeastMaximum(int);
     method public abstract int getMaximum(int);
     method public int getMinimalDaysInFirstWeek();
@@ -53714,11 +54784,14 @@
     method public final java.util.Date getTime();
     method public long getTimeInMillis();
     method public java.util.TimeZone getTimeZone();
+    method public int getWeekYear();
+    method public int getWeeksInWeekYear();
     method protected final int internalGet(int);
     method public boolean isLenient();
     method public final boolean isSet(int);
-    method public void roll(int, int);
+    method public boolean isWeekDateSupported();
     method public abstract void roll(int, boolean);
+    method public void roll(int, int);
     method public void set(int, int);
     method public final void set(int, int, int);
     method public final void set(int, int, int, int, int);
@@ -53729,6 +54802,7 @@
     method public final void setTime(java.util.Date);
     method public void setTimeInMillis(long);
     method public void setTimeZone(java.util.TimeZone);
+    method public void setWeekDate(int, int, int);
     field public static final int ALL_STYLES = 0; // 0x0
     field public static final int AM = 0; // 0x0
     field public static final int AM_PM = 9; // 0x9
@@ -53845,15 +54919,15 @@
     method public static java.util.Collection<T> synchronizedCollection(java.util.Collection<T>);
     method public static java.util.List<T> synchronizedList(java.util.List<T>);
     method public static java.util.Map<K, V> synchronizedMap(java.util.Map<K, V>);
-    method public static java.util.Set<E> synchronizedSet(java.util.Set<E>);
+    method public static java.util.Set<T> synchronizedSet(java.util.Set<T>);
     method public static java.util.SortedMap<K, V> synchronizedSortedMap(java.util.SortedMap<K, V>);
-    method public static java.util.SortedSet<E> synchronizedSortedSet(java.util.SortedSet<E>);
-    method public static java.util.Collection<E> unmodifiableCollection(java.util.Collection<? extends E>);
-    method public static java.util.List<E> unmodifiableList(java.util.List<? extends E>);
+    method public static java.util.SortedSet<T> synchronizedSortedSet(java.util.SortedSet<T>);
+    method public static java.util.Collection<T> unmodifiableCollection(java.util.Collection<? extends T>);
+    method public static java.util.List<T> unmodifiableList(java.util.List<? extends T>);
     method public static java.util.Map<K, V> unmodifiableMap(java.util.Map<? extends K, ? extends V>);
-    method public static java.util.Set<E> unmodifiableSet(java.util.Set<? extends E>);
+    method public static java.util.Set<T> unmodifiableSet(java.util.Set<? extends T>);
     method public static java.util.SortedMap<K, V> unmodifiableSortedMap(java.util.SortedMap<K, ? extends V>);
-    method public static java.util.SortedSet<E> unmodifiableSortedSet(java.util.SortedSet<E>);
+    method public static java.util.SortedSet<T> unmodifiableSortedSet(java.util.SortedSet<T>);
     field public static final java.util.List EMPTY_LIST;
     field public static final java.util.Map EMPTY_MAP;
     field public static final java.util.Set EMPTY_SET;
@@ -53867,8 +54941,8 @@
   public class ConcurrentModificationException extends java.lang.RuntimeException {
     ctor public ConcurrentModificationException();
     ctor public ConcurrentModificationException(java.lang.String);
-    ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
     ctor public ConcurrentModificationException(java.lang.Throwable);
+    ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
   }
 
   public final class Currency implements java.io.Serializable {
@@ -53879,16 +54953,17 @@
     method public java.lang.String getDisplayName(java.util.Locale);
     method public static java.util.Currency getInstance(java.lang.String);
     method public static java.util.Currency getInstance(java.util.Locale);
+    method public int getNumericCode();
     method public java.lang.String getSymbol();
     method public java.lang.String getSymbol(java.util.Locale);
   }
 
   public class Date implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
     ctor public Date();
+    ctor public Date(long);
     ctor public deprecated Date(int, int, int);
     ctor public deprecated Date(int, int, int, int, int);
     ctor public deprecated Date(int, int, int, int, int, int);
-    ctor public Date(long);
     ctor public deprecated Date(java.lang.String);
     method public static deprecated long UTC(int, int, int, int, int, int);
     method public boolean after(java.util.Date);
@@ -53966,7 +55041,7 @@
     ctor public EmptyStackException();
   }
 
-  public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
+  public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
     ctor public EnumMap(java.lang.Class<K>);
     ctor public EnumMap(java.util.EnumMap<K, ? extends V>);
     ctor public EnumMap(java.util.Map<K, ? extends V>);
@@ -53999,8 +55074,8 @@
   }
 
   public abstract class EventListenerProxy implements java.util.EventListener {
-    ctor public EventListenerProxy(java.util.EventListener);
-    method public java.util.EventListener getListener();
+    ctor public EventListenerProxy(T);
+    method public T getListener();
   }
 
   public class EventObject implements java.io.Serializable {
@@ -54009,14 +55084,14 @@
     field protected transient java.lang.Object source;
   }
 
-  public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException {
     ctor public FormatFlagsConversionMismatchException(java.lang.String, char);
     method public char getConversion();
     method public java.lang.String getFlags();
   }
 
   public abstract interface Formattable {
-    method public abstract void formatTo(java.util.Formatter, int, int, int) throws java.util.IllegalFormatException;
+    method public abstract void formatTo(java.util.Formatter, int, int, int);
   }
 
   public class FormattableFlags {
@@ -54036,10 +55111,10 @@
     ctor public Formatter(java.io.File) throws java.io.FileNotFoundException;
     ctor public Formatter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     ctor public Formatter(java.io.File, java.lang.String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public Formatter(java.io.PrintStream);
     ctor public Formatter(java.io.OutputStream);
     ctor public Formatter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
     ctor public Formatter(java.io.OutputStream, java.lang.String, java.util.Locale) throws java.io.UnsupportedEncodingException;
-    ctor public Formatter(java.io.PrintStream);
     method public void close();
     method public void flush();
     method public java.util.Formatter format(java.lang.String, java.lang.Object...);
@@ -54056,18 +55131,18 @@
     enum_constant public static final java.util.Formatter.BigDecimalLayoutForm SCIENTIFIC;
   }
 
-  public class FormatterClosedException extends java.lang.IllegalStateException implements java.io.Serializable {
+  public class FormatterClosedException extends java.lang.IllegalStateException {
     ctor public FormatterClosedException();
   }
 
   public class GregorianCalendar extends java.util.Calendar {
     ctor public GregorianCalendar();
+    ctor public GregorianCalendar(java.util.TimeZone);
+    ctor public GregorianCalendar(java.util.Locale);
+    ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
     ctor public GregorianCalendar(int, int, int);
     ctor public GregorianCalendar(int, int, int, int, int);
     ctor public GregorianCalendar(int, int, int, int, int, int);
-    ctor public GregorianCalendar(java.util.Locale);
-    ctor public GregorianCalendar(java.util.TimeZone);
-    ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
     method public void add(int, int);
     method protected void computeFields();
     method protected void computeTime();
@@ -54077,16 +55152,17 @@
     method public int getMaximum(int);
     method public int getMinimum(int);
     method public boolean isLeapYear(int);
+    method public final boolean isWeekDateSupported();
     method public void roll(int, boolean);
     method public void setGregorianChange(java.util.Date);
     field public static final int AD = 1; // 0x1
     field public static final int BC = 0; // 0x0
   }
 
-  public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
-    ctor public HashMap();
-    ctor public HashMap(int);
+  public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
     ctor public HashMap(int, float);
+    ctor public HashMap(int);
+    ctor public HashMap();
     ctor public HashMap(java.util.Map<? extends K, ? extends V>);
     method public java.lang.Object clone();
     method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
@@ -54094,36 +55170,36 @@
 
   public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
     ctor public HashSet();
-    ctor public HashSet(int);
-    ctor public HashSet(int, float);
     ctor public HashSet(java.util.Collection<? extends E>);
+    ctor public HashSet(int, float);
+    ctor public HashSet(int);
     method public java.lang.Object clone();
     method public java.util.Iterator<E> iterator();
     method public int size();
   }
 
   public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable {
-    ctor public Hashtable();
-    ctor public Hashtable(int);
     ctor public Hashtable(int, float);
+    ctor public Hashtable(int);
+    ctor public Hashtable();
     ctor public Hashtable(java.util.Map<? extends K, ? extends V>);
     method public synchronized void clear();
     method public synchronized java.lang.Object clone();
-    method public boolean contains(java.lang.Object);
+    method public synchronized boolean contains(java.lang.Object);
     method public synchronized boolean containsKey(java.lang.Object);
-    method public synchronized boolean containsValue(java.lang.Object);
+    method public boolean containsValue(java.lang.Object);
     method public synchronized java.util.Enumeration<V> elements();
-    method public synchronized java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
     method public synchronized V get(java.lang.Object);
     method public synchronized boolean isEmpty();
-    method public synchronized java.util.Set<K> keySet();
+    method public java.util.Set<K> keySet();
     method public synchronized java.util.Enumeration<K> keys();
     method public synchronized V put(K, V);
     method public synchronized void putAll(java.util.Map<? extends K, ? extends V>);
     method protected void rehash();
     method public synchronized V remove(java.lang.Object);
     method public synchronized int size();
-    method public synchronized java.util.Collection<V> values();
+    method public java.util.Collection<V> values();
   }
 
   public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
@@ -54134,21 +55210,21 @@
     method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
   }
 
-  public class IllegalFormatCodePointException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class IllegalFormatCodePointException extends java.util.IllegalFormatException {
     ctor public IllegalFormatCodePointException(int);
     method public int getCodePoint();
   }
 
-  public class IllegalFormatConversionException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class IllegalFormatConversionException extends java.util.IllegalFormatException {
     ctor public IllegalFormatConversionException(char, java.lang.Class<?>);
     method public java.lang.Class<?> getArgumentClass();
     method public char getConversion();
   }
 
-  public class IllegalFormatException extends java.lang.IllegalArgumentException implements java.io.Serializable {
+  public class IllegalFormatException extends java.lang.IllegalArgumentException {
   }
 
-  public class IllegalFormatFlagsException extends java.util.IllegalFormatException implements java.io.Serializable {
+  public class IllegalFormatFlagsException extends java.util.IllegalFormatException {
     ctor public IllegalFormatFlagsException(java.lang.String);
     method public java.lang.String getFlags();
   }
@@ -54170,14 +55246,14 @@
     method public int getErrorIndex();
   }
 
-  public class InputMismatchException extends java.util.NoSuchElementException implements java.io.Serializable {
+  public class InputMismatchException extends java.util.NoSuchElementException {
     ctor public InputMismatchException();
     ctor public InputMismatchException(java.lang.String);
   }
 
   public class InvalidPropertiesFormatException extends java.io.IOException {
-    ctor public InvalidPropertiesFormatException(java.lang.String);
     ctor public InvalidPropertiesFormatException(java.lang.Throwable);
+    ctor public InvalidPropertiesFormatException(java.lang.String);
   }
 
   public abstract interface Iterator {
@@ -54186,23 +55262,23 @@
     method public abstract void remove();
   }
 
-  public class LinkedHashMap extends java.util.HashMap {
-    ctor public LinkedHashMap();
-    ctor public LinkedHashMap(int);
+  public class LinkedHashMap extends java.util.HashMap implements java.util.Map {
     ctor public LinkedHashMap(int, float);
-    ctor public LinkedHashMap(int, float, boolean);
+    ctor public LinkedHashMap(int);
+    ctor public LinkedHashMap();
     ctor public LinkedHashMap(java.util.Map<? extends K, ? extends V>);
+    ctor public LinkedHashMap(int, float, boolean);
     method protected boolean removeEldestEntry(java.util.Map.Entry<K, V>);
   }
 
   public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
-    ctor public LinkedHashSet();
-    ctor public LinkedHashSet(int);
     ctor public LinkedHashSet(int, float);
+    ctor public LinkedHashSet(int);
+    ctor public LinkedHashSet();
     ctor public LinkedHashSet(java.util.Collection<? extends E>);
   }
 
-  public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.util.Queue java.io.Serializable {
+  public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable {
     ctor public LinkedList();
     ctor public LinkedList(java.util.Collection<? extends E>);
     method public void addFirst(E);
@@ -54233,10 +55309,10 @@
   }
 
   public abstract interface List implements java.util.Collection {
-    method public abstract void add(int, E);
     method public abstract boolean add(E);
-    method public abstract boolean addAll(int, java.util.Collection<? extends E>);
+    method public abstract void add(int, E);
     method public abstract boolean addAll(java.util.Collection<? extends E>);
+    method public abstract boolean addAll(int, java.util.Collection<? extends E>);
     method public abstract void clear();
     method public abstract boolean contains(java.lang.Object);
     method public abstract boolean containsAll(java.util.Collection<?>);
@@ -54249,8 +55325,8 @@
     method public abstract int lastIndexOf(java.lang.Object);
     method public abstract java.util.ListIterator<E> listIterator();
     method public abstract java.util.ListIterator<E> listIterator(int);
-    method public abstract E remove(int);
     method public abstract boolean remove(java.lang.Object);
+    method public abstract E remove(int);
     method public abstract boolean removeAll(java.util.Collection<?>);
     method public abstract boolean retainAll(java.util.Collection<?>);
     method public abstract E set(int, E);
@@ -54280,14 +55356,15 @@
   }
 
   public final class Locale implements java.lang.Cloneable java.io.Serializable {
-    ctor public Locale(java.lang.String);
-    ctor public Locale(java.lang.String, java.lang.String);
     ctor public Locale(java.lang.String, java.lang.String, java.lang.String);
+    ctor public Locale(java.lang.String, java.lang.String);
+    ctor public Locale(java.lang.String);
     method public java.lang.Object clone();
     method public static java.util.Locale forLanguageTag(java.lang.String);
     method public static java.util.Locale[] getAvailableLocales();
     method public java.lang.String getCountry();
     method public static java.util.Locale getDefault();
+    method public static java.util.Locale getDefault(java.util.Locale.Category);
     method public final java.lang.String getDisplayCountry();
     method public java.lang.String getDisplayCountry(java.util.Locale);
     method public final java.lang.String getDisplayLanguage();
@@ -54300,8 +55377,8 @@
     method public java.lang.String getDisplayVariant(java.util.Locale);
     method public java.lang.String getExtension(char);
     method public java.util.Set<java.lang.Character> getExtensionKeys();
-    method public java.lang.String getISO3Country();
-    method public java.lang.String getISO3Language();
+    method public java.lang.String getISO3Country() throws java.util.MissingResourceException;
+    method public java.lang.String getISO3Language() throws java.util.MissingResourceException;
     method public static java.lang.String[] getISOCountries();
     method public static java.lang.String[] getISOLanguages();
     method public java.lang.String getLanguage();
@@ -54311,6 +55388,7 @@
     method public java.lang.String getUnicodeLocaleType(java.lang.String);
     method public java.lang.String getVariant();
     method public static synchronized void setDefault(java.util.Locale);
+    method public static synchronized void setDefault(java.util.Locale.Category, java.util.Locale);
     method public java.lang.String toLanguageTag();
     method public final java.lang.String toString();
     field public static final java.util.Locale CANADA;
@@ -54356,6 +55434,13 @@
     method public java.util.Locale.Builder setVariant(java.lang.String);
   }
 
+  public static final class Locale.Category extends java.lang.Enum {
+    method public static java.util.Locale.Category valueOf(java.lang.String);
+    method public static final java.util.Locale.Category[] values();
+    enum_constant public static final java.util.Locale.Category DISPLAY;
+    enum_constant public static final java.util.Locale.Category FORMAT;
+  }
+
   public abstract interface Map {
     method public abstract void clear();
     method public abstract boolean containsKey(java.lang.Object);
@@ -54458,15 +55543,15 @@
 
   public class Observable {
     ctor public Observable();
-    method public void addObserver(java.util.Observer);
-    method protected void clearChanged();
-    method public int countObservers();
+    method public synchronized void addObserver(java.util.Observer);
+    method protected synchronized void clearChanged();
+    method public synchronized int countObservers();
     method public synchronized void deleteObserver(java.util.Observer);
     method public synchronized void deleteObservers();
-    method public boolean hasChanged();
+    method public synchronized boolean hasChanged();
     method public void notifyObservers();
     method public void notifyObservers(java.lang.Object);
-    method protected void setChanged();
+    method protected synchronized void setChanged();
   }
 
   public abstract interface Observer {
@@ -54495,16 +55580,16 @@
     method public java.lang.String getProperty(java.lang.String, java.lang.String);
     method public void list(java.io.PrintStream);
     method public void list(java.io.PrintWriter);
-    method public synchronized void load(java.io.InputStream) throws java.io.IOException;
     method public synchronized void load(java.io.Reader) throws java.io.IOException;
+    method public synchronized void load(java.io.InputStream) throws java.io.IOException;
     method public synchronized void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
     method public java.util.Enumeration<?> propertyNames();
     method public deprecated void save(java.io.OutputStream, java.lang.String);
-    method public java.lang.Object setProperty(java.lang.String, java.lang.String);
-    method public synchronized void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
-    method public synchronized void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+    method public synchronized java.lang.Object setProperty(java.lang.String, java.lang.String);
+    method public void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+    method public void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
     method public void storeToXML(java.io.OutputStream, java.lang.String) throws java.io.IOException;
-    method public synchronized void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
+    method public void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
     method public java.util.Set<java.lang.String> stringPropertyNames();
     field protected java.util.Properties defaults;
   }
@@ -54532,7 +55617,7 @@
   public class Random implements java.io.Serializable {
     ctor public Random();
     ctor public Random(long);
-    method protected synchronized int next(int);
+    method protected int next(int);
     method public boolean nextBoolean();
     method public void nextBytes(byte[]);
     method public double nextDouble();
@@ -54549,14 +55634,14 @@
 
   public abstract class ResourceBundle {
     ctor public ResourceBundle();
-    method public static void clearCache();
-    method public static void clearCache(java.lang.ClassLoader);
+    method public static final void clearCache();
+    method public static final void clearCache(java.lang.ClassLoader);
     method public boolean containsKey(java.lang.String);
-    method public static java.util.ResourceBundle getBundle(java.lang.String) throws java.util.MissingResourceException;
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) throws java.util.MissingResourceException;
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
+    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader);
     method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle.Control);
     method public abstract java.util.Enumeration<java.lang.String> getKeys();
     method public java.util.Locale getLocale();
@@ -54573,10 +55658,10 @@
   public static class ResourceBundle.Control {
     ctor protected ResourceBundle.Control();
     method public java.util.List<java.util.Locale> getCandidateLocales(java.lang.String, java.util.Locale);
-    method public static java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
+    method public static final java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
     method public java.util.Locale getFallbackLocale(java.lang.String, java.util.Locale);
     method public java.util.List<java.lang.String> getFormats(java.lang.String);
-    method public static java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
+    method public static final java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
     method public long getTimeToLive(java.lang.String, java.util.Locale);
     method public boolean needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long);
     method public java.util.ResourceBundle newBundle(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, boolean) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException;
@@ -54590,23 +55675,25 @@
   }
 
   public final class Scanner implements java.io.Closeable java.util.Iterator {
-    ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
-    ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
-    ctor public Scanner(java.lang.String);
+    ctor public Scanner(java.lang.Readable);
     ctor public Scanner(java.io.InputStream);
     ctor public Scanner(java.io.InputStream, java.lang.String);
-    ctor public Scanner(java.lang.Readable);
+    ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
+    ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
+    ctor public Scanner(java.nio.file.Path) throws java.io.IOException;
+    ctor public Scanner(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+    ctor public Scanner(java.lang.String);
     ctor public Scanner(java.nio.channels.ReadableByteChannel);
     ctor public Scanner(java.nio.channels.ReadableByteChannel, java.lang.String);
     method public void close();
     method public java.util.regex.Pattern delimiter();
-    method public java.lang.String findInLine(java.util.regex.Pattern);
     method public java.lang.String findInLine(java.lang.String);
-    method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
+    method public java.lang.String findInLine(java.util.regex.Pattern);
     method public java.lang.String findWithinHorizon(java.lang.String, int);
+    method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
     method public boolean hasNext();
-    method public boolean hasNext(java.util.regex.Pattern);
     method public boolean hasNext(java.lang.String);
+    method public boolean hasNext(java.util.regex.Pattern);
     method public boolean hasNextBigDecimal();
     method public boolean hasNextBigInteger();
     method public boolean hasNextBigInteger(int);
@@ -54626,8 +55713,8 @@
     method public java.util.Locale locale();
     method public java.util.regex.MatchResult match();
     method public java.lang.String next();
-    method public java.lang.String next(java.util.regex.Pattern);
     method public java.lang.String next(java.lang.String);
+    method public java.lang.String next(java.util.regex.Pattern);
     method public java.math.BigDecimal nextBigDecimal();
     method public java.math.BigInteger nextBigInteger();
     method public java.math.BigInteger nextBigInteger(int);
@@ -54694,12 +55781,12 @@
     method public int getRawOffset();
     method public boolean inDaylightTime(java.util.Date);
     method public void setDSTSavings(int);
-    method public void setEndRule(int, int, int);
     method public void setEndRule(int, int, int, int);
+    method public void setEndRule(int, int, int);
     method public void setEndRule(int, int, int, int, boolean);
     method public void setRawOffset(int);
-    method public void setStartRule(int, int, int);
     method public void setStartRule(int, int, int, int);
+    method public void setStartRule(int, int, int);
     method public void setStartRule(int, int, int, int, boolean);
     method public void setStartYear(int);
     method public boolean useDaylightTime();
@@ -54710,11 +55797,14 @@
 
   public abstract interface SortedMap implements java.util.Map {
     method public abstract java.util.Comparator<? super K> comparator();
+    method public abstract java.util.Set<java.util.Map.Entry<K, V>> entrySet();
     method public abstract K firstKey();
     method public abstract java.util.SortedMap<K, V> headMap(K);
+    method public abstract java.util.Set<K> keySet();
     method public abstract K lastKey();
     method public abstract java.util.SortedMap<K, V> subMap(K, K);
     method public abstract java.util.SortedMap<K, V> tailMap(K);
+    method public abstract java.util.Collection<V> values();
   }
 
   public abstract interface SortedSet implements java.util.Set {
@@ -54736,9 +55826,9 @@
   }
 
   public class StringTokenizer implements java.util.Enumeration {
-    ctor public StringTokenizer(java.lang.String);
-    ctor public StringTokenizer(java.lang.String, java.lang.String);
     ctor public StringTokenizer(java.lang.String, java.lang.String, boolean);
+    ctor public StringTokenizer(java.lang.String, java.lang.String);
+    ctor public StringTokenizer(java.lang.String);
     method public int countTokens();
     method public boolean hasMoreElements();
     method public boolean hasMoreTokens();
@@ -54750,21 +55840,22 @@
   public abstract class TimeZone implements java.lang.Cloneable java.io.Serializable {
     ctor public TimeZone();
     method public java.lang.Object clone();
-    method public static synchronized java.lang.String[] getAvailableIDs();
     method public static synchronized java.lang.String[] getAvailableIDs(int);
+    method public static synchronized java.lang.String[] getAvailableIDs();
     method public int getDSTSavings();
-    method public static synchronized java.util.TimeZone getDefault();
+    method public static java.util.TimeZone getDefault();
     method public final java.lang.String getDisplayName();
     method public final java.lang.String getDisplayName(java.util.Locale);
     method public final java.lang.String getDisplayName(boolean, int);
     method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
     method public java.lang.String getID();
-    method public int getOffset(long);
     method public abstract int getOffset(int, int, int, int, int, int);
+    method public int getOffset(long);
     method public abstract int getRawOffset();
     method public static synchronized java.util.TimeZone getTimeZone(java.lang.String);
     method public boolean hasSameRules(java.util.TimeZone);
     method public abstract boolean inDaylightTime(java.util.Date);
+    method public boolean observesDaylightTime();
     method public static synchronized void setDefault(java.util.TimeZone);
     method public void setID(java.lang.String);
     method public abstract void setRawOffset(int);
@@ -54774,14 +55865,14 @@
   }
 
   public class Timer {
-    ctor public Timer(java.lang.String, boolean);
-    ctor public Timer(java.lang.String);
-    ctor public Timer(boolean);
     ctor public Timer();
+    ctor public Timer(boolean);
+    ctor public Timer(java.lang.String);
+    ctor public Timer(java.lang.String, boolean);
     method public void cancel();
     method public int purge();
-    method public void schedule(java.util.TimerTask, java.util.Date);
     method public void schedule(java.util.TimerTask, long);
+    method public void schedule(java.util.TimerTask, java.util.Date);
     method public void schedule(java.util.TimerTask, long, long);
     method public void schedule(java.util.TimerTask, java.util.Date, long);
     method public void scheduleAtFixedRate(java.util.TimerTask, long, long);
@@ -54800,10 +55891,10 @@
     ctor public TooManyListenersException(java.lang.String);
   }
 
-  public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable java.util.SortedMap {
+  public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable {
     ctor public TreeMap();
-    ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
     ctor public TreeMap(java.util.Comparator<? super K>);
+    ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
     ctor public TreeMap(java.util.SortedMap<K, ? extends V>);
     method public java.util.Map.Entry<K, V> ceilingEntry(K);
     method public K ceilingKey(K);
@@ -54835,8 +55926,8 @@
 
   public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable {
     ctor public TreeSet();
-    ctor public TreeSet(java.util.Collection<? extends E>);
     ctor public TreeSet(java.util.Comparator<? super E>);
+    ctor public TreeSet(java.util.Collection<? extends E>);
     ctor public TreeSet(java.util.SortedSet<E>);
     method public E ceiling(E);
     method public java.lang.Object clone();
@@ -54886,9 +55977,9 @@
   }
 
   public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
-    ctor public Vector();
-    ctor public Vector(int);
     ctor public Vector(int, int);
+    ctor public Vector(int);
+    ctor public Vector();
     ctor public Vector(java.util.Collection<? extends E>);
     method public synchronized void addElement(E);
     method public synchronized int capacity();
@@ -54898,7 +55989,7 @@
     method public java.util.Enumeration<E> elements();
     method public synchronized void ensureCapacity(int);
     method public synchronized E firstElement();
-    method public E get(int);
+    method public synchronized E get(int);
     method public synchronized int indexOf(java.lang.Object, int);
     method public synchronized void insertElementAt(E, int);
     method public synchronized E lastElement();
@@ -54916,9 +56007,9 @@
   }
 
   public class WeakHashMap extends java.util.AbstractMap implements java.util.Map {
-    ctor public WeakHashMap();
-    ctor public WeakHashMap(int);
     ctor public WeakHashMap(int, float);
+    ctor public WeakHashMap(int);
+    ctor public WeakHashMap();
     ctor public WeakHashMap(java.util.Map<? extends K, ? extends V>);
     method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
   }
@@ -56156,16 +57247,16 @@
 
   public class Attributes implements java.lang.Cloneable java.util.Map {
     ctor public Attributes();
-    ctor public Attributes(java.util.jar.Attributes);
     ctor public Attributes(int);
+    ctor public Attributes(java.util.jar.Attributes);
     method public void clear();
     method public java.lang.Object clone();
     method public boolean containsKey(java.lang.Object);
     method public boolean containsValue(java.lang.Object);
     method public java.util.Set<java.util.Map.Entry<java.lang.Object, java.lang.Object>> entrySet();
     method public java.lang.Object get(java.lang.Object);
-    method public java.lang.String getValue(java.util.jar.Attributes.Name);
     method public java.lang.String getValue(java.lang.String);
+    method public java.lang.String getValue(java.util.jar.Attributes.Name);
     method public boolean isEmpty();
     method public java.util.Set<java.lang.Object> keySet();
     method public java.lang.Object put(java.lang.Object, java.lang.Object);
@@ -56213,19 +57304,20 @@
   }
 
   public class JarFile extends java.util.zip.ZipFile {
+    ctor public JarFile(java.lang.String) throws java.io.IOException;
+    ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
     ctor public JarFile(java.io.File) throws java.io.IOException;
     ctor public JarFile(java.io.File, boolean) throws java.io.IOException;
     ctor public JarFile(java.io.File, boolean, int) throws java.io.IOException;
-    ctor public JarFile(java.lang.String) throws java.io.IOException;
-    ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
     method public java.util.jar.JarEntry getJarEntry(java.lang.String);
     method public java.util.jar.Manifest getManifest() throws java.io.IOException;
+    method public boolean hasClassPathAttribute() throws java.io.IOException;
     field public static final java.lang.String MANIFEST_NAME = "META-INF/MANIFEST.MF";
   }
 
   public class JarInputStream extends java.util.zip.ZipInputStream {
-    ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
     ctor public JarInputStream(java.io.InputStream) throws java.io.IOException;
+    ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
     method public java.util.jar.Manifest getManifest();
     method public java.util.jar.JarEntry getNextJarEntry() throws java.io.IOException;
   }
@@ -56249,7 +57341,7 @@
   }
 
   public abstract class Pack200 {
-    method public static java.util.jar.Pack200.Packer newPacker();
+    method public static synchronized java.util.jar.Pack200.Packer newPacker();
     method public static java.util.jar.Pack200.Unpacker newUnpacker();
   }
 
@@ -56303,7 +57395,7 @@
 
   public class ErrorManager {
     ctor public ErrorManager();
-    method public void error(java.lang.String, java.lang.Exception, int);
+    method public synchronized void error(java.lang.String, java.lang.Exception, int);
     field public static final int CLOSE_FAILURE = 3; // 0x3
     field public static final int FLUSH_FAILURE = 2; // 0x2
     field public static final int FORMAT_FAILURE = 5; // 0x5
@@ -56313,11 +57405,11 @@
   }
 
   public class FileHandler extends java.util.logging.StreamHandler {
-    ctor public FileHandler() throws java.io.IOException;
-    ctor public FileHandler(java.lang.String) throws java.io.IOException;
-    ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException;
-    ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException;
-    ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException;
+    ctor public FileHandler() throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException, java.lang.SecurityException;
   }
 
   public abstract interface Filter {
@@ -56327,28 +57419,28 @@
   public abstract class Formatter {
     ctor protected Formatter();
     method public abstract java.lang.String format(java.util.logging.LogRecord);
-    method public java.lang.String formatMessage(java.util.logging.LogRecord);
+    method public synchronized java.lang.String formatMessage(java.util.logging.LogRecord);
     method public java.lang.String getHead(java.util.logging.Handler);
     method public java.lang.String getTail(java.util.logging.Handler);
   }
 
   public abstract class Handler {
     ctor protected Handler();
-    method public abstract void close();
+    method public abstract void close() throws java.lang.SecurityException;
     method public abstract void flush();
     method public java.lang.String getEncoding();
     method public java.util.logging.ErrorManager getErrorManager();
     method public java.util.logging.Filter getFilter();
     method public java.util.logging.Formatter getFormatter();
-    method public java.util.logging.Level getLevel();
+    method public synchronized java.util.logging.Level getLevel();
     method public boolean isLoggable(java.util.logging.LogRecord);
     method public abstract void publish(java.util.logging.LogRecord);
     method protected void reportError(java.lang.String, java.lang.Exception, int);
-    method public void setEncoding(java.lang.String) throws java.io.UnsupportedEncodingException;
+    method public void setEncoding(java.lang.String) throws java.lang.SecurityException, java.io.UnsupportedEncodingException;
     method public void setErrorManager(java.util.logging.ErrorManager);
-    method public void setFilter(java.util.logging.Filter);
-    method public void setFormatter(java.util.logging.Formatter);
-    method public void setLevel(java.util.logging.Level);
+    method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+    method public void setFormatter(java.util.logging.Formatter) throws java.lang.SecurityException;
+    method public synchronized void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
   }
 
   public class Level implements java.io.Serializable {
@@ -56358,7 +57450,7 @@
     method public java.lang.String getName();
     method public java.lang.String getResourceBundleName();
     method public final int intValue();
-    method public static java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
+    method public static synchronized java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
     method public final java.lang.String toString();
     field public static final java.util.logging.Level ALL;
     field public static final java.util.logging.Level CONFIG;
@@ -56373,18 +57465,18 @@
 
   public class LogManager {
     ctor protected LogManager();
-    method public synchronized boolean addLogger(java.util.logging.Logger);
-    method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
-    method public void checkAccess();
+    method public boolean addLogger(java.util.logging.Logger);
+    method public void addPropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+    method public void checkAccess() throws java.lang.SecurityException;
     method public static java.util.logging.LogManager getLogManager();
-    method public synchronized java.util.logging.Logger getLogger(java.lang.String);
-    method public synchronized java.util.Enumeration<java.lang.String> getLoggerNames();
-    method public static java.util.logging.LoggingMXBean getLoggingMXBean();
+    method public java.util.logging.Logger getLogger(java.lang.String);
+    method public java.util.Enumeration<java.lang.String> getLoggerNames();
+    method public static synchronized java.util.logging.LoggingMXBean getLoggingMXBean();
     method public java.lang.String getProperty(java.lang.String);
-    method public void readConfiguration() throws java.io.IOException;
-    method public void readConfiguration(java.io.InputStream) throws java.io.IOException;
-    method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
-    method public synchronized void reset();
+    method public void readConfiguration() throws java.io.IOException, java.lang.SecurityException;
+    method public void readConfiguration(java.io.InputStream) throws java.io.IOException, java.lang.SecurityException;
+    method public void removePropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+    method public void reset() throws java.lang.SecurityException;
     field public static final java.lang.String LOGGING_MXBEAN_NAME = "java.util.logging:type=Logging";
   }
 
@@ -56418,7 +57510,7 @@
 
   public class Logger {
     ctor protected Logger(java.lang.String, java.lang.String);
-    method public void addHandler(java.util.logging.Handler);
+    method public void addHandler(java.util.logging.Handler) throws java.lang.SecurityException;
     method public void config(java.lang.String);
     method public void entering(java.lang.String, java.lang.String);
     method public void entering(java.lang.String, java.lang.String, java.lang.Object);
@@ -56431,7 +57523,7 @@
     method public static java.util.logging.Logger getAnonymousLogger();
     method public static java.util.logging.Logger getAnonymousLogger(java.lang.String);
     method public java.util.logging.Filter getFilter();
-    method public static java.util.logging.Logger getGlobal();
+    method public static final java.util.logging.Logger getGlobal();
     method public java.util.logging.Handler[] getHandlers();
     method public java.util.logging.Level getLevel();
     method public static java.util.logging.Logger getLogger(java.lang.String);
@@ -56443,11 +57535,11 @@
     method public boolean getUseParentHandlers();
     method public void info(java.lang.String);
     method public boolean isLoggable(java.util.logging.Level);
+    method public void log(java.util.logging.LogRecord);
     method public void log(java.util.logging.Level, java.lang.String);
     method public void log(java.util.logging.Level, java.lang.String, java.lang.Object);
     method public void log(java.util.logging.Level, java.lang.String, java.lang.Object[]);
     method public void log(java.util.logging.Level, java.lang.String, java.lang.Throwable);
-    method public void log(java.util.logging.LogRecord);
     method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String);
     method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
     method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
@@ -56456,9 +57548,9 @@
     method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
     method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
     method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
-    method public void removeHandler(java.util.logging.Handler);
-    method public void setFilter(java.util.logging.Filter);
-    method public void setLevel(java.util.logging.Level);
+    method public void removeHandler(java.util.logging.Handler) throws java.lang.SecurityException;
+    method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+    method public void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
     method public void setParent(java.util.logging.Logger);
     method public void setUseParentHandlers(boolean);
     method public void severe(java.lang.String);
@@ -56475,24 +57567,24 @@
     method public abstract void setLoggerLevel(java.lang.String, java.lang.String);
   }
 
-  public final class LoggingPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
-    ctor public LoggingPermission(java.lang.String, java.lang.String);
+  public final class LoggingPermission extends java.security.BasicPermission {
+    ctor public LoggingPermission(java.lang.String, java.lang.String) throws java.lang.IllegalArgumentException;
   }
 
   public class MemoryHandler extends java.util.logging.Handler {
     ctor public MemoryHandler();
     ctor public MemoryHandler(java.util.logging.Handler, int, java.util.logging.Level);
-    method public void close();
+    method public void close() throws java.lang.SecurityException;
     method public void flush();
-    method public java.util.logging.Level getPushLevel();
+    method public synchronized java.util.logging.Level getPushLevel();
     method public synchronized void publish(java.util.logging.LogRecord);
-    method public void push();
-    method public void setPushLevel(java.util.logging.Level);
+    method public synchronized void push();
+    method public void setPushLevel(java.util.logging.Level) throws java.lang.SecurityException;
   }
 
   public class SimpleFormatter extends java.util.logging.Formatter {
     ctor public SimpleFormatter();
-    method public java.lang.String format(java.util.logging.LogRecord);
+    method public synchronized java.lang.String format(java.util.logging.LogRecord);
   }
 
   public class SocketHandler extends java.util.logging.StreamHandler {
@@ -56503,10 +57595,10 @@
   public class StreamHandler extends java.util.logging.Handler {
     ctor public StreamHandler();
     ctor public StreamHandler(java.io.OutputStream, java.util.logging.Formatter);
-    method public void close();
-    method public void flush();
+    method public synchronized void close() throws java.lang.SecurityException;
+    method public synchronized void flush();
     method public synchronized void publish(java.util.logging.LogRecord);
-    method protected void setOutputStream(java.io.OutputStream);
+    method protected synchronized void setOutputStream(java.io.OutputStream) throws java.lang.SecurityException;
   }
 
   public class XMLFormatter extends java.util.logging.Formatter {
@@ -56576,12 +57668,12 @@
   }
 
   public class InvalidPreferencesFormatException extends java.lang.Exception {
+    ctor public InvalidPreferencesFormatException(java.lang.Throwable);
     ctor public InvalidPreferencesFormatException(java.lang.String);
     ctor public InvalidPreferencesFormatException(java.lang.String, java.lang.Throwable);
-    ctor public InvalidPreferencesFormatException(java.lang.Throwable);
   }
 
-  public class NodeChangeEvent extends java.util.EventObject implements java.io.Serializable {
+  public class NodeChangeEvent extends java.util.EventObject {
     ctor public NodeChangeEvent(java.util.prefs.Preferences, java.util.prefs.Preferences);
     method public java.util.prefs.Preferences getChild();
     method public java.util.prefs.Preferences getParent();
@@ -56592,7 +57684,7 @@
     method public abstract void childRemoved(java.util.prefs.NodeChangeEvent);
   }
 
-  public class PreferenceChangeEvent extends java.util.EventObject implements java.io.Serializable {
+  public class PreferenceChangeEvent extends java.util.EventObject {
     ctor public PreferenceChangeEvent(java.util.prefs.Preferences, java.lang.String, java.lang.String);
     method public java.lang.String getKey();
     method public java.lang.String getNewValue();
@@ -56737,8 +57829,8 @@
     method public long getValue();
     method public void reset();
     method public void update(int);
-    method public void update(byte[]);
     method public void update(byte[], int, int);
+    method public void update(byte[]);
   }
 
   public class CRC32 implements java.util.zip.Checksum {
@@ -56746,8 +57838,8 @@
     method public long getValue();
     method public void reset();
     method public void update(int);
-    method public void update(byte[]);
     method public void update(byte[], int, int);
+    method public void update(byte[]);
   }
 
   public class CheckedInputStream extends java.io.FilterInputStream {
@@ -56763,8 +57855,8 @@
   public abstract interface Checksum {
     method public abstract long getValue();
     method public abstract void reset();
-    method public abstract void update(byte[], int, int);
     method public abstract void update(int);
+    method public abstract void update(byte[], int, int);
   }
 
   public class DataFormatException extends java.lang.Exception {
@@ -56773,28 +57865,28 @@
   }
 
   public class Deflater {
-    ctor public Deflater();
-    ctor public Deflater(int);
     ctor public Deflater(int, boolean);
+    ctor public Deflater(int);
+    ctor public Deflater();
+    method public int deflate(byte[], int, int);
     method public int deflate(byte[]);
-    method public synchronized int deflate(byte[], int, int);
-    method public synchronized int deflate(byte[], int, int, int);
-    method public synchronized void end();
-    method public synchronized void finish();
-    method public synchronized boolean finished();
-    method public synchronized int getAdler();
-    method public synchronized long getBytesRead();
-    method public synchronized long getBytesWritten();
-    method public synchronized int getTotalIn();
-    method public synchronized int getTotalOut();
-    method public synchronized boolean needsInput();
-    method public synchronized void reset();
+    method public int deflate(byte[], int, int, int);
+    method public void end();
+    method public void finish();
+    method public boolean finished();
+    method public int getAdler();
+    method public long getBytesRead();
+    method public long getBytesWritten();
+    method public int getTotalIn();
+    method public int getTotalOut();
+    method public boolean needsInput();
+    method public void reset();
+    method public void setDictionary(byte[], int, int);
     method public void setDictionary(byte[]);
-    method public synchronized void setDictionary(byte[], int, int);
+    method public void setInput(byte[], int, int);
     method public void setInput(byte[]);
-    method public synchronized void setInput(byte[], int, int);
-    method public synchronized void setLevel(int);
-    method public synchronized void setStrategy(int);
+    method public void setLevel(int);
+    method public void setStrategy(int);
     field public static final int BEST_COMPRESSION = 9; // 0x9
     field public static final int BEST_SPEED = 1; // 0x1
     field public static final int DEFAULT_COMPRESSION = -1; // 0xffffffff
@@ -56817,12 +57909,12 @@
   }
 
   public class DeflaterOutputStream extends java.io.FilterOutputStream {
-    ctor public DeflaterOutputStream(java.io.OutputStream);
-    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
-    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
-    ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
-    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
     ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int, boolean);
+    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
+    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
+    ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
+    ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
+    ctor public DeflaterOutputStream(java.io.OutputStream);
     method protected void deflate() throws java.io.IOException;
     method public void finish() throws java.io.IOException;
     field protected byte[] buf;
@@ -56830,49 +57922,50 @@
   }
 
   public class GZIPInputStream extends java.util.zip.InflaterInputStream {
-    ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
     ctor public GZIPInputStream(java.io.InputStream, int) throws java.io.IOException;
+    ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
     field public static final int GZIP_MAGIC = 35615; // 0x8b1f
     field protected java.util.zip.CRC32 crc;
     field protected boolean eos;
   }
 
   public class GZIPOutputStream extends java.util.zip.DeflaterOutputStream {
-    ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
-    ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
     ctor public GZIPOutputStream(java.io.OutputStream, int) throws java.io.IOException;
     ctor public GZIPOutputStream(java.io.OutputStream, int, boolean) throws java.io.IOException;
+    ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
+    ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
     field protected java.util.zip.CRC32 crc;
   }
 
   public class Inflater {
-    ctor public Inflater();
     ctor public Inflater(boolean);
-    method public synchronized void end();
-    method public synchronized boolean finished();
-    method public synchronized int getAdler();
-    method public synchronized long getBytesRead();
-    method public synchronized long getBytesWritten();
-    method public synchronized int getRemaining();
-    method public synchronized int getTotalIn();
-    method public synchronized int getTotalOut();
+    ctor public Inflater();
+    method public void end();
+    method public boolean finished();
+    method public int getAdler();
+    method public long getBytesRead();
+    method public long getBytesWritten();
+    method public int getRemaining();
+    method public int getTotalIn();
+    method public int getTotalOut();
+    method public int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
     method public int inflate(byte[]) throws java.util.zip.DataFormatException;
-    method public synchronized int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
-    method public synchronized boolean needsDictionary();
-    method public synchronized boolean needsInput();
-    method public synchronized void reset();
-    method public synchronized void setDictionary(byte[]);
-    method public synchronized void setDictionary(byte[], int, int);
-    method public synchronized void setInput(byte[]);
-    method public synchronized void setInput(byte[], int, int);
+    method public boolean needsDictionary();
+    method public boolean needsInput();
+    method public void reset();
+    method public void setDictionary(byte[], int, int);
+    method public void setDictionary(byte[]);
+    method public void setInput(byte[], int, int);
+    method public void setInput(byte[]);
   }
 
   public class InflaterInputStream extends java.io.FilterInputStream {
-    ctor public InflaterInputStream(java.io.InputStream);
-    ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
     ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater, int);
+    ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
+    ctor public InflaterInputStream(java.io.InputStream);
     method protected void fill() throws java.io.IOException;
     field protected byte[] buf;
+    field protected boolean closed;
     field protected java.util.zip.Inflater inf;
     field protected int len;
   }
@@ -56960,9 +58053,12 @@
   }
 
   public class ZipFile implements java.io.Closeable {
-    ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
     ctor public ZipFile(java.lang.String) throws java.io.IOException;
     ctor public ZipFile(java.io.File, int) throws java.io.IOException;
+    ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
+    ctor public ZipFile(java.io.File, int, java.nio.charset.Charset) throws java.io.IOException;
+    ctor public ZipFile(java.lang.String, java.nio.charset.Charset) throws java.io.IOException;
+    ctor public ZipFile(java.io.File, java.nio.charset.Charset) throws java.io.IOException;
     method public void close() throws java.io.IOException;
     method public java.util.Enumeration<? extends java.util.zip.ZipEntry> entries();
     method public java.lang.String getComment();
@@ -57016,6 +58112,7 @@
 
   public class ZipInputStream extends java.util.zip.InflaterInputStream {
     ctor public ZipInputStream(java.io.InputStream);
+    ctor public ZipInputStream(java.io.InputStream, java.nio.charset.Charset);
     method public void closeEntry() throws java.io.IOException;
     method protected java.util.zip.ZipEntry createZipEntry(java.lang.String);
     method public java.util.zip.ZipEntry getNextEntry() throws java.io.IOException;
@@ -57063,6 +58160,7 @@
 
   public class ZipOutputStream extends java.util.zip.DeflaterOutputStream {
     ctor public ZipOutputStream(java.io.OutputStream);
+    ctor public ZipOutputStream(java.io.OutputStream, java.nio.charset.Charset);
     method public void closeEntry() throws java.io.IOException;
     method public void putNextEntry(java.util.zip.ZipEntry) throws java.io.IOException;
     method public void setComment(java.lang.String);
@@ -57122,8 +58220,8 @@
   }
 
   public class BadPaddingException extends java.security.GeneralSecurityException {
-    ctor public BadPaddingException(java.lang.String);
     ctor public BadPaddingException();
+    ctor public BadPaddingException(java.lang.String);
   }
 
   public class Cipher {
@@ -57234,14 +58332,14 @@
     method public final int getOutputSize(int) throws java.lang.IllegalStateException;
     method public final java.security.Provider getProvider();
     method public final void init(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
-    method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+    method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final boolean isCryptoAllowed(java.security.Key) throws javax.crypto.ExemptionMechanismException;
   }
 
   public class ExemptionMechanismException extends java.security.GeneralSecurityException {
-    ctor public ExemptionMechanismException(java.lang.String);
     ctor public ExemptionMechanismException();
+    ctor public ExemptionMechanismException(java.lang.String);
   }
 
   public abstract class ExemptionMechanismSpi {
@@ -57250,13 +58348,13 @@
     method protected abstract int engineGenExemptionBlob(byte[], int) throws javax.crypto.ExemptionMechanismException, javax.crypto.ShortBufferException;
     method protected abstract int engineGetOutputSize(int);
     method protected abstract void engineInit(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
-    method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method protected abstract void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+    method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
   }
 
   public class IllegalBlockSizeException extends java.security.GeneralSecurityException {
-    ctor public IllegalBlockSizeException(java.lang.String);
     ctor public IllegalBlockSizeException();
+    ctor public IllegalBlockSizeException(java.lang.String);
   }
 
   public class KeyAgreement {
@@ -57294,19 +58392,19 @@
     method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
     method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
+    method public final void init(java.security.SecureRandom);
     method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
     method public final void init(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
     method public final void init(int);
     method public final void init(int, java.security.SecureRandom);
-    method public final void init(java.security.SecureRandom);
   }
 
   public abstract class KeyGeneratorSpi {
     ctor public KeyGeneratorSpi();
     method protected abstract javax.crypto.SecretKey engineGenerateKey();
+    method protected abstract void engineInit(java.security.SecureRandom);
     method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
     method protected abstract void engineInit(int, java.security.SecureRandom);
-    method protected abstract void engineInit(java.security.SecureRandom);
   }
 
   public class Mac implements java.lang.Cloneable {
@@ -57321,12 +58419,12 @@
     method public static final javax.crypto.Mac getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final int getMacLength();
     method public final java.security.Provider getProvider();
-    method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final void init(java.security.Key) throws java.security.InvalidKeyException;
+    method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final void reset();
     method public final void update(byte) throws java.lang.IllegalStateException;
-    method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
     method public final void update(byte[]) throws java.lang.IllegalStateException;
+    method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
     method public final void update(java.nio.ByteBuffer);
   }
 
@@ -57343,8 +58441,8 @@
   }
 
   public class NoSuchPaddingException extends java.security.GeneralSecurityException {
-    ctor public NoSuchPaddingException(java.lang.String);
     ctor public NoSuchPaddingException();
+    ctor public NoSuchPaddingException(java.lang.String);
   }
 
   public class NullCipher extends javax.crypto.Cipher {
@@ -57385,8 +58483,8 @@
   }
 
   public class ShortBufferException extends java.security.GeneralSecurityException {
-    ctor public ShortBufferException(java.lang.String);
     ctor public ShortBufferException();
+    ctor public ShortBufferException(java.lang.String);
   }
 
 }
@@ -57531,7 +58629,7 @@
     method public int getWordSize();
   }
 
-  public class SecretKeySpec implements java.security.spec.KeySpec javax.crypto.SecretKey java.io.Serializable {
+  public class SecretKeySpec implements java.security.spec.KeySpec javax.crypto.SecretKey {
     ctor public SecretKeySpec(byte[], java.lang.String);
     ctor public SecretKeySpec(byte[], int, int, java.lang.String);
     method public java.lang.String getAlgorithm();
@@ -58426,7 +59524,7 @@
     method public abstract java.net.ServerSocket createServerSocket(int) throws java.io.IOException;
     method public abstract java.net.ServerSocket createServerSocket(int, int) throws java.io.IOException;
     method public abstract java.net.ServerSocket createServerSocket(int, int, java.net.InetAddress) throws java.io.IOException;
-    method public static synchronized javax.net.ServerSocketFactory getDefault();
+    method public static javax.net.ServerSocketFactory getDefault();
   }
 
   public abstract class SocketFactory {
@@ -58436,7 +59534,7 @@
     method public abstract java.net.Socket createSocket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException, java.net.UnknownHostException;
     method public abstract java.net.Socket createSocket(java.net.InetAddress, int) throws java.io.IOException;
     method public abstract java.net.Socket createSocket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
-    method public static synchronized javax.net.SocketFactory getDefault();
+    method public static javax.net.SocketFactory getDefault();
   }
 
 }
@@ -58448,6 +59546,12 @@
     method public java.security.cert.CertPathParameters getParameters();
   }
 
+  public abstract class ExtendedSSLSession implements javax.net.ssl.SSLSession {
+    ctor public ExtendedSSLSession();
+    method public abstract java.lang.String[] getLocalSupportedSignatureAlgorithms();
+    method public abstract java.lang.String[] getPeerSupportedSignatureAlgorithms();
+  }
+
   public class HandshakeCompletedEvent extends java.util.EventObject {
     ctor public HandshakeCompletedEvent(javax.net.ssl.SSLSocket, javax.net.ssl.SSLSession);
     method public java.lang.String getCipherSuite();
@@ -58523,7 +59627,7 @@
     method public final javax.net.ssl.SSLEngine createSSLEngine();
     method public final javax.net.ssl.SSLEngine createSSLEngine(java.lang.String, int);
     method public final javax.net.ssl.SSLSessionContext getClientSessionContext();
-    method public static javax.net.ssl.SSLContext getDefault() throws java.security.NoSuchAlgorithmException;
+    method public static synchronized javax.net.ssl.SSLContext getDefault() throws java.security.NoSuchAlgorithmException;
     method public final javax.net.ssl.SSLParameters getDefaultSSLParameters();
     method public static javax.net.ssl.SSLContext getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
     method public static javax.net.ssl.SSLContext getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
@@ -58535,13 +59639,13 @@
     method public final javax.net.ssl.SSLSocketFactory getSocketFactory();
     method public final javax.net.ssl.SSLParameters getSupportedSSLParameters();
     method public final void init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom) throws java.security.KeyManagementException;
-    method public static void setDefault(javax.net.ssl.SSLContext);
+    method public static synchronized void setDefault(javax.net.ssl.SSLContext);
   }
 
   public abstract class SSLContextSpi {
     ctor public SSLContextSpi();
-    method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine(java.lang.String, int);
     method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine();
+    method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine(java.lang.String, int);
     method protected abstract javax.net.ssl.SSLSessionContext engineGetClientSessionContext();
     method protected javax.net.ssl.SSLParameters engineGetDefaultSSLParameters();
     method protected abstract javax.net.ssl.SSLSessionContext engineGetServerSessionContext();
@@ -58561,6 +59665,7 @@
     method public abstract boolean getEnableSessionCreation();
     method public abstract java.lang.String[] getEnabledCipherSuites();
     method public abstract java.lang.String[] getEnabledProtocols();
+    method public javax.net.ssl.SSLSession getHandshakeSession();
     method public abstract javax.net.ssl.SSLEngineResult.HandshakeStatus getHandshakeStatus();
     method public abstract boolean getNeedClientAuth();
     method public java.lang.String getPeerHost();
@@ -58580,12 +59685,12 @@
     method public void setSSLParameters(javax.net.ssl.SSLParameters);
     method public abstract void setUseClientMode(boolean);
     method public abstract void setWantClientAuth(boolean);
-    method public abstract javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int) throws javax.net.ssl.SSLException;
     method public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
     method public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[]) throws javax.net.ssl.SSLException;
-    method public abstract javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
-    method public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
+    method public abstract javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int) throws javax.net.ssl.SSLException;
     method public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
+    method public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
+    method public abstract javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer) throws javax.net.ssl.SSLException;
   }
 
   public class SSLEngineResult {
@@ -58633,11 +59738,15 @@
     ctor public SSLParameters();
     ctor public SSLParameters(java.lang.String[]);
     ctor public SSLParameters(java.lang.String[], java.lang.String[]);
+    method public java.security.AlgorithmConstraints getAlgorithmConstraints();
     method public java.lang.String[] getCipherSuites();
+    method public java.lang.String getEndpointIdentificationAlgorithm();
     method public boolean getNeedClientAuth();
     method public java.lang.String[] getProtocols();
     method public boolean getWantClientAuth();
+    method public void setAlgorithmConstraints(java.security.AlgorithmConstraints);
     method public void setCipherSuites(java.lang.String[]);
+    method public void setEndpointIdentificationAlgorithm(java.lang.String);
     method public void setNeedClientAuth(boolean);
     method public void setProtocols(java.lang.String[]);
     method public void setWantClientAuth(boolean);
@@ -58665,6 +59774,7 @@
     method public abstract java.lang.String[] getEnabledCipherSuites();
     method public abstract java.lang.String[] getEnabledProtocols();
     method public abstract boolean getNeedClientAuth();
+    method public javax.net.ssl.SSLParameters getSSLParameters();
     method public abstract java.lang.String[] getSupportedCipherSuites();
     method public abstract java.lang.String[] getSupportedProtocols();
     method public abstract boolean getUseClientMode();
@@ -58673,6 +59783,7 @@
     method public abstract void setEnabledCipherSuites(java.lang.String[]);
     method public abstract void setEnabledProtocols(java.lang.String[]);
     method public abstract void setNeedClientAuth(boolean);
+    method public void setSSLParameters(javax.net.ssl.SSLParameters);
     method public abstract void setUseClientMode(boolean);
     method public abstract void setWantClientAuth(boolean);
   }
@@ -58738,6 +59849,7 @@
     method public abstract boolean getEnableSessionCreation();
     method public abstract java.lang.String[] getEnabledCipherSuites();
     method public abstract java.lang.String[] getEnabledProtocols();
+    method public javax.net.ssl.SSLSession getHandshakeSession();
     method public abstract boolean getNeedClientAuth();
     method public javax.net.ssl.SSLParameters getSSLParameters();
     method public abstract javax.net.ssl.SSLSession getSession();
@@ -58793,6 +59905,14 @@
     method public java.lang.String chooseEngineServerAlias(java.lang.String, java.security.Principal[], javax.net.ssl.SSLEngine);
   }
 
+  public abstract class X509ExtendedTrustManager implements javax.net.ssl.X509TrustManager {
+    ctor public X509ExtendedTrustManager();
+    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
+    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
+    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
+    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
+  }
+
   public abstract interface X509KeyManager implements javax.net.ssl.KeyManager {
     method public abstract java.lang.String chooseClientAlias(java.lang.String[], java.security.Principal[], java.net.Socket);
     method public abstract java.lang.String chooseServerAlias(java.lang.String, java.security.Principal[], java.net.Socket);
@@ -58827,11 +59947,21 @@
     method public abstract boolean isDestroyed();
   }
 
+  public abstract deprecated class Policy {
+    ctor protected Policy();
+    method public abstract java.security.PermissionCollection getPermissions(javax.security.auth.Subject, java.security.CodeSource);
+    method public static javax.security.auth.Policy getPolicy();
+    method public abstract void refresh();
+    method public static void setPolicy(javax.security.auth.Policy);
+  }
+
   public final class PrivateCredentialPermission extends java.security.Permission {
     ctor public PrivateCredentialPermission(java.lang.String, java.lang.String);
+    method public boolean equals(java.lang.Object);
     method public java.lang.String getActions();
     method public java.lang.String getCredentialClass();
     method public java.lang.String[][] getPrincipals();
+    method public int hashCode();
     method public boolean implies(java.security.Permission);
   }
 
@@ -58889,6 +60019,43 @@
 
 package javax.security.auth.login {
 
+  public class AppConfigurationEntry {
+    ctor public AppConfigurationEntry(java.lang.String, javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag, java.util.Map<java.lang.String, ?>);
+    method public javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag getControlFlag();
+    method public java.lang.String getLoginModuleName();
+    method public java.util.Map<java.lang.String, ?> getOptions();
+  }
+
+  public static class AppConfigurationEntry.LoginModuleControlFlag {
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag OPTIONAL;
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag REQUIRED;
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag REQUISITE;
+    field public static final javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag SUFFICIENT;
+  }
+
+  public abstract class Configuration {
+    ctor protected Configuration();
+    method public abstract javax.security.auth.login.AppConfigurationEntry[] getAppConfigurationEntry(java.lang.String);
+    method public static javax.security.auth.login.Configuration getConfiguration();
+    method public static javax.security.auth.login.Configuration getInstance(java.lang.String, javax.security.auth.login.Configuration.Parameters) throws java.security.NoSuchAlgorithmException;
+    method public static javax.security.auth.login.Configuration getInstance(java.lang.String, javax.security.auth.login.Configuration.Parameters, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static javax.security.auth.login.Configuration getInstance(java.lang.String, javax.security.auth.login.Configuration.Parameters, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public javax.security.auth.login.Configuration.Parameters getParameters();
+    method public java.security.Provider getProvider();
+    method public java.lang.String getType();
+    method public void refresh();
+    method public static void setConfiguration(javax.security.auth.login.Configuration);
+  }
+
+  public static abstract interface Configuration.Parameters {
+  }
+
+  public abstract class ConfigurationSpi {
+    ctor public ConfigurationSpi();
+    method protected abstract javax.security.auth.login.AppConfigurationEntry[] engineGetAppConfigurationEntry(java.lang.String);
+    method protected void engineRefresh();
+  }
+
   public class LoginException extends java.security.GeneralSecurityException {
     ctor public LoginException();
     ctor public LoginException(java.lang.String);
@@ -58899,10 +60066,10 @@
 package javax.security.auth.x500 {
 
   public final class X500Principal implements java.security.Principal java.io.Serializable {
-    ctor public X500Principal(byte[]);
-    ctor public X500Principal(java.io.InputStream);
     ctor public X500Principal(java.lang.String);
     ctor public X500Principal(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
+    ctor public X500Principal(byte[]);
+    ctor public X500Principal(java.io.InputStream);
     method public byte[] getEncoded();
     method public java.lang.String getName();
     method public java.lang.String getName(java.lang.String);
@@ -58926,28 +60093,28 @@
   }
 
   public class CertificateEncodingException extends javax.security.cert.CertificateException {
-    ctor public CertificateEncodingException(java.lang.String);
     ctor public CertificateEncodingException();
+    ctor public CertificateEncodingException(java.lang.String);
   }
 
   public class CertificateException extends java.lang.Exception {
-    ctor public CertificateException(java.lang.String);
     ctor public CertificateException();
+    ctor public CertificateException(java.lang.String);
   }
 
   public class CertificateExpiredException extends javax.security.cert.CertificateException {
-    ctor public CertificateExpiredException(java.lang.String);
     ctor public CertificateExpiredException();
+    ctor public CertificateExpiredException(java.lang.String);
   }
 
   public class CertificateNotYetValidException extends javax.security.cert.CertificateException {
-    ctor public CertificateNotYetValidException(java.lang.String);
     ctor public CertificateNotYetValidException();
+    ctor public CertificateNotYetValidException(java.lang.String);
   }
 
   public class CertificateParsingException extends javax.security.cert.CertificateException {
-    ctor public CertificateParsingException(java.lang.String);
     ctor public CertificateParsingException();
+    ctor public CertificateParsingException(java.lang.String);
   }
 
   public abstract class X509Certificate extends javax.security.cert.Certificate {
@@ -58974,11 +60141,12 @@
   public abstract interface CommonDataSource {
     method public abstract java.io.PrintWriter getLogWriter() throws java.sql.SQLException;
     method public abstract int getLoginTimeout() throws java.sql.SQLException;
+    method public abstract java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException;
     method public abstract void setLogWriter(java.io.PrintWriter) throws java.sql.SQLException;
     method public abstract void setLoginTimeout(int) throws java.sql.SQLException;
   }
 
-  public class ConnectionEvent extends java.util.EventObject implements java.io.Serializable {
+  public class ConnectionEvent extends java.util.EventObject {
     ctor public ConnectionEvent(javax.sql.PooledConnection);
     ctor public ConnectionEvent(javax.sql.PooledConnection, java.sql.SQLException);
     method public java.sql.SQLException getSQLException();
@@ -59027,21 +60195,21 @@
     method public abstract void removeRowSetListener(javax.sql.RowSetListener);
     method public abstract void setArray(int, java.sql.Array) throws java.sql.SQLException;
     method public abstract void setAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setAsciiStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
     method public abstract void setBigDecimal(java.lang.String, java.math.BigDecimal) throws java.sql.SQLException;
     method public abstract void setBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBinaryStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
     method public abstract void setBlob(int, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
+    method public abstract void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBlob(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
     method public abstract void setBlob(java.lang.String, java.sql.Blob) throws java.sql.SQLException;
+    method public abstract void setBlob(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
     method public abstract void setBoolean(int, boolean) throws java.sql.SQLException;
     method public abstract void setBoolean(java.lang.String, boolean) throws java.sql.SQLException;
     method public abstract void setByte(int, byte) throws java.sql.SQLException;
@@ -59049,15 +60217,15 @@
     method public abstract void setBytes(int, byte[]) throws java.sql.SQLException;
     method public abstract void setBytes(java.lang.String, byte[]) throws java.sql.SQLException;
     method public abstract void setCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
+    method public abstract void setCharacterStream(java.lang.String, java.io.Reader, int) throws java.sql.SQLException;
     method public abstract void setCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(java.lang.String, java.io.Reader, int) throws java.sql.SQLException;
     method public abstract void setClob(int, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public abstract void setClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public abstract void setClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setClob(java.lang.String, java.sql.Clob) throws java.sql.SQLException;
     method public abstract void setClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setCommand(java.lang.String) throws java.sql.SQLException;
     method public abstract void setConcurrency(int) throws java.sql.SQLException;
     method public abstract void setDataSourceName(java.lang.String) throws java.sql.SQLException;
@@ -59078,26 +60246,26 @@
     method public abstract void setMaxRows(int) throws java.sql.SQLException;
     method public abstract void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
     method public abstract void setNCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+    method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
+    method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+    method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+    method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
     method public abstract void setNClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
     method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(int, int) throws java.sql.SQLException;
-    method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
+    method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
     method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
     method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
     method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+    method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
     method public abstract void setPassword(java.lang.String) throws java.sql.SQLException;
     method public abstract void setQueryTimeout(int) throws java.sql.SQLException;
     method public abstract void setReadOnly(boolean) throws java.sql.SQLException;
@@ -59115,8 +60283,8 @@
     method public abstract void setTime(java.lang.String, java.sql.Time) throws java.sql.SQLException;
     method public abstract void setTime(java.lang.String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp) throws java.sql.SQLException;
+    method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
     method public abstract void setTransactionIsolation(int) throws java.sql.SQLException;
     method public abstract void setType(int) throws java.sql.SQLException;
@@ -59126,7 +60294,7 @@
     method public abstract void setUsername(java.lang.String) throws java.sql.SQLException;
   }
 
-  public class RowSetEvent extends java.util.EventObject implements java.io.Serializable {
+  public class RowSetEvent extends java.util.EventObject {
     ctor public RowSetEvent(javax.sql.RowSet);
   }
 
@@ -59173,8 +60341,8 @@
   }
 
   public class StatementEvent extends java.util.EventObject {
-    ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
     ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement);
+    ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
     method public java.sql.SQLException getSQLException();
     method public java.sql.PreparedStatement getStatement();
   }