diff options
| author | 2015-12-24 04:07:42 -0800 | |
|---|---|---|
| committer | 2015-12-24 04:07:42 -0800 | |
| commit | f59c02a65e9fd529467c4e5083d94ed6453e70f7 (patch) | |
| tree | e9a5698ba44b2e3104a2747e7dc7125346ae61b3 | |
| parent | 68521a682524c53e6bfd883a3f41b4fe514c2d0c (diff) | |
| parent | e0e81bf407508ec096c752948f8794af5fd480ca (diff) | |
Merge changes from topic \'aosp-merge-24-12\'
am: e0e81bf407
* commit 'e0e81bf407508ec096c752948f8794af5fd480ca':
Special case system_server to not create the JIT code cache.
Don't use IntegralToString
Track libcore commit 85d69e16fe1e59e50c1ad228e754abf325088362.
Track API changes to java.lang.ref.Reference.
Remove merge markers from preloaded-classes
Move StrictJarFile from libcore to framework
Switch RecoverySystem impl to use sun.security.pkcs
API update for OpenJdk based libcore
Use libcore/known_oj_tags for the javadoc stage.
Stop preloading fortress classes
Use HexDump instead of java.lang.IntegralToString
Add core-oj to the list of core library jars.
24 files changed, 5680 insertions, 1759 deletions
diff --git a/Android.mk b/Android.mk index ce01c2056c0b..5e405d365f84 100644 --- a/Android.mk +++ b/Android.mk @@ -423,7 +423,7 @@ LOCAL_INTERMEDIATE_SOURCES := \ $(framework_res_source_path)/com/android/internal/R.java LOCAL_NO_STANDARD_LIBRARIES := true -LOCAL_JAVA_LIBRARIES := core-libart conscrypt okhttp core-junit bouncycastle ext +LOCAL_JAVA_LIBRARIES := core-oj core-libart conscrypt okhttp core-junit bouncycastle ext LOCAL_MODULE := framework @@ -710,6 +710,7 @@ framework_docs_LOCAL_INTERMEDIATE_SOURCES := \ $(framework_res_source_path)/com/android/internal/R.java framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES := \ + core-oj \ core-libart \ conscrypt \ bouncycastle \ @@ -733,6 +734,7 @@ framework_docs_LOCAL_DROIDDOC_HTML_DIR := docs/html # not be referenced in the documentation. framework_docs_LOCAL_DROIDDOC_OPTIONS := \ -knowntags ./frameworks/base/docs/knowntags.txt \ + -knowntags ./libcore/known_oj_tags.txt \ -hidePackage com.android.org.conscrypt \ -since $(SRC_API_DIR)/1.xml 1 \ -since $(SRC_API_DIR)/2.xml 2 \ @@ -1093,7 +1095,7 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES := $(ext_src_files) LOCAL_NO_STANDARD_LIBRARIES := true -LOCAL_JAVA_LIBRARIES := core-libart +LOCAL_JAVA_LIBRARIES := core-oj core-libart LOCAL_STATIC_JAVA_LIBRARIES := libphonenumber-platform LOCAL_MODULE_TAGS := optional LOCAL_MODULE := ext diff --git a/api/current.txt b/api/current.txt index f74de7e2fdf8..74645d5703a4 100644 --- a/api/current.txt +++ b/api/current.txt @@ -46436,13 +46436,18 @@ package dalvik.system { 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 @@ -46465,6 +46470,46 @@ package java.awt.font { 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; @@ -46558,20 +46603,20 @@ package java.beans { 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); } } @@ -46596,8 +46641,8 @@ package java.io { } 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; @@ -46626,10 +46671,10 @@ package java.io { 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; @@ -46671,13 +46716,15 @@ package java.io { } 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(); } @@ -46723,9 +46770,9 @@ package java.io { } 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; @@ -46767,17 +46814,17 @@ package java.io { } 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(); @@ -46815,6 +46862,7 @@ package java.io { 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; @@ -46837,9 +46885,9 @@ package java.io { } 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; @@ -46851,11 +46899,11 @@ package java.io { } 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; @@ -46863,22 +46911,24 @@ package java.io { 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 { @@ -46931,7 +46981,7 @@ package java.io { 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; @@ -46943,8 +46993,8 @@ package java.io { 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; @@ -46953,6 +47003,7 @@ package java.io { 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; } @@ -46980,13 +47031,13 @@ package java.io { } 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 { @@ -47000,32 +47051,32 @@ package java.io { } 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; @@ -47034,16 +47085,16 @@ package java.io { 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(); } @@ -47054,20 +47105,20 @@ package java.io { 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; @@ -47095,8 +47146,8 @@ package java.io { 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); @@ -47150,8 +47201,8 @@ package java.io { } 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 { @@ -47177,14 +47228,14 @@ package java.io { 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; @@ -47194,10 +47245,10 @@ package java.io { } 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; @@ -47208,28 +47259,28 @@ package java.io { } 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; } @@ -47237,111 +47288,111 @@ package java.io { 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; @@ -47359,9 +47410,9 @@ package java.io { 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; @@ -47381,10 +47432,10 @@ package java.io { 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; @@ -47392,8 +47443,8 @@ package java.io { } 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; } @@ -47406,8 +47457,8 @@ package java.io { } public class StreamCorruptedException extends java.io.ObjectStreamException { - ctor public StreamCorruptedException(); ctor public StreamCorruptedException(java.lang.String); + ctor public StreamCorruptedException(); } public class StreamTokenizer { @@ -47482,14 +47533,14 @@ package java.io { 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; @@ -47504,32 +47555,63 @@ package java.lang { 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 { @@ -47550,7 +47632,6 @@ package java.lang { 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); @@ -47558,6 +47639,7 @@ package java.lang { 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 { @@ -47565,16 +47647,16 @@ package java.lang { } 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; @@ -47590,12 +47672,13 @@ package java.lang { 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 @@ -47768,7 +47851,7 @@ package java.lang { } 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; @@ -47983,6 +48066,109 @@ package java.lang { 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); @@ -47995,28 +48181,28 @@ package java.lang { 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(); @@ -48058,8 +48244,8 @@ package java.lang { } 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; @@ -48084,6 +48270,7 @@ package java.lang { 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); @@ -48131,10 +48318,10 @@ package java.lang { 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; @@ -48178,6 +48365,7 @@ package java.lang { 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 { @@ -48185,12 +48373,13 @@ package java.lang { 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(); } @@ -48206,10 +48395,10 @@ package java.lang { 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); @@ -48305,8 +48494,8 @@ package java.lang { 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); @@ -48315,10 +48504,10 @@ package java.lang { 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 @@ -48364,8 +48553,8 @@ package java.lang { 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); @@ -48374,10 +48563,10 @@ package java.lang { 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 @@ -48387,10 +48576,10 @@ package java.lang { 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); @@ -48410,14 +48599,14 @@ package java.lang { 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); @@ -48425,8 +48614,8 @@ package java.lang { 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); @@ -48504,9 +48693,9 @@ package java.lang { 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 { @@ -48547,19 +48736,49 @@ package java.lang { } 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; } @@ -48567,8 +48786,8 @@ package java.lang { 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 { @@ -48578,12 +48797,12 @@ package java.lang { 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(); @@ -48607,6 +48826,7 @@ package java.lang { 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 { @@ -48671,8 +48891,8 @@ package java.lang { } 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; @@ -48680,12 +48900,12 @@ package java.lang { 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 @@ -48709,10 +48929,10 @@ package java.lang { 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); @@ -48732,14 +48952,14 @@ package java.lang { 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); @@ -48747,8 +48967,8 @@ package java.lang { 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); @@ -48768,19 +48988,19 @@ package java.lang { 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 String(java.lang.String); + ctor public String(char[]); + ctor public String(char[], int, int); + 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[], 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(char[]); - ctor public String(char[], int, int); - ctor public String(java.lang.String); + ctor public String(byte[], int, int); + ctor public String(byte[]); ctor public String(java.lang.StringBuffer); - ctor public String(int[], int, int); ctor public String(java.lang.StringBuilder); method public char charAt(int); method public int codePointAt(int); @@ -48792,16 +49012,16 @@ package java.lang { 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); @@ -48822,109 +49042,51 @@ package java.lang { 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(); - } - - public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable { + method public synchronized java.lang.String toString(); + } + + 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 { @@ -48966,11 +49128,11 @@ package java.lang { 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(); @@ -48995,9 +49157,9 @@ package java.lang { 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); @@ -49010,7 +49172,7 @@ package java.lang { 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 @@ -49079,14 +49241,14 @@ package java.lang { 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); @@ -49213,9 +49375,9 @@ package java.lang.ref { 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 { @@ -49239,8 +49401,8 @@ package java.lang.reflect { 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 { @@ -49261,8 +49423,9 @@ package java.lang.reflect { 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; @@ -49277,7 +49440,6 @@ package java.lang.reflect { 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(); @@ -49364,7 +49526,6 @@ package java.lang.reflect { 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(); @@ -49645,10 +49806,10 @@ package java.net { 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 { @@ -49659,8 +49820,9 @@ package java.net { } 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 { @@ -49676,8 +49838,9 @@ package java.net { } 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 { @@ -49693,9 +49856,9 @@ package java.net { 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 { @@ -49724,12 +49887,12 @@ package java.net { } 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(); @@ -49746,17 +49909,18 @@ package java.net { 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(); @@ -49764,22 +49928,22 @@ package java.net { 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 { @@ -49831,11 +49995,14 @@ package java.net { 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); @@ -49862,8 +50029,8 @@ package java.net { 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; @@ -49923,21 +50090,27 @@ package java.net { } 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(); @@ -50044,8 +50217,8 @@ package java.net { } public class NoRouteToHostException extends java.net.SocketException { - ctor public NoRouteToHostException(); ctor public NoRouteToHostException(java.lang.String); + ctor public NoRouteToHostException(); } public final class PasswordAuthentication { @@ -50055,13 +50228,19 @@ package java.net { } 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 { @@ -50092,9 +50271,9 @@ package java.net { 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 { @@ -50119,14 +50298,14 @@ package java.net { 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; @@ -50135,13 +50314,13 @@ package java.net { public class Socket implements java.io.Closeable { ctor public Socket(); ctor public Socket(java.net.Proxy); + 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.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.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; - ctor protected Socket(java.net.SocketImpl) throws java.net.SocketException; 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; @@ -50190,8 +50369,10 @@ package java.net { } 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 { @@ -50204,7 +50385,7 @@ package java.net { 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(); @@ -50226,6 +50407,11 @@ package java.net { 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; @@ -50247,21 +50433,46 @@ package java.net { 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(); @@ -50299,12 +50510,12 @@ package java.net { } 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; @@ -50323,22 +50534,24 @@ package java.net { 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 { @@ -50351,6 +50564,7 @@ package java.net { 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(); @@ -50359,12 +50573,13 @@ package java.net { 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; @@ -50415,15 +50630,15 @@ package java.net { 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); } @@ -50432,8 +50647,8 @@ package java.net { } 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 { @@ -50489,9 +50704,9 @@ package java.nio { 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(); @@ -50509,10 +50724,10 @@ package java.nio { 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); @@ -50526,8 +50741,8 @@ package java.nio { 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 { @@ -50538,9 +50753,9 @@ package java.nio { 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(); @@ -50549,27 +50764,27 @@ package java.nio { 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 { @@ -50581,20 +50796,20 @@ package java.nio { 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 { @@ -50606,20 +50821,20 @@ package java.nio { 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 { @@ -50631,20 +50846,20 @@ package java.nio { 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 { @@ -50660,20 +50875,20 @@ package java.nio { 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 { @@ -50695,34 +50910,119 @@ package java.nio { 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 { } @@ -50739,7 +51039,9 @@ package java.nio.channels { 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); @@ -50758,50 +51060,61 @@ package java.nio.channels { 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 { @@ -50812,6 +51125,8 @@ package java.nio.channels { 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(); @@ -50828,22 +51143,56 @@ package java.nio.channels { } 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(); } @@ -50885,13 +51234,26 @@ package java.nio.channels { 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 { @@ -50902,8 +51264,8 @@ package java.nio.channels { 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(); } @@ -50935,37 +51297,49 @@ package java.nio.channels { 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 { @@ -50980,6 +51354,10 @@ package java.nio.channels { 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 { @@ -50990,19 +51368,19 @@ package java.nio.channels.spi { 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; } @@ -51026,15 +51404,25 @@ package java.nio.channels.spi { 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(); } } @@ -51073,8 +51461,8 @@ package java.nio.charset { 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); @@ -51096,14 +51484,14 @@ package java.nio.charset { } 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); @@ -51132,10 +51520,10 @@ package java.nio.charset { 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; } @@ -51187,11 +51575,597 @@ package java.nio.charset.spi { } +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(); } @@ -51213,6 +52187,12 @@ package java.security { 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(); @@ -51262,9 +52242,11 @@ package java.security { } 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); } @@ -51278,7 +52260,9 @@ package java.security { 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); } @@ -51307,9 +52291,24 @@ package java.security { 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); } @@ -51335,8 +52334,8 @@ package java.security { } 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); } @@ -51352,8 +52351,8 @@ package java.security { 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); @@ -51384,22 +52383,22 @@ package java.security { } 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 { @@ -51410,8 +52409,8 @@ package java.security { } 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); } @@ -51438,8 +52437,8 @@ package java.security { } 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); } @@ -51460,8 +52459,8 @@ package java.security { 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 { @@ -51564,8 +52563,8 @@ package java.security { } 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); } @@ -51627,22 +52626,24 @@ package java.security { } 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(); } @@ -51750,8 +52751,8 @@ package java.security { } 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); } @@ -51761,8 +52762,8 @@ package java.security { } 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); @@ -51795,10 +52796,10 @@ package java.security { 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); @@ -51812,6 +52813,7 @@ package java.security { 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; @@ -51839,8 +52841,8 @@ package java.security { } 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); } @@ -51893,17 +52895,19 @@ package java.security { } 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); } @@ -51977,12 +52981,28 @@ package java.security.cert { } 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); @@ -52015,10 +53035,10 @@ package java.security.cert { } 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 { @@ -52047,13 +53067,30 @@ package java.security.cert { } 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 { @@ -52084,10 +53121,10 @@ package java.security.cert { } 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 { @@ -52117,22 +53154,22 @@ package java.security.cert { } 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 { @@ -52165,28 +53202,44 @@ package java.security.cert { } 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(); @@ -52253,6 +53306,19 @@ package java.security.cert { 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(); @@ -52272,8 +53338,8 @@ package java.security.cert { 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(); @@ -52306,6 +53372,7 @@ package java.security.cert { 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(); @@ -52581,8 +53648,8 @@ package java.security.spec { } 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(); @@ -52596,15 +53663,15 @@ package java.security.spec { } 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 { @@ -52625,8 +53692,8 @@ package java.security.spec { } 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(); @@ -52695,28 +53762,28 @@ package java.sql { 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(); } @@ -52726,8 +53793,8 @@ package java.sql { 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; @@ -52737,8 +53804,8 @@ package java.sql { 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; @@ -52833,9 +53900,9 @@ package java.sql { 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; @@ -52864,8 +53931,8 @@ package java.sql { 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; @@ -52903,10 +53970,10 @@ package java.sql { 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; @@ -52928,7 +53995,7 @@ package java.sql { 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(); @@ -53190,17 +54257,17 @@ package java.sql { } 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); @@ -53279,8 +54346,8 @@ package java.sql { 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; @@ -53297,8 +54364,8 @@ package java.sql { 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; } @@ -53316,10 +54383,10 @@ package java.sql { 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; @@ -53337,8 +54404,8 @@ package java.sql { 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; @@ -53359,8 +54426,8 @@ package java.sql { 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; @@ -53375,12 +54442,12 @@ package java.sql { 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; @@ -53470,10 +54537,10 @@ package java.sql { 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; @@ -53552,10 +54619,10 @@ package java.sql { 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(); } @@ -53576,11 +54643,11 @@ package java.sql { 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); @@ -53707,7 +54774,7 @@ package java.sql { 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); } @@ -53778,11 +54845,11 @@ package java.sql { 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); @@ -53871,15 +54938,15 @@ package java.sql { } 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 { @@ -53959,11 +55026,11 @@ package java.text { } 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); @@ -53973,9 +55040,9 @@ package java.text { } 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(); @@ -54002,7 +55069,7 @@ package java.text { 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(); @@ -54014,8 +55081,8 @@ package java.text { 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); @@ -54038,11 +55105,11 @@ package java.text { } 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); @@ -54062,8 +55129,8 @@ package java.text { 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 } @@ -54078,18 +55145,18 @@ package java.text { 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 @@ -54102,8 +55169,8 @@ package java.text { 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(); @@ -54208,9 +55275,9 @@ package java.text { 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(); @@ -54246,15 +55313,17 @@ package java.text { 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); @@ -54291,8 +55360,8 @@ package java.text { 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 { @@ -54300,17 +55369,17 @@ package java.text { } 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); @@ -54341,11 +55410,11 @@ package java.text { public abstract class NumberFormat extends java.text.Format { ctor protected NumberFormat(); + 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 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(double, java.lang.StringBuffer, java.text.FieldPosition); 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 static java.util.Locale[] getAvailableLocales(); method public java.util.Currency getCurrency(); method public static final java.text.NumberFormat getCurrencyInstance(); @@ -54365,8 +55434,8 @@ package java.text { 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); @@ -54410,10 +55479,10 @@ package java.text { 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(); } @@ -54421,8 +55490,8 @@ package java.text { 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); @@ -54569,7 +55638,7 @@ package java.util { 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>); @@ -54582,109 +55651,109 @@ package java.util { 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 T[] copyOf(T[], int); + method public static T[] copyOf(U[], int, java.lang.Class<? extends T[]>); 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 short[] copyOf(short[], 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 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 char[] copyOfRange(char[], int, int); - method public static double[] copyOfRange(double[], int, int); - method public static float[] copyOfRange(float[], 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 short[] copyOfRange(short[], int, 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 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[]); } @@ -54695,8 +55764,8 @@ package java.util { 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); @@ -54712,8 +55781,8 @@ package java.util { 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(); @@ -54745,10 +55814,10 @@ package java.util { 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(); @@ -54756,11 +55825,14 @@ package java.util { 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); @@ -54771,6 +55843,7 @@ package java.util { 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 @@ -54887,15 +55960,15 @@ package java.util { 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; @@ -54909,8 +55982,8 @@ package java.util { 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 { @@ -54921,16 +55994,17 @@ package java.util { 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); @@ -55008,7 +56082,7 @@ package java.util { 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>); @@ -55041,8 +56115,8 @@ package java.util { } 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 { @@ -55051,14 +56125,14 @@ package java.util { 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 { @@ -55078,10 +56152,10 @@ package java.util { 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...); @@ -55098,18 +56172,18 @@ package java.util { 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(); @@ -55119,16 +56193,17 @@ package java.util { 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(); @@ -55136,36 +56211,36 @@ package java.util { 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 { @@ -55176,21 +56251,21 @@ package java.util { 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(); } @@ -55212,14 +56287,14 @@ package java.util { 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 { @@ -55228,23 +56303,23 @@ package java.util { 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); @@ -55275,10 +56350,10 @@ package java.util { } 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<?>); @@ -55291,8 +56366,8 @@ package java.util { 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); @@ -55322,14 +56397,15 @@ package java.util { } 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(); @@ -55342,8 +56418,8 @@ package java.util { 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(); @@ -55353,6 +56429,7 @@ package java.util { 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; @@ -55398,6 +56475,13 @@ package java.util { 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); @@ -55500,15 +56584,15 @@ package java.util { 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 { @@ -55537,16 +56621,16 @@ package java.util { 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; } @@ -55574,7 +56658,7 @@ package java.util { 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(); @@ -55591,14 +56675,14 @@ package java.util { 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(); @@ -55615,10 +56699,10 @@ package java.util { 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; @@ -55632,23 +56716,25 @@ package java.util { } public final class Scanner implements java.io.Closeable java.util.Iterator { + 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.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.io.InputStream); - ctor public Scanner(java.io.InputStream, java.lang.String); - ctor public Scanner(java.lang.Readable); 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); @@ -55668,8 +56754,8 @@ package java.util { 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); @@ -55736,12 +56822,12 @@ package java.util { 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(); @@ -55752,11 +56838,14 @@ package java.util { 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 { @@ -55778,9 +56867,9 @@ package java.util { } 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(); @@ -55792,21 +56881,22 @@ package java.util { 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); @@ -55816,14 +56906,14 @@ package java.util { } 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); @@ -55842,10 +56932,10 @@ package java.util { 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); @@ -55877,8 +56967,8 @@ package java.util { 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(); @@ -55928,9 +57018,9 @@ package java.util { } 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(); @@ -55940,7 +57030,7 @@ package java.util { 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(); @@ -55958,9 +57048,9 @@ package java.util { } 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(); } @@ -57198,16 +58288,16 @@ package java.util.jar { 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); @@ -57255,19 +58345,20 @@ package java.util.jar { } 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; } @@ -57291,7 +58382,7 @@ package java.util.jar { } 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(); } @@ -57345,7 +58436,7 @@ package java.util.logging { 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 @@ -57355,11 +58446,11 @@ package java.util.logging { } 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 { @@ -57369,28 +58460,28 @@ package java.util.logging { 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 { @@ -57400,7 +58491,7 @@ package java.util.logging { 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; @@ -57415,18 +58506,18 @@ package java.util.logging { 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"; } @@ -57460,7 +58551,7 @@ package java.util.logging { 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); @@ -57473,7 +58564,7 @@ package java.util.logging { 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); @@ -57485,11 +58576,11 @@ package java.util.logging { 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[]); @@ -57498,9 +58589,9 @@ package java.util.logging { 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); @@ -57517,24 +58608,24 @@ package java.util.logging { 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 { @@ -57545,10 +58636,10 @@ package java.util.logging { 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 { @@ -57618,12 +58709,12 @@ package java.util.prefs { } 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(); @@ -57634,7 +58725,7 @@ package java.util.prefs { 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(); @@ -57715,8 +58806,8 @@ package java.util.regex { method public java.lang.StringBuffer appendTail(java.lang.StringBuffer); method public int end(); method public int end(int); - method public boolean find(int); method public boolean find(); + method public boolean find(int); method public java.lang.String group(); method public java.lang.String group(int); method public int groupCount(); @@ -57744,8 +58835,8 @@ package java.util.regex { } public final class Pattern implements java.io.Serializable { - method public static java.util.regex.Pattern compile(java.lang.String, int) throws java.util.regex.PatternSyntaxException; method public static java.util.regex.Pattern compile(java.lang.String); + method public static java.util.regex.Pattern compile(java.lang.String, int) throws java.util.regex.PatternSyntaxException; method public int flags(); method public java.util.regex.Matcher matcher(java.lang.CharSequence); method public static boolean matches(java.lang.String, java.lang.CharSequence); @@ -57760,6 +58851,7 @@ package java.util.regex { field public static final int LITERAL = 16; // 0x10 field public static final int MULTILINE = 8; // 0x8 field public static final int UNICODE_CASE = 64; // 0x40 + field public static final int UNICODE_CHARACTER_CLASS = 256; // 0x100 field public static final int UNIX_LINES = 1; // 0x1 } @@ -57779,8 +58871,8 @@ package java.util.zip { 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 { @@ -57788,8 +58880,8 @@ package java.util.zip { 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 { @@ -57805,8 +58897,8 @@ package java.util.zip { 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 { @@ -57815,28 +58907,28 @@ package java.util.zip { } 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 @@ -57859,12 +58951,12 @@ package java.util.zip { } 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, boolean); 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); + 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; @@ -57872,49 +58964,50 @@ package java.util.zip { } 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; } @@ -58002,9 +59095,12 @@ package java.util.zip { } 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(); @@ -58058,6 +59154,7 @@ package java.util.zip { 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; @@ -58105,6 +59202,7 @@ package java.util.zip { 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); @@ -58164,8 +59262,8 @@ package javax.crypto { } 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 { @@ -58276,14 +59374,14 @@ package javax.crypto { 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 { @@ -58292,13 +59390,13 @@ package javax.crypto { 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 { @@ -58336,19 +59434,19 @@ package javax.crypto { 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 { @@ -58363,12 +59461,12 @@ package javax.crypto { 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); } @@ -58385,8 +59483,8 @@ package javax.crypto { } 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 { @@ -58427,8 +59525,8 @@ package javax.crypto { } public class ShortBufferException extends java.security.GeneralSecurityException { - ctor public ShortBufferException(java.lang.String); ctor public ShortBufferException(); + ctor public ShortBufferException(java.lang.String); } } @@ -58573,7 +59671,7 @@ package javax.crypto.spec { 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(); @@ -59468,7 +60566,7 @@ package javax.net { 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 { @@ -59478,7 +60576,7 @@ package javax.net { 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(); } } @@ -59490,6 +60588,12 @@ package javax.net.ssl { 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(); @@ -59565,7 +60669,7 @@ package javax.net.ssl { 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; @@ -59577,13 +60681,13 @@ package javax.net.ssl { 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(); @@ -59603,6 +60707,7 @@ package javax.net.ssl { 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(); @@ -59622,12 +60727,12 @@ package javax.net.ssl { 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 { @@ -59675,11 +60780,15 @@ package javax.net.ssl { 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); @@ -59707,6 +60816,7 @@ package javax.net.ssl { 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(); @@ -59715,6 +60825,7 @@ package javax.net.ssl { 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); } @@ -59780,6 +60891,7 @@ package javax.net.ssl { 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(); @@ -59835,6 +60947,14 @@ package javax.net.ssl { 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); @@ -59869,11 +60989,21 @@ package javax.security.auth { 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); } @@ -59931,6 +61061,43 @@ package javax.security.auth.callback { 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); @@ -59941,10 +61108,10 @@ package javax.security.auth.login { 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); @@ -59968,28 +61135,28 @@ package javax.security.cert { } 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 { @@ -60016,11 +61183,12 @@ package javax.sql { 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(); @@ -60069,21 +61237,21 @@ package javax.sql { 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; @@ -60091,15 +61259,15 @@ package javax.sql { 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; @@ -60120,26 +61288,26 @@ package javax.sql { 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 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 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) 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 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; @@ -60157,8 +61325,8 @@ package javax.sql { 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; @@ -60168,7 +61336,7 @@ package javax.sql { 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); } @@ -60215,8 +61383,8 @@ package javax.sql { } 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 36d0755712e0..f17c2f1fd3fe 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -49054,13 +49054,18 @@ package dalvik.system { 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 @@ -49083,6 +49088,46 @@ package java.awt.font { 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; @@ -49176,20 +49221,20 @@ package java.beans { 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); } } @@ -49214,8 +49259,8 @@ package java.io { } 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; @@ -49244,10 +49289,10 @@ package java.io { 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; @@ -49289,13 +49334,15 @@ package java.io { } 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(); } @@ -49341,9 +49388,9 @@ package java.io { } 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; @@ -49385,17 +49432,17 @@ package java.io { } 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(); @@ -49433,6 +49480,7 @@ package java.io { 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; @@ -49455,9 +49503,9 @@ package java.io { } 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; @@ -49469,11 +49517,11 @@ package java.io { } 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; @@ -49481,22 +49529,24 @@ package java.io { 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 { @@ -49549,7 +49599,7 @@ package java.io { 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; @@ -49561,8 +49611,8 @@ package java.io { 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; @@ -49571,6 +49621,7 @@ package java.io { 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; } @@ -49598,13 +49649,13 @@ package java.io { } 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 { @@ -49618,32 +49669,32 @@ package java.io { } 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; @@ -49652,16 +49703,16 @@ package java.io { 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(); } @@ -49672,20 +49723,20 @@ package java.io { 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; @@ -49713,8 +49764,8 @@ package java.io { 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); @@ -49768,8 +49819,8 @@ package java.io { } 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 { @@ -49795,14 +49846,14 @@ package java.io { 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; @@ -49812,10 +49863,10 @@ package java.io { } 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; @@ -49826,28 +49877,28 @@ package java.io { } 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; } @@ -49855,111 +49906,111 @@ package java.io { 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; @@ -49977,9 +50028,9 @@ package java.io { 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; @@ -49999,10 +50050,10 @@ package java.io { 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; @@ -50010,8 +50061,8 @@ package java.io { } 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; } @@ -50024,8 +50075,8 @@ package java.io { } public class StreamCorruptedException extends java.io.ObjectStreamException { - ctor public StreamCorruptedException(); ctor public StreamCorruptedException(java.lang.String); + ctor public StreamCorruptedException(); } public class StreamTokenizer { @@ -50100,14 +50151,14 @@ package java.io { 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; @@ -50122,32 +50173,63 @@ package java.lang { 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 { @@ -50168,7 +50250,6 @@ package java.lang { 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); @@ -50176,6 +50257,7 @@ package java.lang { 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 { @@ -50183,16 +50265,16 @@ package java.lang { } 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; @@ -50208,12 +50290,13 @@ package java.lang { 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 @@ -50386,7 +50469,7 @@ package java.lang { } 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; @@ -50601,6 +50684,109 @@ package java.lang { 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); @@ -50613,28 +50799,28 @@ package java.lang { 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(); @@ -50676,8 +50862,8 @@ package java.lang { } 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; @@ -50702,6 +50888,7 @@ package java.lang { 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); @@ -50749,10 +50936,10 @@ package java.lang { 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; @@ -50796,6 +50983,7 @@ package java.lang { 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 { @@ -50803,12 +50991,13 @@ package java.lang { 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(); } @@ -50824,10 +51013,10 @@ package java.lang { 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); @@ -50923,8 +51112,8 @@ package java.lang { 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); @@ -50933,10 +51122,10 @@ package java.lang { 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 @@ -50982,8 +51171,8 @@ package java.lang { 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); @@ -50992,10 +51181,10 @@ package java.lang { 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 @@ -51005,10 +51194,10 @@ package java.lang { 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); @@ -51028,14 +51217,14 @@ package java.lang { 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); @@ -51043,8 +51232,8 @@ package java.lang { 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); @@ -51122,9 +51311,9 @@ package java.lang { 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 { @@ -51165,19 +51354,49 @@ package java.lang { } 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; } @@ -51185,8 +51404,8 @@ package java.lang { 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 { @@ -51196,12 +51415,12 @@ package java.lang { 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(); @@ -51225,6 +51444,7 @@ package java.lang { 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 { @@ -51289,8 +51509,8 @@ package java.lang { } 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; @@ -51298,12 +51518,12 @@ package java.lang { 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 @@ -51327,10 +51547,10 @@ package java.lang { 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); @@ -51350,14 +51570,14 @@ package java.lang { 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); @@ -51365,8 +51585,8 @@ package java.lang { 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); @@ -51386,19 +51606,19 @@ package java.lang { 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 String(java.lang.String); + ctor public String(char[]); + ctor public String(char[], int, int); + 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[], 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(char[]); - ctor public String(char[], int, int); - ctor public String(java.lang.String); + ctor public String(byte[], int, int); + ctor public String(byte[]); ctor public String(java.lang.StringBuffer); - ctor public String(int[], int, int); ctor public String(java.lang.StringBuilder); method public char charAt(int); method public int codePointAt(int); @@ -51410,16 +51630,16 @@ package java.lang { 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); @@ -51440,109 +51660,51 @@ package java.lang { 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(); - } - - public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable { + method public synchronized java.lang.String toString(); + } + + 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 { @@ -51584,11 +51746,11 @@ package java.lang { 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(); @@ -51613,9 +51775,9 @@ package java.lang { 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); @@ -51628,7 +51790,7 @@ package java.lang { 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 @@ -51697,14 +51859,14 @@ package java.lang { 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); @@ -51831,9 +51993,9 @@ package java.lang.ref { 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 { @@ -51857,8 +52019,8 @@ package java.lang.reflect { 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 { @@ -51879,8 +52041,9 @@ package java.lang.reflect { 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; @@ -51895,7 +52058,6 @@ package java.lang.reflect { 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(); @@ -51982,7 +52144,6 @@ package java.lang.reflect { 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(); @@ -52263,10 +52424,10 @@ package java.net { 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 { @@ -52277,8 +52438,9 @@ package java.net { } 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 { @@ -52294,8 +52456,9 @@ package java.net { } 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 { @@ -52311,9 +52474,9 @@ package java.net { 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 { @@ -52342,12 +52505,12 @@ package java.net { } 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(); @@ -52364,17 +52527,18 @@ package java.net { 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(); @@ -52382,22 +52546,22 @@ package java.net { 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 { @@ -52449,11 +52613,14 @@ package java.net { 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); @@ -52480,8 +52647,8 @@ package java.net { 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; @@ -52541,21 +52708,27 @@ package java.net { } 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(); @@ -52662,8 +52835,8 @@ package java.net { } public class NoRouteToHostException extends java.net.SocketException { - ctor public NoRouteToHostException(); ctor public NoRouteToHostException(java.lang.String); + ctor public NoRouteToHostException(); } public final class PasswordAuthentication { @@ -52673,13 +52846,19 @@ package java.net { } 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 { @@ -52710,9 +52889,9 @@ package java.net { 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 { @@ -52737,14 +52916,14 @@ package java.net { 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; @@ -52753,13 +52932,13 @@ package java.net { public class Socket implements java.io.Closeable { ctor public Socket(); ctor public Socket(java.net.Proxy); + 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.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.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; - ctor protected Socket(java.net.SocketImpl) throws java.net.SocketException; 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; @@ -52808,8 +52987,10 @@ package java.net { } 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 { @@ -52822,7 +53003,7 @@ package java.net { 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(); @@ -52844,6 +53025,11 @@ package java.net { 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; @@ -52865,21 +53051,46 @@ package java.net { 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(); @@ -52917,12 +53128,12 @@ package java.net { } 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; @@ -52941,22 +53152,24 @@ package java.net { 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 { @@ -52969,6 +53182,7 @@ package java.net { 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(); @@ -52977,12 +53191,13 @@ package java.net { 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; @@ -53033,15 +53248,15 @@ package java.net { 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); } @@ -53050,8 +53265,8 @@ package java.net { } 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 { @@ -53107,9 +53322,9 @@ package java.nio { 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(); @@ -53127,10 +53342,10 @@ package java.nio { 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); @@ -53144,8 +53359,8 @@ package java.nio { 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 { @@ -53156,9 +53371,9 @@ package java.nio { 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(); @@ -53167,27 +53382,27 @@ package java.nio { 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 { @@ -53199,20 +53414,20 @@ package java.nio { 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 { @@ -53224,20 +53439,20 @@ package java.nio { 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 { @@ -53249,20 +53464,20 @@ package java.nio { 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 { @@ -53278,20 +53493,20 @@ package java.nio { 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 { @@ -53313,34 +53528,119 @@ package java.nio { 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 { } @@ -53357,7 +53657,9 @@ package java.nio.channels { 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); @@ -53376,50 +53678,61 @@ package java.nio.channels { 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 { @@ -53430,6 +53743,8 @@ package java.nio.channels { 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(); @@ -53446,22 +53761,56 @@ package java.nio.channels { } 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(); } @@ -53503,13 +53852,26 @@ package java.nio.channels { 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 { @@ -53520,8 +53882,8 @@ package java.nio.channels { 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(); } @@ -53553,37 +53915,49 @@ package java.nio.channels { 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 { @@ -53598,6 +53972,10 @@ package java.nio.channels { 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 { @@ -53608,19 +53986,19 @@ package java.nio.channels.spi { 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; } @@ -53644,15 +54022,25 @@ package java.nio.channels.spi { 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(); } } @@ -53691,8 +54079,8 @@ package java.nio.charset { 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); @@ -53714,14 +54102,14 @@ package java.nio.charset { } 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); @@ -53750,10 +54138,10 @@ package java.nio.charset { 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; } @@ -53805,11 +54193,597 @@ package java.nio.charset.spi { } +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(); } @@ -53831,6 +54805,12 @@ package java.security { 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(); @@ -53880,9 +54860,11 @@ package java.security { } 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); } @@ -53896,7 +54878,9 @@ package java.security { 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); } @@ -53925,9 +54909,24 @@ package java.security { 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); } @@ -53953,8 +54952,8 @@ package java.security { } 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); } @@ -53970,8 +54969,8 @@ package java.security { 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); @@ -54002,22 +55001,22 @@ package java.security { } 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 { @@ -54028,8 +55027,8 @@ package java.security { } 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); } @@ -54056,8 +55055,8 @@ package java.security { } 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); } @@ -54078,8 +55077,8 @@ package java.security { 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 { @@ -54182,8 +55181,8 @@ package java.security { } 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); } @@ -54245,22 +55244,24 @@ package java.security { } 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(); } @@ -54368,8 +55369,8 @@ package java.security { } 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); } @@ -54379,8 +55380,8 @@ package java.security { } 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); @@ -54413,10 +55414,10 @@ package java.security { 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); @@ -54430,6 +55431,7 @@ package java.security { 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; @@ -54457,8 +55459,8 @@ package java.security { } 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); } @@ -54511,17 +55513,19 @@ package java.security { } 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); } @@ -54595,12 +55599,28 @@ package java.security.cert { } 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); @@ -54633,10 +55653,10 @@ package java.security.cert { } 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 { @@ -54665,13 +55685,30 @@ package java.security.cert { } 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 { @@ -54702,10 +55739,10 @@ package java.security.cert { } 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 { @@ -54735,22 +55772,22 @@ package java.security.cert { } 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 { @@ -54783,28 +55820,44 @@ package java.security.cert { } 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(); @@ -54871,6 +55924,19 @@ package java.security.cert { 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(); @@ -54890,8 +55956,8 @@ package java.security.cert { 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(); @@ -54924,6 +55990,7 @@ package java.security.cert { 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(); @@ -55199,8 +56266,8 @@ package java.security.spec { } 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(); @@ -55214,15 +56281,15 @@ package java.security.spec { } 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 { @@ -55243,8 +56310,8 @@ package java.security.spec { } 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(); @@ -55313,28 +56380,28 @@ package java.sql { 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(); } @@ -55344,8 +56411,8 @@ package java.sql { 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; @@ -55355,8 +56422,8 @@ package java.sql { 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; @@ -55451,9 +56518,9 @@ package java.sql { 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; @@ -55482,8 +56549,8 @@ package java.sql { 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; @@ -55521,10 +56588,10 @@ package java.sql { 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; @@ -55546,7 +56613,7 @@ package java.sql { 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(); @@ -55808,17 +56875,17 @@ package java.sql { } 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); @@ -55897,8 +56964,8 @@ package java.sql { 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; @@ -55915,8 +56982,8 @@ package java.sql { 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; } @@ -55934,10 +57001,10 @@ package java.sql { 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; @@ -55955,8 +57022,8 @@ package java.sql { 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; @@ -55977,8 +57044,8 @@ package java.sql { 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; @@ -55993,12 +57060,12 @@ package java.sql { 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; @@ -56088,10 +57155,10 @@ package java.sql { 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; @@ -56170,10 +57237,10 @@ package java.sql { 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(); } @@ -56194,11 +57261,11 @@ package java.sql { 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); @@ -56325,7 +57392,7 @@ package java.sql { 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); } @@ -56396,11 +57463,11 @@ package java.sql { 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); @@ -56489,15 +57556,15 @@ package java.sql { } 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 { @@ -56577,11 +57644,11 @@ package java.text { } 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); @@ -56591,9 +57658,9 @@ package java.text { } 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(); @@ -56620,7 +57687,7 @@ package java.text { 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(); @@ -56632,8 +57699,8 @@ package java.text { 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); @@ -56656,11 +57723,11 @@ package java.text { } 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); @@ -56680,8 +57747,8 @@ package java.text { 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 } @@ -56696,18 +57763,18 @@ package java.text { 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 @@ -56720,8 +57787,8 @@ package java.text { 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(); @@ -56826,9 +57893,9 @@ package java.text { 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(); @@ -56864,15 +57931,17 @@ package java.text { 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); @@ -56909,8 +57978,8 @@ package java.text { 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 { @@ -56918,17 +57987,17 @@ package java.text { } 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); @@ -56959,11 +58028,11 @@ package java.text { public abstract class NumberFormat extends java.text.Format { ctor protected NumberFormat(); + 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 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(double, java.lang.StringBuffer, java.text.FieldPosition); 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 static java.util.Locale[] getAvailableLocales(); method public java.util.Currency getCurrency(); method public static final java.text.NumberFormat getCurrencyInstance(); @@ -56983,8 +58052,8 @@ package java.text { 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); @@ -57028,10 +58097,10 @@ package java.text { 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(); } @@ -57039,8 +58108,8 @@ package java.text { 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); @@ -57187,7 +58256,7 @@ package java.util { 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>); @@ -57200,109 +58269,109 @@ package java.util { 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 T[] copyOf(T[], int); + method public static T[] copyOf(U[], int, java.lang.Class<? extends T[]>); 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 short[] copyOf(short[], 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 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 char[] copyOfRange(char[], int, int); - method public static double[] copyOfRange(double[], int, int); - method public static float[] copyOfRange(float[], 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 short[] copyOfRange(short[], int, 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 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[]); } @@ -57313,8 +58382,8 @@ package java.util { 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); @@ -57330,8 +58399,8 @@ package java.util { 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(); @@ -57363,10 +58432,10 @@ package java.util { 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(); @@ -57374,11 +58443,14 @@ package java.util { 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); @@ -57389,6 +58461,7 @@ package java.util { 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 @@ -57505,15 +58578,15 @@ package java.util { 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; @@ -57527,8 +58600,8 @@ package java.util { 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 { @@ -57539,16 +58612,17 @@ package java.util { 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); @@ -57626,7 +58700,7 @@ package java.util { 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>); @@ -57659,8 +58733,8 @@ package java.util { } 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 { @@ -57669,14 +58743,14 @@ package java.util { 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 { @@ -57696,10 +58770,10 @@ package java.util { 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...); @@ -57716,18 +58790,18 @@ package java.util { 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(); @@ -57737,16 +58811,17 @@ package java.util { 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(); @@ -57754,36 +58829,36 @@ package java.util { 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 { @@ -57794,21 +58869,21 @@ package java.util { 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(); } @@ -57830,14 +58905,14 @@ package java.util { 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 { @@ -57846,23 +58921,23 @@ package java.util { 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); @@ -57893,10 +58968,10 @@ package java.util { } 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<?>); @@ -57909,8 +58984,8 @@ package java.util { 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); @@ -57940,14 +59015,15 @@ package java.util { } 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(); @@ -57960,8 +59036,8 @@ package java.util { 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(); @@ -57971,6 +59047,7 @@ package java.util { 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; @@ -58016,6 +59093,13 @@ package java.util { 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); @@ -58118,15 +59202,15 @@ package java.util { 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 { @@ -58155,16 +59239,16 @@ package java.util { 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; } @@ -58192,7 +59276,7 @@ package java.util { 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(); @@ -58209,14 +59293,14 @@ package java.util { 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(); @@ -58233,10 +59317,10 @@ package java.util { 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; @@ -58250,23 +59334,25 @@ package java.util { } public final class Scanner implements java.io.Closeable java.util.Iterator { + 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.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.io.InputStream); - ctor public Scanner(java.io.InputStream, java.lang.String); - ctor public Scanner(java.lang.Readable); 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); @@ -58286,8 +59372,8 @@ package java.util { 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); @@ -58354,12 +59440,12 @@ package java.util { 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(); @@ -58370,11 +59456,14 @@ package java.util { 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 { @@ -58396,9 +59485,9 @@ package java.util { } 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(); @@ -58410,21 +59499,22 @@ package java.util { 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); @@ -58434,14 +59524,14 @@ package java.util { } 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); @@ -58460,10 +59550,10 @@ package java.util { 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); @@ -58495,8 +59585,8 @@ package java.util { 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(); @@ -58546,9 +59636,9 @@ package java.util { } 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(); @@ -58558,7 +59648,7 @@ package java.util { 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(); @@ -58576,9 +59666,9 @@ package java.util { } 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(); } @@ -59816,16 +60906,16 @@ package java.util.jar { 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); @@ -59873,19 +60963,20 @@ package java.util.jar { } 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; } @@ -59909,7 +61000,7 @@ package java.util.jar { } 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(); } @@ -59963,7 +61054,7 @@ package java.util.logging { 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 @@ -59973,11 +61064,11 @@ package java.util.logging { } 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 { @@ -59987,28 +61078,28 @@ package java.util.logging { 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 { @@ -60018,7 +61109,7 @@ package java.util.logging { 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; @@ -60033,18 +61124,18 @@ package java.util.logging { 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"; } @@ -60078,7 +61169,7 @@ package java.util.logging { 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); @@ -60091,7 +61182,7 @@ package java.util.logging { 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); @@ -60103,11 +61194,11 @@ package java.util.logging { 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[]); @@ -60116,9 +61207,9 @@ package java.util.logging { 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); @@ -60135,24 +61226,24 @@ package java.util.logging { 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 { @@ -60163,10 +61254,10 @@ package java.util.logging { 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 { @@ -60236,12 +61327,12 @@ package java.util.prefs { } 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(); @@ -60252,7 +61343,7 @@ package java.util.prefs { 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(); @@ -60333,8 +61424,8 @@ package java.util.regex { method public java.lang.StringBuffer appendTail(java.lang.StringBuffer); method public int end(); method public int end(int); - method public boolean find(int); method public boolean find(); + method public boolean find(int); method public java.lang.String group(); method public java.lang.String group(int); method public int groupCount(); @@ -60362,8 +61453,8 @@ package java.util.regex { } public final class Pattern implements java.io.Serializable { - method public static java.util.regex.Pattern compile(java.lang.String, int) throws java.util.regex.PatternSyntaxException; method public static java.util.regex.Pattern compile(java.lang.String); + method public static java.util.regex.Pattern compile(java.lang.String, int) throws java.util.regex.PatternSyntaxException; method public int flags(); method public java.util.regex.Matcher matcher(java.lang.CharSequence); method public static boolean matches(java.lang.String, java.lang.CharSequence); @@ -60378,6 +61469,7 @@ package java.util.regex { field public static final int LITERAL = 16; // 0x10 field public static final int MULTILINE = 8; // 0x8 field public static final int UNICODE_CASE = 64; // 0x40 + field public static final int UNICODE_CHARACTER_CLASS = 256; // 0x100 field public static final int UNIX_LINES = 1; // 0x1 } @@ -60397,8 +61489,8 @@ package java.util.zip { 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 { @@ -60406,8 +61498,8 @@ package java.util.zip { 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 { @@ -60423,8 +61515,8 @@ package java.util.zip { 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 { @@ -60433,28 +61525,28 @@ package java.util.zip { } 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 @@ -60477,12 +61569,12 @@ package java.util.zip { } 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, boolean); 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); + 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; @@ -60490,49 +61582,50 @@ package java.util.zip { } 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; } @@ -60620,9 +61713,12 @@ package java.util.zip { } 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(); @@ -60676,6 +61772,7 @@ package java.util.zip { 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; @@ -60723,6 +61820,7 @@ package java.util.zip { 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); @@ -60782,8 +61880,8 @@ package javax.crypto { } 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 { @@ -60894,14 +61992,14 @@ package javax.crypto { 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 { @@ -60910,13 +62008,13 @@ package javax.crypto { 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 { @@ -60954,19 +62052,19 @@ package javax.crypto { 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 { @@ -60981,12 +62079,12 @@ package javax.crypto { 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); } @@ -61003,8 +62101,8 @@ package javax.crypto { } 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 { @@ -61045,8 +62143,8 @@ package javax.crypto { } public class ShortBufferException extends java.security.GeneralSecurityException { - ctor public ShortBufferException(java.lang.String); ctor public ShortBufferException(); + ctor public ShortBufferException(java.lang.String); } } @@ -61191,7 +62289,7 @@ package javax.crypto.spec { 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(); @@ -62086,7 +63184,7 @@ package javax.net { 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 { @@ -62096,7 +63194,7 @@ package javax.net { 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(); } } @@ -62108,6 +63206,12 @@ package javax.net.ssl { 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(); @@ -62183,7 +63287,7 @@ package javax.net.ssl { 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; @@ -62195,13 +63299,13 @@ package javax.net.ssl { 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(); @@ -62221,6 +63325,7 @@ package javax.net.ssl { 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(); @@ -62240,12 +63345,12 @@ package javax.net.ssl { 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 { @@ -62293,11 +63398,15 @@ package javax.net.ssl { 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); @@ -62325,6 +63434,7 @@ package javax.net.ssl { 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(); @@ -62333,6 +63443,7 @@ package javax.net.ssl { 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); } @@ -62398,6 +63509,7 @@ package javax.net.ssl { 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(); @@ -62453,6 +63565,14 @@ package javax.net.ssl { 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); @@ -62487,11 +63607,21 @@ package javax.security.auth { 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); } @@ -62549,6 +63679,43 @@ package javax.security.auth.callback { 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); @@ -62559,10 +63726,10 @@ package javax.security.auth.login { 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); @@ -62586,28 +63753,28 @@ package javax.security.cert { } 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 { @@ -62634,11 +63801,12 @@ package javax.sql { 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(); @@ -62687,21 +63855,21 @@ package javax.sql { 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; @@ -62709,15 +63877,15 @@ package javax.sql { 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; @@ -62738,26 +63906,26 @@ package javax.sql { 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 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 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) 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 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; @@ -62775,8 +63943,8 @@ package javax.sql { 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; @@ -62786,7 +63954,7 @@ package javax.sql { 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); } @@ -62833,8 +64001,8 @@ package javax.sql { } 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/core/java/android/content/pm/ManifestDigest.java b/core/java/android/content/pm/ManifestDigest.java index 1fbef7a5d3c7..e7dc76488903 100644 --- a/core/java/android/content/pm/ManifestDigest.java +++ b/core/java/android/content/pm/ManifestDigest.java @@ -16,6 +16,8 @@ package android.content.pm; +import com.android.internal.util.HexDump; + import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; @@ -118,7 +120,7 @@ public class ManifestDigest implements Parcelable { final int N = mDigest.length; for (int i = 0; i < N; i++) { final byte b = mDigest[i]; - IntegralToString.appendByteAsHex(sb, b, false); + HexDump.appendByteAsHex(sb, b, false); sb.append(','); } sb.append('}'); @@ -142,4 +144,4 @@ public class ManifestDigest implements Parcelable { } }; -}
\ No newline at end of file +} diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 99bd39035358..549829dbf841 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -81,9 +81,10 @@ import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicReference; -import java.util.jar.StrictJarFile; import java.util.zip.ZipEntry; +import android.util.jar.StrictJarFile; + /** * Parser for package files (APKs) on disk. This supports apps packaged either * as a single "monolithic" APK, or apps packaged as a "cluster" of multiple diff --git a/core/java/android/net/http/SslCertificate.java b/core/java/android/net/http/SslCertificate.java index 5b60c0dee46d..2715af0261df 100644 --- a/core/java/android/net/http/SslCertificate.java +++ b/core/java/android/net/http/SslCertificate.java @@ -16,6 +16,8 @@ package android.net.http; +import com.android.internal.util.HexDump; + import android.content.Context; import android.os.Bundle; import android.text.format.DateFormat; @@ -285,7 +287,7 @@ public class SslCertificate { StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.length; i++) { byte b = bytes[i]; - IntegralToString.appendByteAsHex(sb, b, true); + HexDump.appendByteAsHex(sb, b, true); if (i+1 != bytes.length) { sb.append(':'); } diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index 8e06fa7e4be8..4113de2a7190 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -44,11 +44,8 @@ import java.util.Locale; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import org.apache.harmony.security.asn1.BerInputStream; -import org.apache.harmony.security.pkcs7.ContentInfo; -import org.apache.harmony.security.pkcs7.SignedData; -import org.apache.harmony.security.pkcs7.SignerInfo; -import org.apache.harmony.security.x509.Certificate; +import sun.security.pkcs.PKCS7; +import sun.security.pkcs.SignerInfo; /** * RecoverySystem contains methods for interacting with the Android @@ -150,14 +147,13 @@ public class RecoverySystem { ProgressListener listener, File deviceCertsZipFile) throws IOException, GeneralSecurityException { - long fileLen = packageFile.length(); + final long fileLen = packageFile.length(); - RandomAccessFile raf = new RandomAccessFile(packageFile, "r"); + final RandomAccessFile raf = new RandomAccessFile(packageFile, "r"); try { - int lastPercent = 0; - long lastPublishTime = System.currentTimeMillis(); + final long startTimeMillis = System.currentTimeMillis(); if (listener != null) { - listener.onProgress(lastPercent); + listener.onProgress(0); } raf.seek(fileLen - 6); @@ -168,8 +164,8 @@ public class RecoverySystem { throw new SignatureException("no signature in file (no footer)"); } - int commentSize = (footer[4] & 0xff) | ((footer[5] & 0xff) << 8); - int signatureStart = (footer[0] & 0xff) | ((footer[1] & 0xff) << 8); + final int commentSize = (footer[4] & 0xff) | ((footer[5] & 0xff) << 8); + final int signatureStart = (footer[0] & 0xff) | ((footer[1] & 0xff) << 8); byte[] eocd = new byte[commentSize + 22]; raf.seek(fileLen - (commentSize + 22)); @@ -189,51 +185,30 @@ public class RecoverySystem { } } - // The following code is largely copied from - // JarUtils.verifySignature(). We could just *call* that - // method here if that function didn't read the entire - // input (ie, the whole OTA package) into memory just to - // compute its message digest. - - BerInputStream bis = new BerInputStream( - new ByteArrayInputStream(eocd, commentSize+22-signatureStart, signatureStart)); - ContentInfo info = (ContentInfo)ContentInfo.ASN1.decode(bis); - SignedData signedData = info.getSignedData(); - if (signedData == null) { - throw new IOException("signedData is null"); - } - List<Certificate> encCerts = signedData.getCertificates(); - if (encCerts.isEmpty()) { - throw new IOException("encCerts is empty"); - } + // Parse the signature + PKCS7 block = + new PKCS7(new ByteArrayInputStream(eocd, commentSize+22-signatureStart, signatureStart)); + // Take the first certificate from the signature (packages // should contain only one). - Iterator<Certificate> it = encCerts.iterator(); - X509Certificate cert = null; - if (it.hasNext()) { - CertificateFactory cf = CertificateFactory.getInstance("X.509"); - InputStream is = new ByteArrayInputStream(it.next().getEncoded()); - cert = (X509Certificate) cf.generateCertificate(is); - } else { + X509Certificate[] certificates = block.getCertificates(); + if (certificates == null || certificates.length == 0) { throw new SignatureException("signature contains no certificates"); } + X509Certificate cert = certificates[0]; + PublicKey signatureKey = cert.getPublicKey(); - List<SignerInfo> sigInfos = signedData.getSignerInfos(); - SignerInfo sigInfo; - if (!sigInfos.isEmpty()) { - sigInfo = (SignerInfo)sigInfos.get(0); - } else { - throw new IOException("no signer infos!"); + SignerInfo[] signerInfos = block.getSignerInfos(); + if (signerInfos == null || signerInfos.length == 0) { + throw new SignatureException("signature contains no signedData"); } + SignerInfo signerInfo = signerInfos[0]; // Check that the public key of the certificate contained // in the package equals one of our trusted public keys. - + boolean verified = false; HashSet<X509Certificate> trusted = getTrustedCerts( deviceCertsZipFile == null ? DEFAULT_KEYSTORE : deviceCertsZipFile); - - PublicKey signatureKey = cert.getPublicKey(); - boolean verified = false; for (X509Certificate c : trusted) { if (c.getPublicKey().equals(signatureKey)) { verified = true; @@ -246,61 +221,54 @@ public class RecoverySystem { // The signature cert matches a trusted key. Now verify that // the digest in the cert matches the actual file data. - - // The verifier in recovery only handles SHA1withRSA and - // SHA256withRSA signatures. SignApk chooses which to use - // based on the signature algorithm of the cert: - // - // "SHA256withRSA" cert -> "SHA256withRSA" signature - // "SHA1withRSA" cert -> "SHA1withRSA" signature - // "MD5withRSA" cert -> "SHA1withRSA" signature (for backwards compatibility) - // any other cert -> SignApk fails - // - // Here we ignore whatever the cert says, and instead use - // whatever algorithm is used by the signature. - - String da = sigInfo.getDigestAlgorithm(); - String dea = sigInfo.getDigestEncryptionAlgorithm(); - String alg = null; - if (da == null || dea == null) { - // fall back to the cert algorithm if the sig one - // doesn't look right. - alg = cert.getSigAlgName(); - } else { - alg = da + "with" + dea; - } - Signature sig = Signature.getInstance(alg); - sig.initVerify(cert); - - // The signature covers all of the OTA package except the - // archive comment and its 2-byte length. - long toRead = fileLen - commentSize - 2; - long soFar = 0; raf.seek(0); - byte[] buffer = new byte[4096]; - boolean interrupted = false; - while (soFar < toRead) { - interrupted = Thread.interrupted(); - if (interrupted) break; - int size = buffer.length; - if (soFar + size > toRead) { - size = (int)(toRead - soFar); + final ProgressListener listenerForInner = listener; + SignerInfo verifyResult = block.verify(signerInfo, new InputStream() { + // The signature covers all of the OTA package except the + // archive comment and its 2-byte length. + long toRead = fileLen - commentSize - 2; + long soFar = 0; + + int lastPercent = 0; + long lastPublishTime = startTimeMillis; + + @Override + public int read() throws IOException { + throw new UnsupportedOperationException(); } - int read = raf.read(buffer, 0, size); - sig.update(buffer, 0, read); - soFar += read; - - if (listener != null) { - long now = System.currentTimeMillis(); - int p = (int)(soFar * 100 / toRead); - if (p > lastPercent && - now - lastPublishTime > PUBLISH_PROGRESS_INTERVAL_MS) { - lastPercent = p; - lastPublishTime = now; - listener.onProgress(lastPercent); + + @Override + public int read(byte[] b, int off, int len) throws IOException { + if (soFar >= toRead) { + return -1; + } + if (Thread.currentThread().isInterrupted()) { + return -1; + } + + int size = len; + if (soFar + size > toRead) { + size = (int)(toRead - soFar); + } + int read = raf.read(b, off, size); + soFar += read; + + if (listenerForInner != null) { + long now = System.currentTimeMillis(); + int p = (int)(soFar * 100 / toRead); + if (p > lastPercent && + now - lastPublishTime > PUBLISH_PROGRESS_INTERVAL_MS) { + lastPercent = p; + lastPublishTime = now; + listenerForInner.onProgress(lastPercent); + } } + + return read; } - } + }); + + final boolean interrupted = Thread.interrupted(); if (listener != null) { listener.onProgress(100); } @@ -309,7 +277,7 @@ public class RecoverySystem { throw new SignatureException("verification was interrupted"); } - if (!sig.verify(sigInfo.getEncryptedDigest())) { + if (verifyResult == null) { throw new SignatureException("signature digest verification failed"); } } finally { diff --git a/core/java/android/security/net/config/DirectoryCertificateSource.java b/core/java/android/security/net/config/DirectoryCertificateSource.java index bf88e582999c..bf29efabb00a 100644 --- a/core/java/android/security/net/config/DirectoryCertificateSource.java +++ b/core/java/android/security/net/config/DirectoryCertificateSource.java @@ -32,6 +32,7 @@ import java.security.cert.X509Certificate; import java.util.Set; import libcore.io.IoUtils; +import com.android.org.conscrypt.Hex; import com.android.org.conscrypt.NativeCrypto; import javax.security.auth.x500.X500Principal; @@ -136,7 +137,7 @@ abstract class DirectoryCertificateSource implements CertificateSource { private String getHash(X500Principal name) { int hash = NativeCrypto.X509_NAME_hash_old(name); - return IntegralToString.intToHexString(hash, false, 8); + return Hex.intToHexString(hash, 8); } private X509Certificate readCertificate(String file) { diff --git a/core/java/android/util/jar/StrictJarFile.java b/core/java/android/util/jar/StrictJarFile.java new file mode 100644 index 000000000000..fd5780612649 --- /dev/null +++ b/core/java/android/util/jar/StrictJarFile.java @@ -0,0 +1,427 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package android.util.jar; + +import dalvik.system.CloseGuard; +import java.io.ByteArrayInputStream; +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.RandomAccessFile; +import java.security.cert.Certificate; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Set; +import java.util.zip.Inflater; +import java.util.zip.InflaterInputStream; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.jar.JarFile; +import java.util.jar.Manifest; +import libcore.io.IoUtils; +import libcore.io.Streams; + +/** + * A subset of the JarFile API implemented as a thin wrapper over + * system/core/libziparchive. + * + * @hide for internal use only. Not API compatible (or as forgiving) as + * {@link java.util.jar.JarFile} + */ +public final class StrictJarFile { + + private final long nativeHandle; + + // NOTE: It's possible to share a file descriptor with the native + // code, at the cost of some additional complexity. + private final RandomAccessFile raf; + + private final StrictJarManifest manifest; + private final StrictJarVerifier verifier; + + private final boolean isSigned; + + private final CloseGuard guard = CloseGuard.get(); + private boolean closed; + + public StrictJarFile(String fileName) throws IOException, SecurityException { + this.nativeHandle = nativeOpenJarFile(fileName); + this.raf = new RandomAccessFile(fileName, "r"); + + try { + // Read the MANIFEST and signature files up front and try to + // parse them. We never want to accept a JAR File with broken signatures + // or manifests, so it's best to throw as early as possible. + HashMap<String, byte[]> metaEntries = getMetaEntries(); + this.manifest = new StrictJarManifest(metaEntries.get(JarFile.MANIFEST_NAME), true); + this.verifier = new StrictJarVerifier(fileName, manifest, metaEntries); + Set<String> files = manifest.getEntries().keySet(); + for (String file : files) { + if (findEntry(file) == null) { + throw new SecurityException(fileName + ": File " + file + " in manifest does not exist"); + } + } + + isSigned = verifier.readCertificates() && verifier.isSignedJar(); + } catch (IOException | SecurityException e) { + nativeClose(this.nativeHandle); + IoUtils.closeQuietly(this.raf); + throw e; + } + + guard.open("close"); + } + + public StrictJarManifest getManifest() { + return manifest; + } + + public Iterator<ZipEntry> iterator() throws IOException { + return new EntryIterator(nativeHandle, ""); + } + + public ZipEntry findEntry(String name) { + return nativeFindEntry(nativeHandle, name); + } + + /** + * Return all certificate chains for a given {@link ZipEntry} belonging to this jar. + * This method MUST be called only after fully exhausting the InputStream belonging + * to this entry. + * + * Returns {@code null} if this jar file isn't signed or if this method is + * called before the stream is processed. + */ + public Certificate[][] getCertificateChains(ZipEntry ze) { + if (isSigned) { + return verifier.getCertificateChains(ze.getName()); + } + + return null; + } + + /** + * Return all certificates for a given {@link ZipEntry} belonging to this jar. + * This method MUST be called only after fully exhausting the InputStream belonging + * to this entry. + * + * Returns {@code null} if this jar file isn't signed or if this method is + * called before the stream is processed. + * + * @deprecated Switch callers to use getCertificateChains instead + */ + @Deprecated + public Certificate[] getCertificates(ZipEntry ze) { + if (isSigned) { + Certificate[][] certChains = verifier.getCertificateChains(ze.getName()); + + // Measure number of certs. + int count = 0; + for (Certificate[] chain : certChains) { + count += chain.length; + } + + // Create new array and copy all the certs into it. + Certificate[] certs = new Certificate[count]; + int i = 0; + for (Certificate[] chain : certChains) { + System.arraycopy(chain, 0, certs, i, chain.length); + i += chain.length; + } + + return certs; + } + + return null; + } + + public InputStream getInputStream(ZipEntry ze) { + final InputStream is = getZipInputStream(ze); + + if (isSigned) { + StrictJarVerifier.VerifierEntry entry = verifier.initEntry(ze.getName()); + if (entry == null) { + return is; + } + + return new JarFileInputStream(is, ze.getSize(), entry); + } + + return is; + } + + public void close() throws IOException { + if (!closed) { + guard.close(); + + nativeClose(nativeHandle); + IoUtils.closeQuietly(raf); + closed = true; + } + } + + private InputStream getZipInputStream(ZipEntry ze) { + if (ze.getMethod() == ZipEntry.STORED) { + return new RAFStream(raf, ze.getDataOffset(), + ze.getDataOffset() + ze.getSize()); + } else { + final RAFStream wrapped = new RAFStream( + raf, ze.getDataOffset(), ze.getDataOffset() + ze.getCompressedSize()); + + int bufSize = Math.max(1024, (int) Math.min(ze.getSize(), 65535L)); + return new ZipInflaterInputStream(wrapped, new Inflater(true), bufSize, ze); + } + } + + static final class EntryIterator implements Iterator<ZipEntry> { + private final long iterationHandle; + private ZipEntry nextEntry; + + EntryIterator(long nativeHandle, String prefix) throws IOException { + iterationHandle = nativeStartIteration(nativeHandle, prefix); + } + + public ZipEntry next() { + if (nextEntry != null) { + final ZipEntry ze = nextEntry; + nextEntry = null; + return ze; + } + + return nativeNextEntry(iterationHandle); + } + + public boolean hasNext() { + if (nextEntry != null) { + return true; + } + + final ZipEntry ze = nativeNextEntry(iterationHandle); + if (ze == null) { + return false; + } + + nextEntry = ze; + return true; + } + + public void remove() { + throw new UnsupportedOperationException(); + } + } + + private HashMap<String, byte[]> getMetaEntries() throws IOException { + HashMap<String, byte[]> metaEntries = new HashMap<String, byte[]>(); + + Iterator<ZipEntry> entryIterator = new EntryIterator(nativeHandle, "META-INF/"); + while (entryIterator.hasNext()) { + final ZipEntry entry = entryIterator.next(); + metaEntries.put(entry.getName(), Streams.readFully(getInputStream(entry))); + } + + return metaEntries; + } + + static final class JarFileInputStream extends FilterInputStream { + private final StrictJarVerifier.VerifierEntry entry; + + private long count; + private boolean done = false; + + JarFileInputStream(InputStream is, long size, StrictJarVerifier.VerifierEntry e) { + super(is); + entry = e; + + count = size; + } + + @Override + public int read() throws IOException { + if (done) { + return -1; + } + if (count > 0) { + int r = super.read(); + if (r != -1) { + entry.write(r); + count--; + } else { + count = 0; + } + if (count == 0) { + done = true; + entry.verify(); + } + return r; + } else { + done = true; + entry.verify(); + return -1; + } + } + + @Override + public int read(byte[] buffer, int byteOffset, int byteCount) throws IOException { + if (done) { + return -1; + } + if (count > 0) { + int r = super.read(buffer, byteOffset, byteCount); + if (r != -1) { + int size = r; + if (count < size) { + size = (int) count; + } + entry.write(buffer, byteOffset, size); + count -= size; + } else { + count = 0; + } + if (count == 0) { + done = true; + entry.verify(); + } + return r; + } else { + done = true; + entry.verify(); + return -1; + } + } + + @Override + public int available() throws IOException { + if (done) { + return 0; + } + return super.available(); + } + + @Override + public long skip(long byteCount) throws IOException { + return Streams.skipByReading(this, byteCount); + } + } + + /** @hide */ + public static class ZipInflaterInputStream extends InflaterInputStream { + private final ZipEntry entry; + private long bytesRead = 0; + + public ZipInflaterInputStream(InputStream is, Inflater inf, int bsize, ZipEntry entry) { + super(is, inf, bsize); + this.entry = entry; + } + + @Override public int read(byte[] buffer, int byteOffset, int byteCount) throws IOException { + final int i; + try { + i = super.read(buffer, byteOffset, byteCount); + } catch (IOException e) { + throw new IOException("Error reading data for " + entry.getName() + " near offset " + + bytesRead, e); + } + if (i == -1) { + if (entry.getSize() != bytesRead) { + throw new IOException("Size mismatch on inflated file: " + bytesRead + " vs " + + entry.getSize()); + } + } else { + bytesRead += i; + } + return i; + } + + @Override public int available() throws IOException { + if (closed) { + // Our superclass will throw an exception, but there's a jtreg test that + // explicitly checks that the InputStream returned from ZipFile.getInputStream + // returns 0 even when closed. + return 0; + } + return super.available() == 0 ? 0 : (int) (entry.getSize() - bytesRead); + } + } + + /** + * Wrap a stream around a RandomAccessFile. The RandomAccessFile is shared + * among all streams returned by getInputStream(), so we have to synchronize + * access to it. (We can optimize this by adding buffering here to reduce + * collisions.) + * + * <p>We could support mark/reset, but we don't currently need them. + * + * @hide + */ + public static class RAFStream extends InputStream { + private final RandomAccessFile sharedRaf; + private long endOffset; + private long offset; + + + public RAFStream(RandomAccessFile raf, long initialOffset, long endOffset) { + sharedRaf = raf; + offset = initialOffset; + this.endOffset = endOffset; + } + + public RAFStream(RandomAccessFile raf, long initialOffset) throws IOException { + this(raf, initialOffset, raf.length()); + } + + @Override public int available() throws IOException { + return (offset < endOffset ? 1 : 0); + } + + @Override public int read() throws IOException { + return Streams.readSingleByte(this); + } + + @Override public int read(byte[] buffer, int byteOffset, int byteCount) throws IOException { + synchronized (sharedRaf) { + final long length = endOffset - offset; + if (byteCount > length) { + byteCount = (int) length; + } + sharedRaf.seek(offset); + int count = sharedRaf.read(buffer, byteOffset, byteCount); + if (count > 0) { + offset += count; + return count; + } else { + return -1; + } + } + } + + @Override public long skip(long byteCount) throws IOException { + if (byteCount > endOffset - offset) { + byteCount = endOffset - offset; + } + offset += byteCount; + return byteCount; + } + } + + + private static native long nativeOpenJarFile(String fileName) throws IOException; + private static native long nativeStartIteration(long nativeHandle, String prefix); + private static native ZipEntry nativeNextEntry(long iterationHandle); + private static native ZipEntry nativeFindEntry(long nativeHandle, String entryName); + private static native void nativeClose(long nativeHandle); +} diff --git a/core/java/android/util/jar/StrictJarManifest.java b/core/java/android/util/jar/StrictJarManifest.java new file mode 100644 index 000000000000..dbb466cd1760 --- /dev/null +++ b/core/java/android/util/jar/StrictJarManifest.java @@ -0,0 +1,315 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.util.jar; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.CharsetEncoder; +import java.nio.charset.CoderResult; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.jar.Attributes; +import libcore.io.Streams; + +/** + * The {@code StrictJarManifest} class is used to obtain attribute information for a + * {@code StrictJarFile} and its entries. + * + * @hide + */ +public class StrictJarManifest implements Cloneable { + static final int LINE_LENGTH_LIMIT = 72; + + private static final byte[] LINE_SEPARATOR = new byte[] { '\r', '\n' }; + + private static final byte[] VALUE_SEPARATOR = new byte[] { ':', ' ' }; + + private final Attributes mainAttributes; + private final HashMap<String, Attributes> entries; + + static final class Chunk { + final int start; + final int end; + + Chunk(int start, int end) { + this.start = start; + this.end = end; + } + } + + private HashMap<String, Chunk> chunks; + + /** + * The end of the main attributes section in the manifest is needed in + * verification. + */ + private int mainEnd; + + /** + * Creates a new {@code StrictJarManifest} instance. + */ + public StrictJarManifest() { + entries = new HashMap<String, Attributes>(); + mainAttributes = new Attributes(); + } + + /** + * Creates a new {@code StrictJarManifest} instance using the attributes obtained + * from the input stream. + * + * @param is + * {@code InputStream} to parse for attributes. + * @throws IOException + * if an IO error occurs while creating this {@code StrictJarManifest} + */ + public StrictJarManifest(InputStream is) throws IOException { + this(); + read(Streams.readFully(is)); + } + + /** + * Creates a new {@code StrictJarManifest} instance. The new instance will have the + * same attributes as those found in the parameter {@code StrictJarManifest}. + * + * @param man + * {@code StrictJarManifest} instance to obtain attributes from. + */ + @SuppressWarnings("unchecked") + public StrictJarManifest(StrictJarManifest man) { + mainAttributes = (Attributes) man.mainAttributes.clone(); + entries = (HashMap<String, Attributes>) ((HashMap<String, Attributes>) man + .getEntries()).clone(); + } + + StrictJarManifest(byte[] manifestBytes, boolean readChunks) throws IOException { + this(); + if (readChunks) { + chunks = new HashMap<String, Chunk>(); + } + read(manifestBytes); + } + + /** + * Resets the both the main attributes as well as the entry attributes + * associated with this {@code StrictJarManifest}. + */ + public void clear() { + entries.clear(); + mainAttributes.clear(); + } + + /** + * Returns the {@code Attributes} associated with the parameter entry + * {@code name}. + * + * @param name + * the name of the entry to obtain {@code Attributes} from. + * @return the Attributes for the entry or {@code null} if the entry does + * not exist. + */ + public Attributes getAttributes(String name) { + return getEntries().get(name); + } + + /** + * Returns a map containing the {@code Attributes} for each entry in the + * {@code StrictJarManifest}. + * + * @return the map of entry attributes. + */ + public Map<String, Attributes> getEntries() { + return entries; + } + + /** + * Returns the main {@code Attributes} of the {@code JarFile}. + * + * @return main {@code Attributes} associated with the source {@code + * JarFile}. + */ + public Attributes getMainAttributes() { + return mainAttributes; + } + + /** + * Creates a copy of this {@code StrictJarManifest}. The returned {@code StrictJarManifest} + * will equal the {@code StrictJarManifest} from which it was cloned. + * + * @return a copy of this instance. + */ + @Override + public Object clone() { + return new StrictJarManifest(this); + } + + /** + * Writes this {@code StrictJarManifest}'s name/attributes pairs to the given {@code OutputStream}. + * The {@code MANIFEST_VERSION} or {@code SIGNATURE_VERSION} attribute must be set before + * calling this method, or no attributes will be written. + * + * @throws IOException + * If an error occurs writing the {@code StrictJarManifest}. + */ + public void write(OutputStream os) throws IOException { + write(this, os); + } + + /** + * Merges name/attribute pairs read from the input stream {@code is} into this manifest. + * + * @param is + * The {@code InputStream} to read from. + * @throws IOException + * If an error occurs reading the manifest. + */ + public void read(InputStream is) throws IOException { + read(Streams.readFullyNoClose(is)); + } + + private void read(byte[] buf) throws IOException { + if (buf.length == 0) { + return; + } + + StrictJarManifestReader im = new StrictJarManifestReader(buf, mainAttributes); + mainEnd = im.getEndOfMainSection(); + im.readEntries(entries, chunks); + } + + /** + * Returns the hash code for this instance. + * + * @return this {@code StrictJarManifest}'s hashCode. + */ + @Override + public int hashCode() { + return mainAttributes.hashCode() ^ getEntries().hashCode(); + } + + /** + * Determines if the receiver is equal to the parameter object. Two {@code + * StrictJarManifest}s are equal if they have identical main attributes as well as + * identical entry attributes. + * + * @param o + * the object to compare against. + * @return {@code true} if the manifests are equal, {@code false} otherwise + */ + @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + if (o.getClass() != this.getClass()) { + return false; + } + if (!mainAttributes.equals(((StrictJarManifest) o).mainAttributes)) { + return false; + } + return getEntries().equals(((StrictJarManifest) o).getEntries()); + } + + Chunk getChunk(String name) { + return chunks.get(name); + } + + void removeChunks() { + chunks = null; + } + + int getMainAttributesEnd() { + return mainEnd; + } + + /** + * Writes out the attribute information of the specified manifest to the + * specified {@code OutputStream} + * + * @param manifest + * the manifest to write out. + * @param out + * The {@code OutputStream} to write to. + * @throws IOException + * If an error occurs writing the {@code StrictJarManifest}. + */ + static void write(StrictJarManifest manifest, OutputStream out) throws IOException { + CharsetEncoder encoder = StandardCharsets.UTF_8.newEncoder(); + ByteBuffer buffer = ByteBuffer.allocate(LINE_LENGTH_LIMIT); + + Attributes.Name versionName = Attributes.Name.MANIFEST_VERSION; + String version = manifest.mainAttributes.getValue(versionName); + if (version == null) { + versionName = Attributes.Name.SIGNATURE_VERSION; + version = manifest.mainAttributes.getValue(versionName); + } + if (version != null) { + writeEntry(out, versionName, version, encoder, buffer); + Iterator<?> entries = manifest.mainAttributes.keySet().iterator(); + while (entries.hasNext()) { + Attributes.Name name = (Attributes.Name) entries.next(); + if (!name.equals(versionName)) { + writeEntry(out, name, manifest.mainAttributes.getValue(name), encoder, buffer); + } + } + } + out.write(LINE_SEPARATOR); + Iterator<String> i = manifest.getEntries().keySet().iterator(); + while (i.hasNext()) { + String key = i.next(); + writeEntry(out, Attributes.Name.NAME, key, encoder, buffer); + Attributes attributes = manifest.entries.get(key); + Iterator<?> entries = attributes.keySet().iterator(); + while (entries.hasNext()) { + Attributes.Name name = (Attributes.Name) entries.next(); + writeEntry(out, name, attributes.getValue(name), encoder, buffer); + } + out.write(LINE_SEPARATOR); + } + } + + private static void writeEntry(OutputStream os, Attributes.Name name, + String value, CharsetEncoder encoder, ByteBuffer bBuf) throws IOException { + String nameString = name.toString(); + os.write(nameString.getBytes(StandardCharsets.US_ASCII)); + os.write(VALUE_SEPARATOR); + + encoder.reset(); + bBuf.clear().limit(LINE_LENGTH_LIMIT - nameString.length() - 2); + + CharBuffer cBuf = CharBuffer.wrap(value); + + while (true) { + CoderResult r = encoder.encode(cBuf, bBuf, true); + if (CoderResult.UNDERFLOW == r) { + r = encoder.flush(bBuf); + } + os.write(bBuf.array(), bBuf.arrayOffset(), bBuf.position()); + os.write(LINE_SEPARATOR); + if (CoderResult.UNDERFLOW == r) { + break; + } + os.write(' '); + bBuf.clear().limit(LINE_LENGTH_LIMIT - 1); + } + } +} diff --git a/core/java/android/util/jar/StrictJarManifestReader.java b/core/java/android/util/jar/StrictJarManifestReader.java new file mode 100644 index 000000000000..9881bb003d03 --- /dev/null +++ b/core/java/android/util/jar/StrictJarManifestReader.java @@ -0,0 +1,184 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.util.jar; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; +import java.util.jar.Attributes; + +/** + * Reads a JAR file manifest. The specification is here: + * http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html + */ +class StrictJarManifestReader { + // There are relatively few unique attribute names, + // but a manifest might have thousands of entries. + private final HashMap<String, Attributes.Name> attributeNameCache = new HashMap<String, Attributes.Name>(); + + private final ByteArrayOutputStream valueBuffer = new ByteArrayOutputStream(80); + + private final byte[] buf; + + private final int endOfMainSection; + + private int pos; + + private Attributes.Name name; + + private String value; + + private int consecutiveLineBreaks = 0; + + public StrictJarManifestReader(byte[] buf, Attributes main) throws IOException { + this.buf = buf; + while (readHeader()) { + main.put(name, value); + } + this.endOfMainSection = pos; + } + + public void readEntries(Map<String, Attributes> entries, Map<String, StrictJarManifest.Chunk> chunks) throws IOException { + int mark = pos; + while (readHeader()) { + if (!Attributes.Name.NAME.equals(name)) { + throw new IOException("Entry is not named"); + } + String entryNameValue = value; + + Attributes entry = entries.get(entryNameValue); + if (entry == null) { + entry = new Attributes(12); + } + + while (readHeader()) { + entry.put(name, value); + } + + if (chunks != null) { + if (chunks.get(entryNameValue) != null) { + // TODO A bug: there might be several verification chunks for + // the same name. I believe they should be used to update + // signature in order of appearance; there are two ways to fix + // this: either use a list of chunks, or decide on used + // signature algorithm in advance and reread the chunks while + // updating the signature; for now a defensive error is thrown + throw new IOException("A jar verifier does not support more than one entry with the same name"); + } + chunks.put(entryNameValue, new StrictJarManifest.Chunk(mark, pos)); + mark = pos; + } + + entries.put(entryNameValue, entry); + } + } + + public int getEndOfMainSection() { + return endOfMainSection; + } + + /** + * Read a single line from the manifest buffer. + */ + private boolean readHeader() throws IOException { + if (consecutiveLineBreaks > 1) { + // break a section on an empty line + consecutiveLineBreaks = 0; + return false; + } + readName(); + consecutiveLineBreaks = 0; + readValue(); + // if the last line break is missed, the line + // is ignored by the reference implementation + return consecutiveLineBreaks > 0; + } + + private void readName() throws IOException { + int mark = pos; + + while (pos < buf.length) { + if (buf[pos++] != ':') { + continue; + } + + String nameString = new String(buf, mark, pos - mark - 1, StandardCharsets.US_ASCII); + + if (buf[pos++] != ' ') { + throw new IOException(String.format("Invalid value for attribute '%s'", nameString)); + } + + try { + name = attributeNameCache.get(nameString); + if (name == null) { + name = new Attributes.Name(nameString); + attributeNameCache.put(nameString, name); + } + } catch (IllegalArgumentException e) { + // new Attributes.Name() throws IllegalArgumentException but we declare IOException + throw new IOException(e.getMessage()); + } + return; + } + } + + private void readValue() throws IOException { + boolean lastCr = false; + int mark = pos; + int last = pos; + valueBuffer.reset(); + while (pos < buf.length) { + byte next = buf[pos++]; + switch (next) { + case 0: + throw new IOException("NUL character in a manifest"); + case '\n': + if (lastCr) { + lastCr = false; + } else { + consecutiveLineBreaks++; + } + continue; + case '\r': + lastCr = true; + consecutiveLineBreaks++; + continue; + case ' ': + if (consecutiveLineBreaks == 1) { + valueBuffer.write(buf, mark, last - mark); + mark = pos; + consecutiveLineBreaks = 0; + continue; + } + } + + if (consecutiveLineBreaks >= 1) { + pos--; + break; + } + last = pos; + } + + valueBuffer.write(buf, mark, last - mark); + // A bit frustrating that that Charset.forName will be called + // again. + value = valueBuffer.toString(StandardCharsets.UTF_8.name()); + } +} diff --git a/core/java/android/util/jar/StrictJarVerifier.java b/core/java/android/util/jar/StrictJarVerifier.java new file mode 100644 index 000000000000..ca2aec105bcf --- /dev/null +++ b/core/java/android/util/jar/StrictJarVerifier.java @@ -0,0 +1,456 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.util.jar; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.security.GeneralSecurityException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.cert.Certificate; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Locale; +import java.util.Map; +import java.util.jar.Attributes; +import java.util.jar.JarFile; +import libcore.io.Base64; +import sun.security.jca.Providers; +import sun.security.pkcs.PKCS7; + +/** + * Non-public class used by {@link JarFile} and {@link JarInputStream} to manage + * the verification of signed JARs. {@code JarFile} and {@code JarInputStream} + * objects are expected to have a {@code JarVerifier} instance member which + * can be used to carry out the tasks associated with verifying a signed JAR. + * These tasks would typically include: + * <ul> + * <li>verification of all signed signature files + * <li>confirmation that all signed data was signed only by the party or parties + * specified in the signature block data + * <li>verification that the contents of all signature files (i.e. {@code .SF} + * files) agree with the JAR entries information found in the JAR manifest. + * </ul> + */ +class StrictJarVerifier { + /** + * List of accepted digest algorithms. This list is in order from most + * preferred to least preferred. + */ + private static final String[] DIGEST_ALGORITHMS = new String[] { + "SHA-512", + "SHA-384", + "SHA-256", + "SHA1", + }; + + private final String jarName; + private final StrictJarManifest manifest; + private final HashMap<String, byte[]> metaEntries; + private final int mainAttributesEnd; + + private final Hashtable<String, HashMap<String, Attributes>> signatures = + new Hashtable<String, HashMap<String, Attributes>>(5); + + private final Hashtable<String, Certificate[]> certificates = + new Hashtable<String, Certificate[]>(5); + + private final Hashtable<String, Certificate[][]> verifiedEntries = + new Hashtable<String, Certificate[][]>(); + + /** + * Stores and a hash and a message digest and verifies that massage digest + * matches the hash. + */ + static class VerifierEntry extends OutputStream { + + private final String name; + + private final MessageDigest digest; + + private final byte[] hash; + + private final Certificate[][] certChains; + + private final Hashtable<String, Certificate[][]> verifiedEntries; + + VerifierEntry(String name, MessageDigest digest, byte[] hash, + Certificate[][] certChains, Hashtable<String, Certificate[][]> verifedEntries) { + this.name = name; + this.digest = digest; + this.hash = hash; + this.certChains = certChains; + this.verifiedEntries = verifedEntries; + } + + /** + * Updates a digest with one byte. + */ + @Override + public void write(int value) { + digest.update((byte) value); + } + + /** + * Updates a digest with byte array. + */ + @Override + public void write(byte[] buf, int off, int nbytes) { + digest.update(buf, off, nbytes); + } + + /** + * Verifies that the digests stored in the manifest match the decrypted + * digests from the .SF file. This indicates the validity of the + * signing, not the integrity of the file, as its digest must be + * calculated and verified when its contents are read. + * + * @throws SecurityException + * if the digest value stored in the manifest does <i>not</i> + * agree with the decrypted digest as recovered from the + * <code>.SF</code> file. + */ + void verify() { + byte[] d = digest.digest(); + if (!MessageDigest.isEqual(d, Base64.decode(hash))) { + throw invalidDigest(JarFile.MANIFEST_NAME, name, name); + } + verifiedEntries.put(name, certChains); + } + } + + private static SecurityException invalidDigest(String signatureFile, String name, + String jarName) { + throw new SecurityException(signatureFile + " has invalid digest for " + name + + " in " + jarName); + } + + private static SecurityException failedVerification(String jarName, String signatureFile) { + throw new SecurityException(jarName + " failed verification of " + signatureFile); + } + + private static SecurityException failedVerification(String jarName, String signatureFile, + Throwable e) { + throw new SecurityException(jarName + " failed verification of " + signatureFile, e); + } + + + /** + * Constructs and returns a new instance of {@code JarVerifier}. + * + * @param name + * the name of the JAR file being verified. + */ + StrictJarVerifier(String name, StrictJarManifest manifest, + HashMap<String, byte[]> metaEntries) { + jarName = name; + this.manifest = manifest; + this.metaEntries = metaEntries; + this.mainAttributesEnd = manifest.getMainAttributesEnd(); + } + + /** + * Invoked for each new JAR entry read operation from the input + * stream. This method constructs and returns a new {@link VerifierEntry} + * which contains the certificates used to sign the entry and its hash value + * as specified in the JAR MANIFEST format. + * + * @param name + * the name of an entry in a JAR file which is <b>not</b> in the + * {@code META-INF} directory. + * @return a new instance of {@link VerifierEntry} which can be used by + * callers as an {@link OutputStream}. + */ + VerifierEntry initEntry(String name) { + // If no manifest is present by the time an entry is found, + // verification cannot occur. If no signature files have + // been found, do not verify. + if (manifest == null || signatures.isEmpty()) { + return null; + } + + Attributes attributes = manifest.getAttributes(name); + // entry has no digest + if (attributes == null) { + return null; + } + + ArrayList<Certificate[]> certChains = new ArrayList<Certificate[]>(); + Iterator<Map.Entry<String, HashMap<String, Attributes>>> it = signatures.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry<String, HashMap<String, Attributes>> entry = it.next(); + HashMap<String, Attributes> hm = entry.getValue(); + if (hm.get(name) != null) { + // Found an entry for entry name in .SF file + String signatureFile = entry.getKey(); + Certificate[] certChain = certificates.get(signatureFile); + if (certChain != null) { + certChains.add(certChain); + } + } + } + + // entry is not signed + if (certChains.isEmpty()) { + return null; + } + Certificate[][] certChainsArray = certChains.toArray(new Certificate[certChains.size()][]); + + for (int i = 0; i < DIGEST_ALGORITHMS.length; i++) { + final String algorithm = DIGEST_ALGORITHMS[i]; + final String hash = attributes.getValue(algorithm + "-Digest"); + if (hash == null) { + continue; + } + byte[] hashBytes = hash.getBytes(StandardCharsets.ISO_8859_1); + + try { + return new VerifierEntry(name, MessageDigest.getInstance(algorithm), hashBytes, + certChainsArray, verifiedEntries); + } catch (NoSuchAlgorithmException ignored) { + } + } + return null; + } + + /** + * Add a new meta entry to the internal collection of data held on each JAR + * entry in the {@code META-INF} directory including the manifest + * file itself. Files associated with the signing of a JAR would also be + * added to this collection. + * + * @param name + * the name of the file located in the {@code META-INF} + * directory. + * @param buf + * the file bytes for the file called {@code name}. + * @see #removeMetaEntries() + */ + void addMetaEntry(String name, byte[] buf) { + metaEntries.put(name.toUpperCase(Locale.US), buf); + } + + /** + * If the associated JAR file is signed, check on the validity of all of the + * known signatures. + * + * @return {@code true} if the associated JAR is signed and an internal + * check verifies the validity of the signature(s). {@code false} if + * the associated JAR file has no entries at all in its {@code + * META-INF} directory. This situation is indicative of an invalid + * JAR file. + * <p> + * Will also return {@code true} if the JAR file is <i>not</i> + * signed. + * @throws SecurityException + * if the JAR file is signed and it is determined that a + * signature block file contains an invalid signature for the + * corresponding signature file. + */ + synchronized boolean readCertificates() { + if (metaEntries.isEmpty()) { + return false; + } + + Iterator<String> it = metaEntries.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.endsWith(".DSA") || key.endsWith(".RSA") || key.endsWith(".EC")) { + verifyCertificate(key); + it.remove(); + } + } + return true; + } + + /** + * Verifies that the signature computed from {@code sfBytes} matches + * that specified in {@code blockBytes} (which is a PKCS7 block). Returns + * certificates listed in the PKCS7 block. Throws a {@code GeneralSecurityException} + * if something goes wrong during verification. + */ + static Certificate[] verifyBytes(byte[] blockBytes, byte[] sfBytes) + throws GeneralSecurityException { + + Object obj = null; + try { + + obj = Providers.startJarVerification(); + PKCS7 block = new PKCS7(blockBytes); + if (block.verify(sfBytes) == null) { + throw new GeneralSecurityException("Failed to verify signature"); + } + X509Certificate[] blockCerts = block.getCertificates(); + Certificate[] signerCertChain = null; + if (blockCerts != null) { + signerCertChain = new Certificate[blockCerts.length]; + for (int i = 0; i < blockCerts.length; ++i) { + signerCertChain[i] = blockCerts[i]; + } + } + return signerCertChain; + } catch (IOException e) { + throw new GeneralSecurityException("IO exception verifying jar cert", e); + } finally { + Providers.stopJarVerification(obj); + } + } + + /** + * @param certFile + */ + private void verifyCertificate(String certFile) { + // Found Digital Sig, .SF should already have been read + String signatureFile = certFile.substring(0, certFile.lastIndexOf('.')) + ".SF"; + byte[] sfBytes = metaEntries.get(signatureFile); + if (sfBytes == null) { + return; + } + + byte[] manifestBytes = metaEntries.get(JarFile.MANIFEST_NAME); + // Manifest entry is required for any verifications. + if (manifestBytes == null) { + return; + } + + byte[] sBlockBytes = metaEntries.get(certFile); + try { + Certificate[] signerCertChain = verifyBytes(sBlockBytes, sfBytes); + if (signerCertChain != null) { + certificates.put(signatureFile, signerCertChain); + } + } catch (GeneralSecurityException e) { + throw failedVerification(jarName, signatureFile, e); + } + + // Verify manifest hash in .sf file + Attributes attributes = new Attributes(); + HashMap<String, Attributes> entries = new HashMap<String, Attributes>(); + try { + StrictJarManifestReader im = new StrictJarManifestReader(sfBytes, attributes); + im.readEntries(entries, null); + } catch (IOException e) { + return; + } + + // Do we actually have any signatures to look at? + if (attributes.get(Attributes.Name.SIGNATURE_VERSION) == null) { + return; + } + + boolean createdBySigntool = false; + String createdBy = attributes.getValue("Created-By"); + if (createdBy != null) { + createdBySigntool = createdBy.indexOf("signtool") != -1; + } + + // Use .SF to verify the mainAttributes of the manifest + // If there is no -Digest-Manifest-Main-Attributes entry in .SF + // file, such as those created before java 1.5, then we ignore + // such verification. + if (mainAttributesEnd > 0 && !createdBySigntool) { + String digestAttribute = "-Digest-Manifest-Main-Attributes"; + if (!verify(attributes, digestAttribute, manifestBytes, 0, mainAttributesEnd, false, true)) { + throw failedVerification(jarName, signatureFile); + } + } + + // Use .SF to verify the whole manifest. + String digestAttribute = createdBySigntool ? "-Digest" : "-Digest-Manifest"; + if (!verify(attributes, digestAttribute, manifestBytes, 0, manifestBytes.length, false, false)) { + Iterator<Map.Entry<String, Attributes>> it = entries.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry<String, Attributes> entry = it.next(); + StrictJarManifest.Chunk chunk = manifest.getChunk(entry.getKey()); + if (chunk == null) { + return; + } + if (!verify(entry.getValue(), "-Digest", manifestBytes, + chunk.start, chunk.end, createdBySigntool, false)) { + throw invalidDigest(signatureFile, entry.getKey(), jarName); + } + } + } + metaEntries.put(signatureFile, null); + signatures.put(signatureFile, entries); + } + + /** + * Returns a <code>boolean</code> indication of whether or not the + * associated jar file is signed. + * + * @return {@code true} if the JAR is signed, {@code false} + * otherwise. + */ + boolean isSignedJar() { + return certificates.size() > 0; + } + + private boolean verify(Attributes attributes, String entry, byte[] data, + int start, int end, boolean ignoreSecondEndline, boolean ignorable) { + for (int i = 0; i < DIGEST_ALGORITHMS.length; i++) { + String algorithm = DIGEST_ALGORITHMS[i]; + String hash = attributes.getValue(algorithm + entry); + if (hash == null) { + continue; + } + + MessageDigest md; + try { + md = MessageDigest.getInstance(algorithm); + } catch (NoSuchAlgorithmException e) { + continue; + } + if (ignoreSecondEndline && data[end - 1] == '\n' && data[end - 2] == '\n') { + md.update(data, start, end - 1 - start); + } else { + md.update(data, start, end - start); + } + byte[] b = md.digest(); + byte[] hashBytes = hash.getBytes(StandardCharsets.ISO_8859_1); + return MessageDigest.isEqual(b, Base64.decode(hashBytes)); + } + return ignorable; + } + + /** + * Returns all of the {@link java.security.cert.Certificate} chains that + * were used to verify the signature on the JAR entry called + * {@code name}. Callers must not modify the returned arrays. + * + * @param name + * the name of a JAR entry. + * @return an array of {@link java.security.cert.Certificate} chains. + */ + Certificate[][] getCertificateChains(String name) { + return verifiedEntries.get(name); + } + + /** + * Remove all entries from the internal collection of data held about each + * JAR entry in the {@code META-INF} directory. + */ + void removeMetaEntries() { + metaEntries.clear(); + } +} diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java index 8186378bfb6f..d23f26d675c4 100644 --- a/core/java/com/android/internal/os/Zygote.java +++ b/core/java/com/android/internal/os/Zygote.java @@ -145,8 +145,9 @@ public final class Zygote { native private static int nativeForkSystemServer(int uid, int gid, int[] gids, int debugFlags, int[][] rlimits, long permittedCapabilities, long effectiveCapabilities); - private static void callPostForkChildHooks(int debugFlags, String instructionSet) { - VM_HOOKS.postForkChild(debugFlags, instructionSet); + private static void callPostForkChildHooks(int debugFlags, boolean isSystemServer, + String instructionSet) { + VM_HOOKS.postForkChild(debugFlags, isSystemServer, instructionSet); } diff --git a/core/java/com/android/internal/util/HexDump.java b/core/java/com/android/internal/util/HexDump.java index 3c7b7acc9f4a..7be95d89dcf9 100644 --- a/core/java/com/android/internal/util/HexDump.java +++ b/core/java/com/android/internal/util/HexDump.java @@ -19,28 +19,29 @@ package com.android.internal.util; public class HexDump { private final static char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; - + private final static char[] HEX_LOWER_CASE_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; + public static String dumpHexString(byte[] array) { return dumpHexString(array, 0, array.length); } - + public static String dumpHexString(byte[] array, int offset, int length) { StringBuilder result = new StringBuilder(); - + byte[] line = new byte[16]; int lineIndex = 0; - + result.append("\n0x"); result.append(toHexString(offset)); - + for (int i = offset ; i < offset + length ; i++) { if (lineIndex == 16) { result.append(" "); - + for (int j = 0 ; j < 16 ; j++) { if (line[j] > ' ' && line[j] < '~') @@ -52,20 +53,20 @@ public class HexDump result.append("."); } } - + result.append("\n0x"); result.append(toHexString(i)); lineIndex = 0; } - + byte b = array[i]; result.append(" "); result.append(HEX_DIGITS[(b >>> 4) & 0x0F]); result.append(HEX_DIGITS[b & 0x0F]); - + line[lineIndex++] = b; } - + if (lineIndex != 16) { int count = (16 - lineIndex) * 3; @@ -74,7 +75,7 @@ public class HexDump { result.append(" "); } - + for (int i = 0 ; i < lineIndex ; i++) { if (line[i] > ' ' && line[i] < '~') @@ -87,10 +88,10 @@ public class HexDump } } } - + return result.toString(); } - + public static String toHexString(byte b) { return toHexString(toByteArray(b)); @@ -98,48 +99,59 @@ public class HexDump public static String toHexString(byte[] array) { - return toHexString(array, 0, array.length); + return toHexString(array, 0, array.length, true); + } + + public static String toHexString(byte[] array, boolean upperCase) + { + return toHexString(array, 0, array.length, upperCase); } - + public static String toHexString(byte[] array, int offset, int length) { + return toHexString(array, offset, length, true); + } + + public static String toHexString(byte[] array, int offset, int length, boolean upperCase) + { + char[] digits = upperCase ? HEX_DIGITS : HEX_LOWER_CASE_DIGITS; char[] buf = new char[length * 2]; int bufIndex = 0; - for (int i = offset ; i < offset + length; i++) + for (int i = offset ; i < offset + length; i++) { byte b = array[i]; - buf[bufIndex++] = HEX_DIGITS[(b >>> 4) & 0x0F]; - buf[bufIndex++] = HEX_DIGITS[b & 0x0F]; + buf[bufIndex++] = digits[(b >>> 4) & 0x0F]; + buf[bufIndex++] = digits[b & 0x0F]; } - return new String(buf); + return new String(buf); } - + public static String toHexString(int i) { return toHexString(toByteArray(i)); } - + public static byte[] toByteArray(byte b) { byte[] array = new byte[1]; array[0] = b; return array; } - + public static byte[] toByteArray(int i) { byte[] array = new byte[4]; - + array[3] = (byte)(i & 0xFF); array[2] = (byte)((i >> 8) & 0xFF); array[1] = (byte)((i >> 16) & 0xFF); array[0] = (byte)((i >> 24) & 0xFF); - + return array; } - + private static int toByte(char c) { if (c >= '0' && c <= '9') return (c - '0'); @@ -148,7 +160,7 @@ public class HexDump throw new RuntimeException ("Invalid hex char '" + c + "'"); } - + public static byte[] hexStringToByteArray(String hexString) { int length = hexString.length(); @@ -158,7 +170,15 @@ public class HexDump { buffer[i / 2] = (byte)((toByte(hexString.charAt(i)) << 4) | toByte(hexString.charAt(i+1))); } - + return buffer; - } + } + + public static StringBuilder appendByteAsHex(StringBuilder sb, byte b, boolean upperCase) { + char[] digits = upperCase ? HEX_DIGITS : HEX_LOWER_CASE_DIGITS; + sb.append(digits[(b >> 4) & 0xf]); + sb.append(digits[b & 0xf]); + return sb; + } + } diff --git a/core/jni/Android.mk b/core/jni/Android.mk index 86412926b3ce..d9ede93467c4 100644 --- a/core/jni/Android.mk +++ b/core/jni/Android.mk @@ -93,6 +93,7 @@ LOCAL_SRC_FILES:= \ android_util_Process.cpp \ android_util_StringBlock.cpp \ android_util_XmlBlock.cpp \ + android_util_jar_StrictJarFile.cpp \ android_graphics_Canvas.cpp \ android_graphics_Picture.cpp \ android/graphics/AutoDecodeCancel.cpp \ diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index b8aa2f0eaaeb..6a71d5fc9fcf 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -176,6 +176,7 @@ extern int register_android_app_backup_FullBackup(JNIEnv *env); extern int register_android_app_ActivityThread(JNIEnv *env); extern int register_android_app_NativeActivity(JNIEnv *env); extern int register_android_media_RemoteDisplay(JNIEnv *env); +extern int register_android_util_jar_StrictJarFile(JNIEnv* env); extern int register_android_view_InputChannel(JNIEnv* env); extern int register_android_view_InputDevice(JNIEnv* env); extern int register_android_view_InputEventReceiver(JNIEnv* env); @@ -1359,6 +1360,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_app_backup_FullBackup), REG_JNI(register_android_app_ActivityThread), REG_JNI(register_android_app_NativeActivity), + REG_JNI(register_android_util_jar_StrictJarFile), REG_JNI(register_android_view_InputChannel), REG_JNI(register_android_view_InputEventReceiver), REG_JNI(register_android_view_InputEventSender), @@ -1374,6 +1376,8 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_animation_PropertyValuesHolder), REG_JNI(register_com_android_internal_content_NativeLibraryHelper), REG_JNI(register_com_android_internal_net_NetworkStatsFactory), + + }; /* diff --git a/core/jni/android_util_jar_StrictJarFile.cpp b/core/jni/android_util_jar_StrictJarFile.cpp new file mode 100644 index 000000000000..7f8f70832ab7 --- /dev/null +++ b/core/jni/android_util_jar_StrictJarFile.cpp @@ -0,0 +1,172 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "StrictJarFile" + +#include <memory> +#include <string> + +#include "JNIHelp.h" +#include "JniConstants.h" +#include "ScopedLocalRef.h" +#include "ScopedUtfChars.h" +#include "jni.h" +#include "ziparchive/zip_archive.h" +#include "cutils/log.h" + +namespace android { + +// The method ID for ZipEntry.<init>(String,String,JJJIII[BJJ) +static jmethodID zipEntryCtor; + +static void throwIoException(JNIEnv* env, const int32_t errorCode) { + jniThrowException(env, "java/io/IOException", ErrorCodeString(errorCode)); +} + +static jobject newZipEntry(JNIEnv* env, const ZipEntry& entry, jstring entryName) { + return env->NewObject(JniConstants::zipEntryClass, + zipEntryCtor, + entryName, + NULL, // comment + static_cast<jlong>(entry.crc32), + static_cast<jlong>(entry.compressed_length), + static_cast<jlong>(entry.uncompressed_length), + static_cast<jint>(entry.method), + static_cast<jint>(0), // time + NULL, // byte[] extra + static_cast<jlong>(entry.offset)); +} + +static jlong StrictJarFile_nativeOpenJarFile(JNIEnv* env, jobject, jstring fileName) { + ScopedUtfChars fileChars(env, fileName); + if (fileChars.c_str() == NULL) { + return static_cast<jlong>(-1); + } + + ZipArchiveHandle handle; + int32_t error = OpenArchive(fileChars.c_str(), &handle); + if (error) { + CloseArchive(handle); + throwIoException(env, error); + return static_cast<jlong>(-1); + } + + return reinterpret_cast<jlong>(handle); +} + +class IterationHandle { + public: + IterationHandle() : + cookie_(NULL) { + } + + void** CookieAddress() { + return &cookie_; + } + + ~IterationHandle() { + EndIteration(cookie_); + } + + private: + void* cookie_; +}; + + +static jlong StrictJarFile_nativeStartIteration(JNIEnv* env, jobject, jlong nativeHandle, + jstring prefix) { + ScopedUtfChars prefixChars(env, prefix); + if (prefixChars.c_str() == NULL) { + return static_cast<jlong>(-1); + } + + IterationHandle* handle = new IterationHandle(); + int32_t error = 0; + if (prefixChars.size() == 0) { + error = StartIteration(reinterpret_cast<ZipArchiveHandle>(nativeHandle), + handle->CookieAddress(), NULL, NULL); + } else { + ZipString entry_name(prefixChars.c_str()); + error = StartIteration(reinterpret_cast<ZipArchiveHandle>(nativeHandle), + handle->CookieAddress(), &entry_name, NULL); + } + + if (error) { + throwIoException(env, error); + return static_cast<jlong>(-1); + } + + return reinterpret_cast<jlong>(handle); +} + +static jobject StrictJarFile_nativeNextEntry(JNIEnv* env, jobject, jlong iterationHandle) { + ZipEntry data; + ZipString entryName; + + IterationHandle* handle = reinterpret_cast<IterationHandle*>(iterationHandle); + const int32_t error = Next(*handle->CookieAddress(), &data, &entryName); + if (error) { + delete handle; + return NULL; + } + + std::unique_ptr<char[]> entryNameCString(new char[entryName.name_length + 1]); + memcpy(entryNameCString.get(), entryName.name, entryName.name_length); + entryNameCString[entryName.name_length] = '\0'; + ScopedLocalRef<jstring> entryNameString(env, env->NewStringUTF(entryNameCString.get())); + + return newZipEntry(env, data, entryNameString.get()); +} + +static jobject StrictJarFile_nativeFindEntry(JNIEnv* env, jobject, jlong nativeHandle, + jstring entryName) { + ScopedUtfChars entryNameChars(env, entryName); + if (entryNameChars.c_str() == NULL) { + return NULL; + } + + ZipEntry data; + const int32_t error = FindEntry(reinterpret_cast<ZipArchiveHandle>(nativeHandle), + ZipString(entryNameChars.c_str()), &data); + if (error) { + return NULL; + } + + return newZipEntry(env, data, entryName); +} + +static void StrictJarFile_nativeClose(JNIEnv*, jobject, jlong nativeHandle) { + CloseArchive(reinterpret_cast<ZipArchiveHandle>(nativeHandle)); +} + +static JNINativeMethod gMethods[] = { + NATIVE_METHOD(StrictJarFile, nativeOpenJarFile, "(Ljava/lang/String;)J"), + NATIVE_METHOD(StrictJarFile, nativeStartIteration, "(JLjava/lang/String;)J"), + NATIVE_METHOD(StrictJarFile, nativeNextEntry, "(J)Ljava/util/zip/ZipEntry;"), + NATIVE_METHOD(StrictJarFile, nativeFindEntry, "(JLjava/lang/String;)Ljava/util/zip/ZipEntry;"), + NATIVE_METHOD(StrictJarFile, nativeClose, "(J)V"), +}; + +void register_android_util_jar_StrictJarFile(JNIEnv* env) { + jniRegisterNativeMethods(env, "android/util/jar/StrictJarFile", gMethods, NELEM(gMethods)); + + zipEntryCtor = env->GetMethodID(JniConstants::zipEntryClass, "<init>", + "(Ljava/lang/String;Ljava/lang/String;JJJII[BJ)V"); + LOG_ALWAYS_FATAL_IF(zipEntryCtor == NULL, "Unable to find ZipEntry.<init>"); +} + +}; // namespace android diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index b0815684763c..c2044dae5a21 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -581,7 +581,7 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra UnsetSigChldHandler(); env->CallStaticVoidMethod(gZygoteClass, gCallPostForkChildHooks, debug_flags, - is_system_server ? NULL : instructionSet); + is_system_server, instructionSet); if (env->ExceptionCheck()) { RuntimeAbort(env, __LINE__, "Error calling post fork hooks."); } @@ -674,7 +674,7 @@ static const JNINativeMethod gMethods[] = { int register_com_android_internal_os_Zygote(JNIEnv* env) { gZygoteClass = MakeGlobalRefOrDie(env, FindClassOrDie(env, kZygoteClassName)); gCallPostForkChildHooks = GetStaticMethodIDOrDie(env, gZygoteClass, "callPostForkChildHooks", - "(ILjava/lang/String;)V"); + "(IZLjava/lang/String;)V"); return RegisterMethodsOrDie(env, "com/android/internal/os/Zygote", gMethods, NELEM(gMethods)); } diff --git a/core/tests/coretests/src/com/android/internal/util/HexDumpTest.java b/core/tests/coretests/src/com/android/internal/util/HexDumpTest.java new file mode 100644 index 000000000000..951e87a99da3 --- /dev/null +++ b/core/tests/coretests/src/com/android/internal/util/HexDumpTest.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.util; + +import junit.framework.TestCase; + +public final class HexDumpTest extends TestCase { + public void testBytesToHexString() { + assertEquals("abcdef", HexDump.toHexString( + new byte[] { (byte) 0xab, (byte) 0xcd, (byte) 0xef }, false)); + assertEquals("ABCDEF", HexDump.toHexString( + new byte[] { (byte) 0xab, (byte) 0xcd, (byte) 0xef }, true)); + } +} diff --git a/preloaded-classes b/preloaded-classes index 4d7a6e19d011..8e8faf463a94 100644 --- a/preloaded-classes +++ b/preloaded-classes @@ -1765,6 +1765,7 @@ android.util.StateSet android.util.SuperNotCalledException android.util.TypedValue android.util.Xml +android.util.jar.StrictJarFile android.view.AbsSavedState android.view.AbsSavedState$1 android.view.AbsSavedState$2 @@ -3361,9 +3362,6 @@ java.util.jar.Attributes$Name java.util.jar.JarEntry java.util.jar.JarFile java.util.jar.JarFile$JarFileEnumerator -java.util.jar.Manifest -java.util.jar.ManifestReader -java.util.jar.StrictJarFile java.util.logging.ConsoleHandler java.util.logging.ErrorManager java.util.logging.Filter @@ -3560,11 +3558,6 @@ org.apache.harmony.security.asn1.BerInputStream org.apache.harmony.security.asn1.BerOutputStream org.apache.harmony.security.asn1.DerInputStream org.apache.harmony.security.asn1.DerOutputStream -org.apache.harmony.security.fortress.Engine -org.apache.harmony.security.fortress.Engine$ServiceCacheEntry -org.apache.harmony.security.fortress.Engine$SpiAndProvider -org.apache.harmony.security.fortress.SecurityAccess -org.apache.harmony.security.fortress.Services org.apache.harmony.security.provider.crypto.CryptoProvider org.apache.harmony.security.utils.AlgNameMapper org.apache.harmony.security.utils.AlgNameMapperSource diff --git a/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java index 8fc979cccf23..cc25c8c5f836 100644 --- a/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java +++ b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java @@ -17,6 +17,7 @@ package com.android.server.updates; import com.android.server.EventLogTags; +import com.android.internal.util.HexDump; import android.content.BroadcastReceiver; import android.content.Context; @@ -155,7 +156,7 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver { try { MessageDigest dgst = MessageDigest.getInstance("SHA512"); byte[] fingerprint = dgst.digest(content); - return IntegralToString.bytesToHexString(fingerprint, false); + return HexDump.toHexString(fingerprint, false); } catch (NoSuchAlgorithmException e) { throw new AssertionError(e); } diff --git a/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java index b6742a104c30..d79851817f85 100644 --- a/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java +++ b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java @@ -16,6 +16,8 @@ package com.android.server.updates; +import com.android.internal.util.HexDump; + import android.content.Context; import android.content.Intent; import android.test.AndroidTestCase; @@ -128,7 +130,7 @@ public class CertPinInstallReceiverTest extends AndroidTestCase { MessageDigest dgst = MessageDigest.getInstance("SHA512"); byte[] encoded = content.getBytes(); byte[] fingerprint = dgst.digest(encoded); - return IntegralToString.bytesToHexString(fingerprint, false); + return HexDump.toHexString(fingerprint, false); } private static String getHashOfCurrentContent() throws Exception { diff --git a/test-runner/Android.mk b/test-runner/Android.mk index b12795c737c5..68bde35d4ec5 100644 --- a/test-runner/Android.mk +++ b/test-runner/Android.mk @@ -20,7 +20,7 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-java-files-under, src) -LOCAL_JAVA_LIBRARIES := core-libart core-junit framework +LOCAL_JAVA_LIBRARIES := core-oj core-libart core-junit framework LOCAL_STATIC_JAVA_LIBRARIES := junit-runner LOCAL_MODULE:= android.test.runner diff --git a/tools/layoutlib/Android.mk b/tools/layoutlib/Android.mk index 61ddb04bc08c..53bfc1581e53 100644 --- a/tools/layoutlib/Android.mk +++ b/tools/layoutlib/Android.mk @@ -30,6 +30,9 @@ LOCAL_JAVACFLAGS := -source 6 -target 6 built_framework_dep := $(call java-lib-deps,framework) built_framework_classes := $(call java-lib-files,framework) +built_oj_dep := $(call java-lib-deps,core-oj) +built_oj_classes := $(call java-lib-files,core-oj) + built_core_dep := $(call java-lib-deps,core-libart) built_core_classes := $(call java-lib-files,core-libart) @@ -56,7 +59,8 @@ LOCAL_BUILT_MODULE_STEM := javalib.jar include $(BUILD_SYSTEM)/base_rules.mk ####################################### -$(LOCAL_BUILT_MODULE): $(built_core_dep) \ +$(LOCAL_BUILT_MODULE): $(built_oj_dep) \ + $(built_core_dep) \ $(built_framework_dep) \ $(built_ext_dep) \ $(built_ext_data) \ @@ -69,6 +73,7 @@ $(LOCAL_BUILT_MODULE): $(built_core_dep) \ $(hide) ls -l $(built_framework_classes) $(hide) java -ea -jar $(built_layoutlib_create_jar) \ $@ \ + $(built_oj_classes) \ $(built_core_classes) \ $(built_framework_classes) \ $(built_ext_classes) \ |