Merge "Add ConfigNetworkSecurityPolicy"
diff --git a/Android.mk b/Android.mk
index ce01c20..5e405d36 100644
--- a/Android.mk
+++ b/Android.mk
@@ -423,7 +423,7 @@
$(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_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 @@
# 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 @@
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 f74de7e..74645d5 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -46436,13 +46436,18 @@
package java.awt.font {
public final class NumericShaper implements java.io.Serializable {
- method public static java.awt.font.NumericShaper getContextualShaper(int, int);
method public static java.awt.font.NumericShaper getContextualShaper(int);
+ method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>);
+ method public static java.awt.font.NumericShaper getContextualShaper(int, int);
+ method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>, java.awt.font.NumericShaper.Range);
+ method public java.util.Set<java.awt.font.NumericShaper.Range> getRangeSet();
method public int getRanges();
method public static java.awt.font.NumericShaper getShaper(int);
+ method public static java.awt.font.NumericShaper getShaper(java.awt.font.NumericShaper.Range);
method public boolean isContextual();
- method public void shape(char[], int, int, int);
method public void shape(char[], int, int);
+ method public void shape(char[], int, int, int);
+ method public void shape(char[], int, int, java.awt.font.NumericShaper.Range);
field public static final int ALL_RANGES = 524287; // 0x7ffff
field public static final int ARABIC = 2; // 0x2
field public static final int BENGALI = 16; // 0x10
@@ -46465,6 +46470,46 @@
field public static final int TIBETAN = 16384; // 0x4000
}
+ public static class NumericShaper.Range extends java.lang.Enum {
+ method public static java.awt.font.NumericShaper.Range valueOf(java.lang.String);
+ method public static final java.awt.font.NumericShaper.Range[] values();
+ enum_constant public static final java.awt.font.NumericShaper.Range ARABIC;
+ enum_constant public static final java.awt.font.NumericShaper.Range BALINESE;
+ enum_constant public static final java.awt.font.NumericShaper.Range BENGALI;
+ enum_constant public static final java.awt.font.NumericShaper.Range CHAM;
+ enum_constant public static final java.awt.font.NumericShaper.Range DEVANAGARI;
+ enum_constant public static final java.awt.font.NumericShaper.Range EASTERN_ARABIC;
+ enum_constant public static final java.awt.font.NumericShaper.Range ETHIOPIC;
+ enum_constant public static final java.awt.font.NumericShaper.Range EUROPEAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range GUJARATI;
+ enum_constant public static final java.awt.font.NumericShaper.Range GURMUKHI;
+ enum_constant public static final java.awt.font.NumericShaper.Range JAVANESE;
+ enum_constant public static final java.awt.font.NumericShaper.Range KANNADA;
+ enum_constant public static final java.awt.font.NumericShaper.Range KAYAH_LI;
+ enum_constant public static final java.awt.font.NumericShaper.Range KHMER;
+ enum_constant public static final java.awt.font.NumericShaper.Range LAO;
+ enum_constant public static final java.awt.font.NumericShaper.Range LEPCHA;
+ enum_constant public static final java.awt.font.NumericShaper.Range LIMBU;
+ enum_constant public static final java.awt.font.NumericShaper.Range MALAYALAM;
+ enum_constant public static final java.awt.font.NumericShaper.Range MEETEI_MAYEK;
+ enum_constant public static final java.awt.font.NumericShaper.Range MONGOLIAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR;
+ enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR_SHAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range NEW_TAI_LUE;
+ enum_constant public static final java.awt.font.NumericShaper.Range NKO;
+ enum_constant public static final java.awt.font.NumericShaper.Range OL_CHIKI;
+ enum_constant public static final java.awt.font.NumericShaper.Range ORIYA;
+ enum_constant public static final java.awt.font.NumericShaper.Range SAURASHTRA;
+ enum_constant public static final java.awt.font.NumericShaper.Range SUNDANESE;
+ enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_HORA;
+ enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_THAM;
+ enum_constant public static final java.awt.font.NumericShaper.Range TAMIL;
+ enum_constant public static final java.awt.font.NumericShaper.Range TELUGU;
+ enum_constant public static final java.awt.font.NumericShaper.Range THAI;
+ enum_constant public static final java.awt.font.NumericShaper.Range TIBETAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range VAI;
+ }
+
public final class TextAttribute extends java.text.AttributedCharacterIterator.Attribute {
ctor protected TextAttribute(java.lang.String);
field public static final java.awt.font.TextAttribute BACKGROUND;
@@ -46558,20 +46603,20 @@
public class PropertyChangeSupport implements java.io.Serializable {
ctor public PropertyChangeSupport(java.lang.Object);
- method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
+ method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
method public void fireIndexedPropertyChange(java.lang.String, int, java.lang.Object, java.lang.Object);
- method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
method public void fireIndexedPropertyChange(java.lang.String, int, int, int);
+ method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
method public void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
- method public void firePropertyChange(java.lang.String, boolean, boolean);
method public void firePropertyChange(java.lang.String, int, int);
+ method public void firePropertyChange(java.lang.String, boolean, boolean);
method public void firePropertyChange(java.beans.PropertyChangeEvent);
- method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
method public java.beans.PropertyChangeListener[] getPropertyChangeListeners();
+ method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
method public boolean hasListeners(java.lang.String);
- method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
+ method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
}
}
@@ -46596,8 +46641,8 @@
}
public class BufferedReader extends java.io.Reader {
- ctor public BufferedReader(java.io.Reader);
ctor public BufferedReader(java.io.Reader, int);
+ ctor public BufferedReader(java.io.Reader);
method public void close() throws java.io.IOException;
method public int read(char[], int, int) throws java.io.IOException;
method public java.lang.String readLine() throws java.io.IOException;
@@ -46626,10 +46671,10 @@
ctor public ByteArrayOutputStream();
ctor public ByteArrayOutputStream(int);
method public synchronized void reset();
- method public int size();
+ method public synchronized int size();
method public synchronized byte[] toByteArray();
- method public deprecated java.lang.String toString(int);
- method public java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+ method public synchronized java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+ method public deprecated synchronized java.lang.String toString(int);
method public synchronized void write(int);
method public synchronized void writeTo(java.io.OutputStream) throws java.io.IOException;
field protected byte[] buf;
@@ -46671,13 +46716,15 @@
}
public final class Console implements java.io.Flushable {
+ method public static java.io.Console console();
method public void flush();
method public java.io.Console format(java.lang.String, java.lang.Object...);
+ method public static synchronized java.io.Console getConsole();
method public java.io.Console printf(java.lang.String, java.lang.Object...);
- method public java.lang.String readLine();
method public java.lang.String readLine(java.lang.String, java.lang.Object...);
- method public char[] readPassword();
+ method public java.lang.String readLine();
method public char[] readPassword(java.lang.String, java.lang.Object...);
+ method public char[] readPassword();
method public java.io.Reader reader();
method public java.io.PrintWriter writer();
}
@@ -46723,9 +46770,9 @@
}
public abstract interface DataOutput {
+ method public abstract void write(int) throws java.io.IOException;
method public abstract void write(byte[]) throws java.io.IOException;
method public abstract void write(byte[], int, int) throws java.io.IOException;
- method public abstract void write(int) throws java.io.IOException;
method public abstract void writeBoolean(boolean) throws java.io.IOException;
method public abstract void writeByte(int) throws java.io.IOException;
method public abstract void writeBytes(java.lang.String) throws java.io.IOException;
@@ -46767,17 +46814,17 @@
}
public class File implements java.lang.Comparable java.io.Serializable {
- ctor public File(java.io.File, java.lang.String);
ctor public File(java.lang.String);
ctor public File(java.lang.String, java.lang.String);
+ ctor public File(java.io.File, java.lang.String);
ctor public File(java.net.URI);
method public boolean canExecute();
method public boolean canRead();
method public boolean canWrite();
method public int compareTo(java.io.File);
method public boolean createNewFile() throws java.io.IOException;
- method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
method public static java.io.File createTempFile(java.lang.String, java.lang.String, java.io.File) throws java.io.IOException;
+ method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
method public boolean delete();
method public void deleteOnExit();
method public boolean exists();
@@ -46815,6 +46862,7 @@
method public boolean setReadable(boolean);
method public boolean setWritable(boolean, boolean);
method public boolean setWritable(boolean);
+ method public java.nio.file.Path toPath();
method public java.net.URI toURI();
method public deprecated java.net.URL toURL() throws java.net.MalformedURLException;
field public static final java.lang.String pathSeparator;
@@ -46837,9 +46885,9 @@
}
public class FileInputStream extends java.io.InputStream {
+ ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
ctor public FileInputStream(java.io.File) throws java.io.FileNotFoundException;
ctor public FileInputStream(java.io.FileDescriptor);
- ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
method public java.nio.channels.FileChannel getChannel();
method public final java.io.FileDescriptor getFD() throws java.io.IOException;
method public int read() throws java.io.IOException;
@@ -46851,11 +46899,11 @@
}
public class FileOutputStream extends java.io.OutputStream {
+ ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
+ ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
ctor public FileOutputStream(java.io.File) throws java.io.FileNotFoundException;
ctor public FileOutputStream(java.io.File, boolean) throws java.io.FileNotFoundException;
ctor public FileOutputStream(java.io.FileDescriptor);
- ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
- ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
method public java.nio.channels.FileChannel getChannel();
method public final java.io.FileDescriptor getFD() throws java.io.IOException;
method public void write(int) throws java.io.IOException;
@@ -46863,22 +46911,24 @@
public final class FilePermission extends java.security.Permission implements java.io.Serializable {
ctor public FilePermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
public class FileReader extends java.io.InputStreamReader {
+ ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
ctor public FileReader(java.io.File) throws java.io.FileNotFoundException;
ctor public FileReader(java.io.FileDescriptor);
- ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
}
public class FileWriter extends java.io.OutputStreamWriter {
+ ctor public FileWriter(java.lang.String) throws java.io.IOException;
+ ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
ctor public FileWriter(java.io.File) throws java.io.IOException;
ctor public FileWriter(java.io.File, boolean) throws java.io.IOException;
ctor public FileWriter(java.io.FileDescriptor);
- ctor public FileWriter(java.lang.String) throws java.io.IOException;
- ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
}
public abstract interface FilenameFilter {
@@ -46931,7 +46981,7 @@
ctor public InputStream();
method public int available() throws java.io.IOException;
method public void close() throws java.io.IOException;
- method public void mark(int);
+ method public synchronized void mark(int);
method public boolean markSupported();
method public abstract int read() throws java.io.IOException;
method public int read(byte[]) throws java.io.IOException;
@@ -46943,8 +46993,8 @@
public class InputStreamReader extends java.io.Reader {
ctor public InputStreamReader(java.io.InputStream);
ctor public InputStreamReader(java.io.InputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
ctor public InputStreamReader(java.io.InputStream, java.nio.charset.Charset);
+ ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
method public void close() throws java.io.IOException;
method public java.lang.String getEncoding();
method public int read(char[], int, int) throws java.io.IOException;
@@ -46953,6 +47003,7 @@
public class InterruptedIOException extends java.io.IOException {
ctor public InterruptedIOException();
ctor public InterruptedIOException(java.lang.String);
+ ctor public InterruptedIOException(java.lang.Throwable);
field public int bytesTransferred;
}
@@ -46980,13 +47031,13 @@
}
public class NotActiveException extends java.io.ObjectStreamException {
- ctor public NotActiveException();
ctor public NotActiveException(java.lang.String);
+ ctor public NotActiveException();
}
public class NotSerializableException extends java.io.ObjectStreamException {
- ctor public NotSerializableException();
ctor public NotSerializableException(java.lang.String);
+ ctor public NotSerializableException();
}
public abstract interface ObjectInput implements java.lang.AutoCloseable java.io.DataInput {
@@ -47000,32 +47051,32 @@
}
public class ObjectInputStream extends java.io.InputStream implements java.io.ObjectInput java.io.ObjectStreamConstants {
- ctor protected ObjectInputStream() throws java.io.IOException;
- ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException, java.io.StreamCorruptedException;
- method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
- method protected boolean enableResolveObject(boolean);
+ ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException;
+ ctor protected ObjectInputStream() throws java.io.IOException, java.lang.SecurityException;
+ method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+ method protected boolean enableResolveObject(boolean) throws java.lang.SecurityException;
method public int read() throws java.io.IOException;
method public boolean readBoolean() throws java.io.IOException;
method public byte readByte() throws java.io.IOException;
method public char readChar() throws java.io.IOException;
method protected java.io.ObjectStreamClass readClassDescriptor() throws java.lang.ClassNotFoundException, java.io.IOException;
method public double readDouble() throws java.io.IOException;
- method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
+ method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException;
method public float readFloat() throws java.io.IOException;
method public void readFully(byte[]) throws java.io.IOException;
method public void readFully(byte[], int, int) throws java.io.IOException;
method public int readInt() throws java.io.IOException;
method public deprecated java.lang.String readLine() throws java.io.IOException;
method public long readLong() throws java.io.IOException;
- method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
- method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
+ method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+ method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException;
method public short readShort() throws java.io.IOException;
method protected void readStreamHeader() throws java.io.IOException, java.io.StreamCorruptedException;
method public java.lang.String readUTF() throws java.io.IOException;
method public java.lang.Object readUnshared() throws java.lang.ClassNotFoundException, java.io.IOException;
method public int readUnsignedByte() throws java.io.IOException;
method public int readUnsignedShort() throws java.io.IOException;
- method public synchronized void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
+ method public void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
method protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass) throws java.lang.ClassNotFoundException, java.io.IOException;
method protected java.lang.Object resolveObject(java.lang.Object) throws java.io.IOException;
method protected java.lang.Class<?> resolveProxyClass(java.lang.String[]) throws java.lang.ClassNotFoundException, java.io.IOException;
@@ -47034,16 +47085,16 @@
public static abstract class ObjectInputStream.GetField {
ctor public ObjectInputStream.GetField();
- method public abstract boolean defaulted(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract char get(java.lang.String, char) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract byte get(java.lang.String, byte) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract short get(java.lang.String, short) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract int get(java.lang.String, int) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract long get(java.lang.String, long) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract float get(java.lang.String, float) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract double get(java.lang.String, double) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException, java.lang.IllegalArgumentException;
+ method public abstract boolean defaulted(java.lang.String) throws java.io.IOException;
+ method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException;
+ method public abstract byte get(java.lang.String, byte) throws java.io.IOException;
+ method public abstract char get(java.lang.String, char) throws java.io.IOException;
+ method public abstract short get(java.lang.String, short) throws java.io.IOException;
+ method public abstract int get(java.lang.String, int) throws java.io.IOException;
+ method public abstract long get(java.lang.String, long) throws java.io.IOException;
+ method public abstract float get(java.lang.String, float) throws java.io.IOException;
+ method public abstract double get(java.lang.String, double) throws java.io.IOException;
+ method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException;
method public abstract java.io.ObjectStreamClass getObjectStreamClass();
}
@@ -47054,20 +47105,20 @@
public abstract interface ObjectOutput implements java.lang.AutoCloseable java.io.DataOutput {
method public abstract void close() throws java.io.IOException;
method public abstract void flush() throws java.io.IOException;
+ method public abstract void write(int) throws java.io.IOException;
method public abstract void write(byte[]) throws java.io.IOException;
method public abstract void write(byte[], int, int) throws java.io.IOException;
- method public abstract void write(int) throws java.io.IOException;
method public abstract void writeObject(java.lang.Object) throws java.io.IOException;
}
public class ObjectOutputStream extends java.io.OutputStream implements java.io.ObjectOutput java.io.ObjectStreamConstants {
- ctor protected ObjectOutputStream() throws java.io.IOException;
ctor public ObjectOutputStream(java.io.OutputStream) throws java.io.IOException;
+ ctor protected ObjectOutputStream() throws java.io.IOException, java.lang.SecurityException;
method protected void annotateClass(java.lang.Class<?>) throws java.io.IOException;
method protected void annotateProxyClass(java.lang.Class<?>) throws java.io.IOException;
method public void defaultWriteObject() throws java.io.IOException;
method protected void drain() throws java.io.IOException;
- method protected boolean enableReplaceObject(boolean);
+ method protected boolean enableReplaceObject(boolean) throws java.lang.SecurityException;
method public java.io.ObjectOutputStream.PutField putFields() throws java.io.IOException;
method protected java.lang.Object replaceObject(java.lang.Object) throws java.io.IOException;
method public void reset() throws java.io.IOException;
@@ -47095,8 +47146,8 @@
public static abstract class ObjectOutputStream.PutField {
ctor public ObjectOutputStream.PutField();
method public abstract void put(java.lang.String, boolean);
- method public abstract void put(java.lang.String, char);
method public abstract void put(java.lang.String, byte);
+ method public abstract void put(java.lang.String, char);
method public abstract void put(java.lang.String, short);
method public abstract void put(java.lang.String, int);
method public abstract void put(java.lang.String, long);
@@ -47150,8 +47201,8 @@
}
public abstract class ObjectStreamException extends java.io.IOException {
- ctor protected ObjectStreamException();
ctor protected ObjectStreamException(java.lang.String);
+ ctor protected ObjectStreamException();
}
public class ObjectStreamField implements java.lang.Comparable {
@@ -47177,14 +47228,14 @@
ctor public OutputStream();
method public void close() throws java.io.IOException;
method public void flush() throws java.io.IOException;
+ method public abstract void write(int) throws java.io.IOException;
method public void write(byte[]) throws java.io.IOException;
method public void write(byte[], int, int) throws java.io.IOException;
- method public abstract void write(int) throws java.io.IOException;
}
public class OutputStreamWriter extends java.io.Writer {
- ctor public OutputStreamWriter(java.io.OutputStream);
ctor public OutputStreamWriter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
+ ctor public OutputStreamWriter(java.io.OutputStream);
ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.Charset);
ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.CharsetEncoder);
method public void close() throws java.io.IOException;
@@ -47194,10 +47245,10 @@
}
public class PipedInputStream extends java.io.InputStream {
- ctor public PipedInputStream();
ctor public PipedInputStream(java.io.PipedOutputStream) throws java.io.IOException;
- ctor public PipedInputStream(int);
ctor public PipedInputStream(java.io.PipedOutputStream, int) throws java.io.IOException;
+ ctor public PipedInputStream();
+ ctor public PipedInputStream(int);
method public void connect(java.io.PipedOutputStream) throws java.io.IOException;
method public synchronized int read() throws java.io.IOException;
method protected synchronized void receive(int) throws java.io.IOException;
@@ -47208,28 +47259,28 @@
}
public class PipedOutputStream extends java.io.OutputStream {
- ctor public PipedOutputStream();
ctor public PipedOutputStream(java.io.PipedInputStream) throws java.io.IOException;
- method public void connect(java.io.PipedInputStream) throws java.io.IOException;
+ ctor public PipedOutputStream();
+ method public synchronized void connect(java.io.PipedInputStream) throws java.io.IOException;
method public void write(int) throws java.io.IOException;
}
public class PipedReader extends java.io.Reader {
- ctor public PipedReader();
ctor public PipedReader(java.io.PipedWriter) throws java.io.IOException;
- ctor public PipedReader(int);
ctor public PipedReader(java.io.PipedWriter, int) throws java.io.IOException;
- method public synchronized void close() throws java.io.IOException;
+ ctor public PipedReader();
+ ctor public PipedReader(int);
+ method public void close() throws java.io.IOException;
method public void connect(java.io.PipedWriter) throws java.io.IOException;
method public synchronized int read(char[], int, int) throws java.io.IOException;
}
public class PipedWriter extends java.io.Writer {
- ctor public PipedWriter();
ctor public PipedWriter(java.io.PipedReader) throws java.io.IOException;
+ ctor public PipedWriter();
method public void close() throws java.io.IOException;
- method public void connect(java.io.PipedReader) throws java.io.IOException;
- method public void flush() throws java.io.IOException;
+ method public synchronized void connect(java.io.PipedReader) throws java.io.IOException;
+ method public synchronized void flush() throws java.io.IOException;
method public void write(char[], int, int) throws java.io.IOException;
}
@@ -47237,111 +47288,111 @@
ctor public PrintStream(java.io.OutputStream);
ctor public PrintStream(java.io.OutputStream, boolean);
ctor public PrintStream(java.io.OutputStream, boolean, java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
- ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
ctor public PrintStream(java.lang.String) throws java.io.FileNotFoundException;
ctor public PrintStream(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
- method public java.io.PrintStream append(char);
+ ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
+ ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
method public java.io.PrintStream append(java.lang.CharSequence);
method public java.io.PrintStream append(java.lang.CharSequence, int, int);
+ method public java.io.PrintStream append(char);
method public boolean checkError();
method protected void clearError();
method public java.io.PrintStream format(java.lang.String, java.lang.Object...);
method public java.io.PrintStream format(java.util.Locale, java.lang.String, java.lang.Object...);
- method public void print(char[]);
+ method public void print(boolean);
method public void print(char);
- method public void print(double);
- method public void print(float);
method public void print(int);
method public void print(long);
+ method public void print(float);
+ method public void print(double);
+ method public void print(char[]);
+ method public void print(java.lang.String);
method public void print(java.lang.Object);
- method public synchronized void print(java.lang.String);
- method public void print(boolean);
method public java.io.PrintStream printf(java.lang.String, java.lang.Object...);
method public java.io.PrintStream printf(java.util.Locale, java.lang.String, java.lang.Object...);
method public void println();
- method public void println(char[]);
+ method public void println(boolean);
method public void println(char);
- method public void println(double);
- method public void println(float);
method public void println(int);
method public void println(long);
+ method public void println(float);
+ method public void println(double);
+ method public void println(char[]);
+ method public void println(java.lang.String);
method public void println(java.lang.Object);
- method public synchronized void println(java.lang.String);
- method public void println(boolean);
method protected void setError();
}
public class PrintWriter extends java.io.Writer {
- ctor public PrintWriter(java.io.OutputStream);
- ctor public PrintWriter(java.io.OutputStream, boolean);
ctor public PrintWriter(java.io.Writer);
ctor public PrintWriter(java.io.Writer, boolean);
- ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
- ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+ ctor public PrintWriter(java.io.OutputStream);
+ ctor public PrintWriter(java.io.OutputStream, boolean);
ctor public PrintWriter(java.lang.String) throws java.io.FileNotFoundException;
ctor public PrintWriter(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+ ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
+ ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
method public boolean checkError();
method protected void clearError();
method public void close();
method public void flush();
method public java.io.PrintWriter format(java.lang.String, java.lang.Object...);
method public java.io.PrintWriter format(java.util.Locale, java.lang.String, java.lang.Object...);
- method public void print(char[]);
+ method public void print(boolean);
method public void print(char);
- method public void print(double);
- method public void print(float);
method public void print(int);
method public void print(long);
- method public void print(java.lang.Object);
+ method public void print(float);
+ method public void print(double);
+ method public void print(char[]);
method public void print(java.lang.String);
- method public void print(boolean);
+ method public void print(java.lang.Object);
method public java.io.PrintWriter printf(java.lang.String, java.lang.Object...);
method public java.io.PrintWriter printf(java.util.Locale, java.lang.String, java.lang.Object...);
method public void println();
- method public void println(char[]);
+ method public void println(boolean);
method public void println(char);
- method public void println(double);
- method public void println(float);
method public void println(int);
method public void println(long);
- method public void println(java.lang.Object);
+ method public void println(float);
+ method public void println(double);
+ method public void println(char[]);
method public void println(java.lang.String);
- method public void println(boolean);
+ method public void println(java.lang.Object);
method protected void setError();
method public void write(char[], int, int);
field protected java.io.Writer out;
}
public class PushbackInputStream extends java.io.FilterInputStream {
- ctor public PushbackInputStream(java.io.InputStream);
ctor public PushbackInputStream(java.io.InputStream, int);
- method public void unread(byte[]) throws java.io.IOException;
- method public void unread(byte[], int, int) throws java.io.IOException;
+ ctor public PushbackInputStream(java.io.InputStream);
method public void unread(int) throws java.io.IOException;
+ method public void unread(byte[], int, int) throws java.io.IOException;
+ method public void unread(byte[]) throws java.io.IOException;
field protected byte[] buf;
field protected int pos;
}
public class PushbackReader extends java.io.FilterReader {
- ctor public PushbackReader(java.io.Reader);
ctor public PushbackReader(java.io.Reader, int);
- method public void unread(char[]) throws java.io.IOException;
- method public void unread(char[], int, int) throws java.io.IOException;
+ ctor public PushbackReader(java.io.Reader);
method public void unread(int) throws java.io.IOException;
+ method public void unread(char[], int, int) throws java.io.IOException;
+ method public void unread(char[]) throws java.io.IOException;
}
public class RandomAccessFile implements java.io.Closeable java.io.DataInput java.io.DataOutput {
- ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
ctor public RandomAccessFile(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
+ ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
method public void close() throws java.io.IOException;
- method public final synchronized java.nio.channels.FileChannel getChannel();
+ method public final java.nio.channels.FileChannel getChannel();
method public final java.io.FileDescriptor getFD() throws java.io.IOException;
method public long getFilePointer() throws java.io.IOException;
method public long length() throws java.io.IOException;
method public int read() throws java.io.IOException;
- method public int read(byte[]) throws java.io.IOException;
method public int read(byte[], int, int) throws java.io.IOException;
+ method public int read(byte[]) throws java.io.IOException;
method public final boolean readBoolean() throws java.io.IOException;
method public final byte readByte() throws java.io.IOException;
method public final char readChar() throws java.io.IOException;
@@ -47359,9 +47410,9 @@
method public void seek(long) throws java.io.IOException;
method public void setLength(long) throws java.io.IOException;
method public int skipBytes(int) throws java.io.IOException;
+ method public void write(int) throws java.io.IOException;
method public void write(byte[]) throws java.io.IOException;
method public void write(byte[], int, int) throws java.io.IOException;
- method public void write(int) throws java.io.IOException;
method public final void writeBoolean(boolean) throws java.io.IOException;
method public final void writeByte(int) throws java.io.IOException;
method public final void writeBytes(java.lang.String) throws java.io.IOException;
@@ -47381,10 +47432,10 @@
method public abstract void close() throws java.io.IOException;
method public void mark(int) throws java.io.IOException;
method public boolean markSupported();
+ method public int read(java.nio.CharBuffer) throws java.io.IOException;
method public int read() throws java.io.IOException;
method public int read(char[]) throws java.io.IOException;
method public abstract int read(char[], int, int) throws java.io.IOException;
- method public int read(java.nio.CharBuffer) throws java.io.IOException;
method public boolean ready() throws java.io.IOException;
method public void reset() throws java.io.IOException;
method public long skip(long) throws java.io.IOException;
@@ -47392,8 +47443,8 @@
}
public class SequenceInputStream extends java.io.InputStream {
- ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
ctor public SequenceInputStream(java.util.Enumeration<? extends java.io.InputStream>);
+ ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
method public int read() throws java.io.IOException;
}
@@ -47406,8 +47457,8 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
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 @@
}
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 @@
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
public final class String implements java.lang.CharSequence java.lang.Comparable java.io.Serializable {
ctor public String();
- ctor public String(byte[]);
- ctor public deprecated String(byte[], int);
- ctor public String(byte[], int, int);
- ctor public deprecated String(byte[], int, int, int);
- ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public String(byte[], int, int, java.nio.charset.Charset);
- ctor public String(byte[], java.nio.charset.Charset);
+ ctor public String(java.lang.String);
ctor public String(char[]);
ctor public String(char[], int, int);
- ctor public String(java.lang.String);
- ctor public String(java.lang.StringBuffer);
ctor public String(int[], int, int);
+ ctor public deprecated String(byte[], int, int, int);
+ ctor public deprecated String(byte[], int);
+ ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
+ ctor public String(byte[], int, int, java.nio.charset.Charset);
+ ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
+ ctor public String(byte[], java.nio.charset.Charset);
+ ctor public String(byte[], int, int);
+ ctor public String(byte[]);
+ ctor public String(java.lang.StringBuffer);
ctor public String(java.lang.StringBuilder);
method public char charAt(int);
method public int codePointAt(int);
@@ -48792,16 +49012,16 @@
method public boolean contains(java.lang.CharSequence);
method public boolean contentEquals(java.lang.StringBuffer);
method public boolean contentEquals(java.lang.CharSequence);
- method public static java.lang.String copyValueOf(char[]);
method public static java.lang.String copyValueOf(char[], int, int);
+ method public static java.lang.String copyValueOf(char[]);
method public boolean endsWith(java.lang.String);
method public boolean equalsIgnoreCase(java.lang.String);
method public static java.lang.String format(java.lang.String, java.lang.Object...);
method public static java.lang.String format(java.util.Locale, java.lang.String, java.lang.Object...);
method public deprecated void getBytes(int, int, byte[], int);
- method public byte[] getBytes();
method public byte[] getBytes(java.lang.String) throws java.io.UnsupportedEncodingException;
method public byte[] getBytes(java.nio.charset.Charset);
+ method public byte[] getBytes();
method public void getChars(int, int, char[], int);
method public int indexOf(int);
method public int indexOf(int, int);
@@ -48822,109 +49042,51 @@
method public java.lang.String replace(java.lang.CharSequence, java.lang.CharSequence);
method public java.lang.String replaceAll(java.lang.String, java.lang.String);
method public java.lang.String replaceFirst(java.lang.String, java.lang.String);
- method public java.lang.String[] split(java.lang.String);
method public java.lang.String[] split(java.lang.String, int);
- method public boolean startsWith(java.lang.String);
+ method public java.lang.String[] split(java.lang.String);
method public boolean startsWith(java.lang.String, int);
+ method public boolean startsWith(java.lang.String);
method public java.lang.CharSequence subSequence(int, int);
method public java.lang.String substring(int);
method public java.lang.String substring(int, int);
method public char[] toCharArray();
- method public java.lang.String toLowerCase();
method public java.lang.String toLowerCase(java.util.Locale);
- method public java.lang.String toUpperCase();
+ method public java.lang.String toLowerCase();
method public java.lang.String toUpperCase(java.util.Locale);
+ method public java.lang.String toUpperCase();
method public java.lang.String trim();
+ method public static java.lang.String valueOf(java.lang.Object);
method public static java.lang.String valueOf(char[]);
method public static java.lang.String valueOf(char[], int, int);
+ method public static java.lang.String valueOf(boolean);
method public static java.lang.String valueOf(char);
- method public static java.lang.String valueOf(double);
- method public static java.lang.String valueOf(float);
method public static java.lang.String valueOf(int);
method public static java.lang.String valueOf(long);
- method public static java.lang.String valueOf(java.lang.Object);
- method public static java.lang.String valueOf(boolean);
+ method public static java.lang.String valueOf(float);
+ method public static java.lang.String valueOf(double);
field public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
}
- public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+ public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
ctor public StringBuffer();
ctor public StringBuffer(int);
ctor public StringBuffer(java.lang.String);
ctor public StringBuffer(java.lang.CharSequence);
- method public java.lang.StringBuffer append(boolean);
- method public synchronized java.lang.StringBuffer append(char);
- method public java.lang.StringBuffer append(double);
- method public java.lang.StringBuffer append(float);
- method public java.lang.StringBuffer append(int);
- method public java.lang.StringBuffer append(long);
- method public synchronized java.lang.StringBuffer append(java.lang.Object);
- method public synchronized java.lang.StringBuffer append(java.lang.String);
- method public synchronized java.lang.StringBuffer append(java.lang.StringBuffer);
- method public synchronized java.lang.StringBuffer append(char[]);
- method public synchronized java.lang.StringBuffer append(char[], int, int);
- method public synchronized java.lang.StringBuffer append(java.lang.CharSequence);
- method public synchronized java.lang.StringBuffer append(java.lang.CharSequence, int, int);
- method public java.lang.StringBuffer appendCodePoint(int);
- method public synchronized java.lang.StringBuffer delete(int, int);
- method public synchronized java.lang.StringBuffer deleteCharAt(int);
- method public synchronized java.lang.StringBuffer insert(int, char);
- method public java.lang.StringBuffer insert(int, boolean);
- method public java.lang.StringBuffer insert(int, int);
- method public java.lang.StringBuffer insert(int, long);
- method public java.lang.StringBuffer insert(int, double);
- method public java.lang.StringBuffer insert(int, float);
- method public java.lang.StringBuffer insert(int, java.lang.Object);
- method public synchronized java.lang.StringBuffer insert(int, java.lang.String);
- method public synchronized java.lang.StringBuffer insert(int, char[]);
- method public synchronized java.lang.StringBuffer insert(int, char[], int, int);
- method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence);
- method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence, int, int);
- method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
- method public synchronized java.lang.StringBuffer reverse();
+ method public synchronized java.lang.String toString();
}
- public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+ public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
ctor public StringBuilder();
ctor public StringBuilder(int);
- ctor public StringBuilder(java.lang.CharSequence);
ctor public StringBuilder(java.lang.String);
- method public java.lang.StringBuilder append(boolean);
- method public java.lang.StringBuilder append(char);
- method public java.lang.StringBuilder append(int);
- method public java.lang.StringBuilder append(long);
- method public java.lang.StringBuilder append(float);
- method public java.lang.StringBuilder append(double);
- method public java.lang.StringBuilder append(java.lang.Object);
- method public java.lang.StringBuilder append(java.lang.String);
- method public java.lang.StringBuilder append(java.lang.StringBuffer);
- method public java.lang.StringBuilder append(char[]);
- method public java.lang.StringBuilder append(char[], int, int);
- method public java.lang.StringBuilder append(java.lang.CharSequence);
- method public java.lang.StringBuilder append(java.lang.CharSequence, int, int);
- method public java.lang.StringBuilder appendCodePoint(int);
- method public java.lang.StringBuilder delete(int, int);
- method public java.lang.StringBuilder deleteCharAt(int);
- method public java.lang.StringBuilder insert(int, boolean);
- method public java.lang.StringBuilder insert(int, char);
- method public java.lang.StringBuilder insert(int, int);
- method public java.lang.StringBuilder insert(int, long);
- method public java.lang.StringBuilder insert(int, float);
- method public java.lang.StringBuilder insert(int, double);
- method public java.lang.StringBuilder insert(int, java.lang.Object);
- method public java.lang.StringBuilder insert(int, java.lang.String);
- method public java.lang.StringBuilder insert(int, char[]);
- method public java.lang.StringBuilder insert(int, char[], int, int);
- method public java.lang.StringBuilder insert(int, java.lang.CharSequence);
- method public java.lang.StringBuilder insert(int, java.lang.CharSequence, int, int);
- method public java.lang.StringBuilder replace(int, int, java.lang.String);
- method public java.lang.StringBuilder reverse();
+ ctor public StringBuilder(java.lang.CharSequence);
+ method public java.lang.String toString();
}
public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
ctor public StringIndexOutOfBoundsException();
- ctor public StringIndexOutOfBoundsException(int);
ctor public StringIndexOutOfBoundsException(java.lang.String);
+ ctor public StringIndexOutOfBoundsException(int);
}
public abstract class SuppressWarnings implements java.lang.annotation.Annotation {
@@ -48966,11 +49128,11 @@
public class Thread implements java.lang.Runnable {
ctor public Thread();
ctor public Thread(java.lang.Runnable);
- ctor public Thread(java.lang.Runnable, java.lang.String);
- ctor public Thread(java.lang.String);
ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable);
- ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
+ ctor public Thread(java.lang.String);
ctor public Thread(java.lang.ThreadGroup, java.lang.String);
+ ctor public Thread(java.lang.Runnable, java.lang.String);
+ ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String, long);
method public static int activeCount();
method public final void checkAccess();
@@ -48995,9 +49157,9 @@
method public final boolean isAlive();
method public final boolean isDaemon();
method public boolean isInterrupted();
- method public final void join() throws java.lang.InterruptedException;
method public final void join(long) throws java.lang.InterruptedException;
method public final void join(long, int) throws java.lang.InterruptedException;
+ method public final void join() throws java.lang.InterruptedException;
method public final deprecated void resume();
method public void run();
method public void setContextClassLoader(java.lang.ClassLoader);
@@ -49010,7 +49172,7 @@
method public static void sleep(long, int) throws java.lang.InterruptedException;
method public synchronized void start();
method public final deprecated void stop();
- method public final deprecated synchronized void stop(java.lang.Throwable);
+ method public final deprecated void stop(java.lang.Throwable);
method public final deprecated void suspend();
method public static void yield();
field public static final int MAX_PRIORITY = 10; // 0xa
@@ -49079,14 +49241,14 @@
ctor public Throwable(java.lang.String, java.lang.Throwable);
ctor public Throwable(java.lang.Throwable);
ctor protected Throwable(java.lang.String, java.lang.Throwable, boolean, boolean);
- method public final void addSuppressed(java.lang.Throwable);
- method public java.lang.Throwable fillInStackTrace();
- method public java.lang.Throwable getCause();
+ method public final synchronized void addSuppressed(java.lang.Throwable);
+ method public synchronized java.lang.Throwable fillInStackTrace();
+ method public synchronized java.lang.Throwable getCause();
method public java.lang.String getLocalizedMessage();
method public java.lang.String getMessage();
method public java.lang.StackTraceElement[] getStackTrace();
- method public final java.lang.Throwable[] getSuppressed();
- method public java.lang.Throwable initCause(java.lang.Throwable);
+ method public final synchronized java.lang.Throwable[] getSuppressed();
+ method public synchronized java.lang.Throwable initCause(java.lang.Throwable);
method public void printStackTrace();
method public void printStackTrace(java.io.PrintStream);
method public void printStackTrace(java.io.PrintWriter);
@@ -49213,9 +49375,9 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
}
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
}
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 @@
}
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 @@
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 @@
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 @@
public class Socket implements java.io.Closeable {
ctor public Socket();
ctor public Socket(java.net.Proxy);
- ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
- ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
- ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
- ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
- ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
- ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
ctor protected Socket(java.net.SocketImpl) throws java.net.SocketException;
+ ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
+ ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
+ ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
+ ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
+ ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
+ ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
method public void bind(java.net.SocketAddress) throws java.io.IOException;
method public synchronized void close() throws java.io.IOException;
method public void connect(java.net.SocketAddress) throws java.io.IOException;
@@ -50190,8 +50369,10 @@
}
public class SocketException extends java.io.IOException {
- ctor public SocketException();
ctor public SocketException(java.lang.String);
+ ctor public SocketException();
+ ctor public SocketException(java.lang.Throwable);
+ ctor public SocketException(java.lang.String, java.lang.Throwable);
}
public abstract class SocketImpl implements java.net.SocketOptions {
@@ -50204,7 +50385,7 @@
method protected abstract void connect(java.net.InetAddress, int) throws java.io.IOException;
method protected abstract void connect(java.net.SocketAddress, int) throws java.io.IOException;
method protected abstract void create(boolean) throws java.io.IOException;
- method protected java.io.FileDescriptor getFileDescriptor();
+ method public java.io.FileDescriptor getFileDescriptor();
method protected java.net.InetAddress getInetAddress();
method protected abstract java.io.InputStream getInputStream() throws java.io.IOException;
method protected int getLocalPort();
@@ -50226,6 +50407,11 @@
method public abstract java.net.SocketImpl createSocketImpl();
}
+ public abstract interface SocketOption {
+ method public abstract java.lang.String name();
+ method public abstract java.lang.Class<T> type();
+ }
+
public abstract interface SocketOptions {
method public abstract java.lang.Object getOption(int) throws java.net.SocketException;
method public abstract void setOption(int, java.lang.Object) throws java.net.SocketException;
@@ -50247,21 +50433,46 @@
public final class SocketPermission extends java.security.Permission implements java.io.Serializable {
ctor public SocketPermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
public class SocketTimeoutException extends java.io.InterruptedIOException {
- ctor public SocketTimeoutException();
ctor public SocketTimeoutException(java.lang.String);
+ ctor public SocketTimeoutException();
+ ctor public SocketTimeoutException(java.lang.Throwable);
+ ctor public SocketTimeoutException(java.lang.String, java.lang.Throwable);
+ }
+
+ public final class StandardProtocolFamily extends java.lang.Enum implements java.net.ProtocolFamily {
+ method public static java.net.StandardProtocolFamily valueOf(java.lang.String);
+ method public static final java.net.StandardProtocolFamily[] values();
+ enum_constant public static final java.net.StandardProtocolFamily INET;
+ enum_constant public static final java.net.StandardProtocolFamily INET6;
+ }
+
+ public final class StandardSocketOptions {
+ field public static final java.net.SocketOption<java.net.NetworkInterface> IP_MULTICAST_IF;
+ field public static final java.net.SocketOption<java.lang.Boolean> IP_MULTICAST_LOOP;
+ field public static final java.net.SocketOption<java.lang.Integer> IP_MULTICAST_TTL;
+ field public static final java.net.SocketOption<java.lang.Integer> IP_TOS;
+ field public static final java.net.SocketOption<java.lang.Boolean> SO_BROADCAST;
+ field public static final java.net.SocketOption<java.lang.Boolean> SO_KEEPALIVE;
+ field public static final java.net.SocketOption<java.lang.Integer> SO_LINGER;
+ field public static final java.net.SocketOption<java.lang.Integer> SO_RCVBUF;
+ field public static final java.net.SocketOption<java.lang.Boolean> SO_REUSEADDR;
+ field public static final java.net.SocketOption<java.lang.Integer> SO_SNDBUF;
+ field public static final java.net.SocketOption<java.lang.Boolean> TCP_NODELAY;
}
public final class URI implements java.lang.Comparable java.io.Serializable {
ctor public URI(java.lang.String) throws java.net.URISyntaxException;
- ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
ctor public URI(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
- ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+ ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+ ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
method public int compareTo(java.net.URI);
method public static java.net.URI create(java.lang.String);
method public java.lang.String getAuthority();
@@ -50299,12 +50510,12 @@
}
public final class URL implements java.io.Serializable {
+ ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
+ ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
+ ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
ctor public URL(java.lang.String) throws java.net.MalformedURLException;
ctor public URL(java.net.URL, java.lang.String) throws java.net.MalformedURLException;
ctor public URL(java.net.URL, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
- ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
- ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
- ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
method public java.lang.String getAuthority();
method public final java.lang.Object getContent() throws java.io.IOException;
method public final java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
@@ -50323,22 +50534,24 @@
method public boolean sameFile(java.net.URL);
method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
- method public static synchronized void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
+ method public static void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
method public java.lang.String toExternalForm();
method public java.net.URI toURI() throws java.net.URISyntaxException;
+ method public java.net.URI toURILenient() throws java.net.URISyntaxException;
}
- public class URLClassLoader extends java.security.SecureClassLoader {
- ctor public URLClassLoader(java.net.URL[]);
+ public class URLClassLoader extends java.security.SecureClassLoader implements java.io.Closeable {
ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader);
+ ctor public URLClassLoader(java.net.URL[]);
ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader, java.net.URLStreamHandlerFactory);
method protected void addURL(java.net.URL);
+ method public void close() throws java.io.IOException;
method protected java.lang.Package definePackage(java.lang.String, java.util.jar.Manifest, java.net.URL) throws java.lang.IllegalArgumentException;
method public java.net.URL findResource(java.lang.String);
method public java.util.Enumeration<java.net.URL> findResources(java.lang.String) throws java.io.IOException;
method public java.net.URL[] getURLs();
- method public static java.net.URLClassLoader newInstance(java.net.URL[]);
method public static java.net.URLClassLoader newInstance(java.net.URL[], java.lang.ClassLoader);
+ method public static java.net.URLClassLoader newInstance(java.net.URL[]);
}
public abstract class URLConnection {
@@ -50351,6 +50564,7 @@
method public java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
method public java.lang.String getContentEncoding();
method public int getContentLength();
+ method public long getContentLengthLong();
method public java.lang.String getContentType();
method public long getDate();
method public static boolean getDefaultAllowUserInteraction();
@@ -50359,12 +50573,13 @@
method public boolean getDoInput();
method public boolean getDoOutput();
method public long getExpiration();
- method public static java.net.FileNameMap getFileNameMap();
- method public java.lang.String getHeaderField(int);
+ method public static synchronized java.net.FileNameMap getFileNameMap();
method public java.lang.String getHeaderField(java.lang.String);
+ method public java.lang.String getHeaderField(int);
method public long getHeaderFieldDate(java.lang.String, long);
method public int getHeaderFieldInt(java.lang.String, int);
method public java.lang.String getHeaderFieldKey(int);
+ method public long getHeaderFieldLong(java.lang.String, long);
method public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getHeaderFields();
method public long getIfModifiedSince();
method public java.io.InputStream getInputStream() throws java.io.IOException;
@@ -50415,15 +50630,15 @@
ctor public URLStreamHandler();
method protected boolean equals(java.net.URL, java.net.URL);
method protected int getDefaultPort();
- method protected java.net.InetAddress getHostAddress(java.net.URL);
+ method protected synchronized java.net.InetAddress getHostAddress(java.net.URL);
method protected int hashCode(java.net.URL);
method protected boolean hostsEqual(java.net.URL, java.net.URL);
method protected abstract java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
method protected java.net.URLConnection openConnection(java.net.URL, java.net.Proxy) throws java.io.IOException;
method protected void parseURL(java.net.URL, java.lang.String, int, int);
method protected boolean sameFile(java.net.URL, java.net.URL);
- method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
method protected void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+ method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
method protected java.lang.String toExternalForm(java.net.URL);
}
@@ -50432,8 +50647,8 @@
}
public class UnknownHostException extends java.io.IOException {
- ctor public UnknownHostException();
ctor public UnknownHostException(java.lang.String);
+ ctor public UnknownHostException();
}
public class UnknownServiceException extends java.io.IOException {
@@ -50489,9 +50704,9 @@
method public int compareTo(java.nio.ByteBuffer);
method public abstract java.nio.ByteBuffer duplicate();
method public abstract byte get();
- method public java.nio.ByteBuffer get(byte[]);
- method public java.nio.ByteBuffer get(byte[], int, int);
method public abstract byte get(int);
+ method public java.nio.ByteBuffer get(byte[], int, int);
+ method public java.nio.ByteBuffer get(byte[]);
method public abstract char getChar();
method public abstract char getChar(int);
method public abstract double getDouble();
@@ -50509,10 +50724,10 @@
method public final java.nio.ByteOrder order();
method public final java.nio.ByteBuffer order(java.nio.ByteOrder);
method public abstract java.nio.ByteBuffer put(byte);
- method public final java.nio.ByteBuffer put(byte[]);
- method public java.nio.ByteBuffer put(byte[], int, int);
- method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
method public abstract java.nio.ByteBuffer put(int, byte);
+ method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
+ method public java.nio.ByteBuffer put(byte[], int, int);
+ method public final java.nio.ByteBuffer put(byte[]);
method public abstract java.nio.ByteBuffer putChar(char);
method public abstract java.nio.ByteBuffer putChar(int, char);
method public abstract java.nio.ByteBuffer putDouble(double);
@@ -50526,8 +50741,8 @@
method public abstract java.nio.ByteBuffer putShort(short);
method public abstract java.nio.ByteBuffer putShort(int, short);
method public abstract java.nio.ByteBuffer slice();
- method public static java.nio.ByteBuffer wrap(byte[]);
method public static java.nio.ByteBuffer wrap(byte[], int, int);
+ method public static java.nio.ByteBuffer wrap(byte[]);
}
public final class ByteOrder {
@@ -50538,9 +50753,9 @@
public abstract class CharBuffer extends java.nio.Buffer implements java.lang.Appendable java.lang.CharSequence java.lang.Comparable java.lang.Readable {
method public static java.nio.CharBuffer allocate(int);
- method public java.nio.CharBuffer append(char);
method public java.nio.CharBuffer append(java.lang.CharSequence);
method public java.nio.CharBuffer append(java.lang.CharSequence, int, int);
+ method public java.nio.CharBuffer append(char);
method public final char[] array();
method public final int arrayOffset();
method public abstract java.nio.CharBuffer asReadOnlyBuffer();
@@ -50549,27 +50764,27 @@
method public int compareTo(java.nio.CharBuffer);
method public abstract java.nio.CharBuffer duplicate();
method public abstract char get();
- method public java.nio.CharBuffer get(char[]);
- method public java.nio.CharBuffer get(char[], int, int);
method public abstract char get(int);
+ method public java.nio.CharBuffer get(char[], int, int);
+ method public java.nio.CharBuffer get(char[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public final int length();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.CharBuffer put(char);
- method public final java.nio.CharBuffer put(char[]);
- method public java.nio.CharBuffer put(char[], int, int);
- method public java.nio.CharBuffer put(java.nio.CharBuffer);
method public abstract java.nio.CharBuffer put(int, char);
- method public final java.nio.CharBuffer put(java.lang.String);
+ method public java.nio.CharBuffer put(java.nio.CharBuffer);
+ method public java.nio.CharBuffer put(char[], int, int);
+ method public final java.nio.CharBuffer put(char[]);
method public java.nio.CharBuffer put(java.lang.String, int, int);
+ method public final java.nio.CharBuffer put(java.lang.String);
method public int read(java.nio.CharBuffer) throws java.io.IOException;
method public abstract java.nio.CharBuffer slice();
method public abstract java.nio.CharBuffer subSequence(int, int);
- method public static java.nio.CharBuffer wrap(char[]);
method public static java.nio.CharBuffer wrap(char[], int, int);
- method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
+ method public static java.nio.CharBuffer wrap(char[]);
method public static java.nio.CharBuffer wrap(java.lang.CharSequence, int, int);
+ method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
}
public abstract class DoubleBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -50581,20 +50796,20 @@
method public int compareTo(java.nio.DoubleBuffer);
method public abstract java.nio.DoubleBuffer duplicate();
method public abstract double get();
- method public java.nio.DoubleBuffer get(double[]);
- method public java.nio.DoubleBuffer get(double[], int, int);
method public abstract double get(int);
+ method public java.nio.DoubleBuffer get(double[], int, int);
+ method public java.nio.DoubleBuffer get(double[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.DoubleBuffer put(double);
- method public final java.nio.DoubleBuffer put(double[]);
- method public java.nio.DoubleBuffer put(double[], int, int);
- method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
method public abstract java.nio.DoubleBuffer put(int, double);
+ method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
+ method public java.nio.DoubleBuffer put(double[], int, int);
+ method public final java.nio.DoubleBuffer put(double[]);
method public abstract java.nio.DoubleBuffer slice();
- method public static java.nio.DoubleBuffer wrap(double[]);
method public static java.nio.DoubleBuffer wrap(double[], int, int);
+ method public static java.nio.DoubleBuffer wrap(double[]);
}
public abstract class FloatBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -50606,20 +50821,20 @@
method public int compareTo(java.nio.FloatBuffer);
method public abstract java.nio.FloatBuffer duplicate();
method public abstract float get();
- method public java.nio.FloatBuffer get(float[]);
- method public java.nio.FloatBuffer get(float[], int, int);
method public abstract float get(int);
+ method public java.nio.FloatBuffer get(float[], int, int);
+ method public java.nio.FloatBuffer get(float[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.FloatBuffer put(float);
- method public final java.nio.FloatBuffer put(float[]);
- method public java.nio.FloatBuffer put(float[], int, int);
- method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
method public abstract java.nio.FloatBuffer put(int, float);
+ method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
+ method public java.nio.FloatBuffer put(float[], int, int);
+ method public final java.nio.FloatBuffer put(float[]);
method public abstract java.nio.FloatBuffer slice();
- method public static java.nio.FloatBuffer wrap(float[]);
method public static java.nio.FloatBuffer wrap(float[], int, int);
+ method public static java.nio.FloatBuffer wrap(float[]);
}
public abstract class IntBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -50631,20 +50846,20 @@
method public int compareTo(java.nio.IntBuffer);
method public abstract java.nio.IntBuffer duplicate();
method public abstract int get();
- method public java.nio.IntBuffer get(int[]);
- method public java.nio.IntBuffer get(int[], int, int);
method public abstract int get(int);
+ method public java.nio.IntBuffer get(int[], int, int);
+ method public java.nio.IntBuffer get(int[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.IntBuffer put(int);
- method public final java.nio.IntBuffer put(int[]);
- method public java.nio.IntBuffer put(int[], int, int);
- method public java.nio.IntBuffer put(java.nio.IntBuffer);
method public abstract java.nio.IntBuffer put(int, int);
+ method public java.nio.IntBuffer put(java.nio.IntBuffer);
+ method public java.nio.IntBuffer put(int[], int, int);
+ method public final java.nio.IntBuffer put(int[]);
method public abstract java.nio.IntBuffer slice();
- method public static java.nio.IntBuffer wrap(int[]);
method public static java.nio.IntBuffer wrap(int[], int, int);
+ method public static java.nio.IntBuffer wrap(int[]);
}
public class InvalidMarkException extends java.lang.IllegalStateException {
@@ -50660,20 +50875,20 @@
method public int compareTo(java.nio.LongBuffer);
method public abstract java.nio.LongBuffer duplicate();
method public abstract long get();
- method public java.nio.LongBuffer get(long[]);
- method public java.nio.LongBuffer get(long[], int, int);
method public abstract long get(int);
+ method public java.nio.LongBuffer get(long[], int, int);
+ method public java.nio.LongBuffer get(long[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.LongBuffer put(long);
- method public final java.nio.LongBuffer put(long[]);
- method public java.nio.LongBuffer put(long[], int, int);
- method public java.nio.LongBuffer put(java.nio.LongBuffer);
method public abstract java.nio.LongBuffer put(int, long);
+ method public java.nio.LongBuffer put(java.nio.LongBuffer);
+ method public java.nio.LongBuffer put(long[], int, int);
+ method public final java.nio.LongBuffer put(long[]);
method public abstract java.nio.LongBuffer slice();
- method public static java.nio.LongBuffer wrap(long[]);
method public static java.nio.LongBuffer wrap(long[], int, int);
+ method public static java.nio.LongBuffer wrap(long[]);
}
public abstract class MappedByteBuffer extends java.nio.ByteBuffer {
@@ -50695,34 +50910,119 @@
method public int compareTo(java.nio.ShortBuffer);
method public abstract java.nio.ShortBuffer duplicate();
method public abstract short get();
- method public java.nio.ShortBuffer get(short[]);
- method public java.nio.ShortBuffer get(short[], int, int);
method public abstract short get(int);
+ method public java.nio.ShortBuffer get(short[], int, int);
+ method public java.nio.ShortBuffer get(short[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.ShortBuffer put(short);
- method public final java.nio.ShortBuffer put(short[]);
- method public java.nio.ShortBuffer put(short[], int, int);
- method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
method public abstract java.nio.ShortBuffer put(int, short);
+ method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
+ method public java.nio.ShortBuffer put(short[], int, int);
+ method public final java.nio.ShortBuffer put(short[]);
method public abstract java.nio.ShortBuffer slice();
- method public static java.nio.ShortBuffer wrap(short[]);
method public static java.nio.ShortBuffer wrap(short[], int, int);
+ method public static java.nio.ShortBuffer wrap(short[]);
}
}
package java.nio.channels {
+ public class AcceptPendingException extends java.lang.IllegalStateException {
+ ctor public AcceptPendingException();
+ }
+
+ public class AlreadyBoundException extends java.lang.IllegalStateException {
+ ctor public AlreadyBoundException();
+ }
+
public class AlreadyConnectedException extends java.lang.IllegalStateException {
ctor public AlreadyConnectedException();
}
+ public abstract interface AsynchronousByteChannel implements java.nio.channels.AsynchronousChannel {
+ method public abstract void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+ method public abstract void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+ }
+
+ public abstract interface AsynchronousChannel implements java.nio.channels.Channel {
+ method public abstract void close() throws java.io.IOException;
+ }
+
+ public abstract class AsynchronousChannelGroup {
+ ctor protected AsynchronousChannelGroup(java.nio.channels.spi.AsynchronousChannelProvider);
+ method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+ method public abstract boolean isShutdown();
+ method public abstract boolean isTerminated();
+ method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+ method public abstract void shutdown();
+ method public abstract void shutdownNow() throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousChannelGroup withCachedThreadPool(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousChannelGroup withFixedThreadPool(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousChannelGroup withThreadPool(java.util.concurrent.ExecutorService) throws java.io.IOException;
+ }
+
public class AsynchronousCloseException extends java.nio.channels.ClosedChannelException {
ctor public AsynchronousCloseException();
}
+ public abstract class AsynchronousFileChannel implements java.nio.channels.AsynchronousChannel {
+ ctor protected AsynchronousFileChannel();
+ method public abstract void force(boolean) throws java.io.IOException;
+ method public abstract void lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+ method public final void lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+ method public abstract java.util.concurrent.Future<java.nio.channels.FileLock> lock(long, long, boolean);
+ method public final java.util.concurrent.Future<java.nio.channels.FileLock> lock();
+ method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public abstract void read(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer, long);
+ method public abstract long size() throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousFileChannel truncate(long) throws java.io.IOException;
+ method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+ method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
+ method public abstract void write(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer, long);
+ }
+
+ public abstract class AsynchronousServerSocketChannel implements java.nio.channels.AsynchronousChannel java.nio.channels.NetworkChannel {
+ ctor protected AsynchronousServerSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+ method public abstract void accept(A, java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel, ? super A>);
+ method public abstract java.util.concurrent.Future<java.nio.channels.AsynchronousSocketChannel> accept();
+ method public final java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousServerSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousServerSocketChannel open() throws java.io.IOException;
+ method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+ method public abstract java.nio.channels.AsynchronousServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ }
+
+ public abstract class AsynchronousSocketChannel implements java.nio.channels.AsynchronousByteChannel java.nio.channels.NetworkChannel {
+ ctor protected AsynchronousSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+ method public abstract java.nio.channels.AsynchronousSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract void connect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Void> connect(java.net.SocketAddress);
+ method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousSocketChannel open() throws java.io.IOException;
+ method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+ method public abstract void read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public final void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+ method public abstract void read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+ method public abstract java.nio.channels.AsynchronousSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousSocketChannel shutdownInput() throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousSocketChannel shutdownOutput() throws java.io.IOException;
+ method public abstract void write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public final void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+ method public abstract void write(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+ }
+
public abstract interface ByteChannel implements java.nio.channels.ReadableByteChannel java.nio.channels.WritableByteChannel {
}
@@ -50739,7 +51039,9 @@
method public static java.nio.channels.ReadableByteChannel newChannel(java.io.InputStream);
method public static java.nio.channels.WritableByteChannel newChannel(java.io.OutputStream);
method public static java.io.InputStream newInputStream(java.nio.channels.ReadableByteChannel);
+ method public static java.io.InputStream newInputStream(java.nio.channels.AsynchronousByteChannel);
method public static java.io.OutputStream newOutputStream(java.nio.channels.WritableByteChannel);
+ method public static java.io.OutputStream newOutputStream(java.nio.channels.AsynchronousByteChannel);
method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int);
method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.lang.String);
method public static java.io.Writer newWriter(java.nio.channels.WritableByteChannel, java.nio.charset.CharsetEncoder, int);
@@ -50758,50 +51060,61 @@
ctor public ClosedSelectorException();
}
+ public abstract interface CompletionHandler {
+ method public abstract void completed(V, A);
+ method public abstract void failed(java.lang.Throwable, A);
+ }
+
public class ConnectionPendingException extends java.lang.IllegalStateException {
ctor public ConnectionPendingException();
}
- public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+ public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.MulticastChannel java.nio.channels.ScatteringByteChannel {
ctor protected DatagramChannel(java.nio.channels.spi.SelectorProvider);
+ method public abstract java.nio.channels.DatagramChannel bind(java.net.SocketAddress) throws java.io.IOException;
method public abstract java.nio.channels.DatagramChannel connect(java.net.SocketAddress) throws java.io.IOException;
method public abstract java.nio.channels.DatagramChannel disconnect() throws java.io.IOException;
+ method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
method public abstract boolean isConnected();
method public static java.nio.channels.DatagramChannel open() throws java.io.IOException;
+ method public static java.nio.channels.DatagramChannel open(java.net.ProtocolFamily) throws java.io.IOException;
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract java.net.SocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract int send(java.nio.ByteBuffer, java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
method public abstract java.net.DatagramSocket socket();
method public final int validOps();
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
}
- public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+ public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel java.nio.channels.SeekableByteChannel {
ctor protected FileChannel();
method public abstract void force(boolean) throws java.io.IOException;
- method public final java.nio.channels.FileLock lock() throws java.io.IOException;
method public abstract java.nio.channels.FileLock lock(long, long, boolean) throws java.io.IOException;
+ method public final java.nio.channels.FileLock lock() throws java.io.IOException;
method public abstract java.nio.MappedByteBuffer map(java.nio.channels.FileChannel.MapMode, long, long) throws java.io.IOException;
+ method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
method public abstract long position() throws java.io.IOException;
method public abstract java.nio.channels.FileChannel position(long) throws java.io.IOException;
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
- method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
- method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
method public abstract long size() throws java.io.IOException;
method public abstract long transferFrom(java.nio.channels.ReadableByteChannel, long, long) throws java.io.IOException;
method public abstract long transferTo(long, long, java.nio.channels.WritableByteChannel) throws java.io.IOException;
method public abstract java.nio.channels.FileChannel truncate(long) throws java.io.IOException;
- method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+ method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
- method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
- method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
}
public static class FileChannel.MapMode {
@@ -50812,6 +51125,8 @@
public abstract class FileLock implements java.lang.AutoCloseable {
ctor protected FileLock(java.nio.channels.FileChannel, long, long, boolean);
+ ctor protected FileLock(java.nio.channels.AsynchronousFileChannel, long, long, boolean);
+ method public java.nio.channels.Channel acquiredBy();
method public final java.nio.channels.FileChannel channel();
method public final void close() throws java.io.IOException;
method public final boolean isShared();
@@ -50828,22 +51143,56 @@
}
public abstract interface GatheringByteChannel implements java.nio.channels.WritableByteChannel {
- method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
}
public class IllegalBlockingModeException extends java.lang.IllegalStateException {
ctor public IllegalBlockingModeException();
}
+ public class IllegalChannelGroupException extends java.lang.IllegalArgumentException {
+ ctor public IllegalChannelGroupException();
+ }
+
public class IllegalSelectorException extends java.lang.IllegalArgumentException {
ctor public IllegalSelectorException();
}
+ public class InterruptedByTimeoutException extends java.io.IOException {
+ ctor public InterruptedByTimeoutException();
+ }
+
public abstract interface InterruptibleChannel implements java.nio.channels.Channel {
method public abstract void close() throws java.io.IOException;
}
+ public abstract class MembershipKey {
+ ctor protected MembershipKey();
+ method public abstract java.nio.channels.MembershipKey block(java.net.InetAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.MulticastChannel channel();
+ method public abstract void drop();
+ method public abstract java.net.InetAddress group();
+ method public abstract boolean isValid();
+ method public abstract java.net.NetworkInterface networkInterface();
+ method public abstract java.net.InetAddress sourceAddress();
+ method public abstract java.nio.channels.MembershipKey unblock(java.net.InetAddress);
+ }
+
+ public abstract interface MulticastChannel implements java.nio.channels.NetworkChannel {
+ method public abstract void close() throws java.io.IOException;
+ method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface) throws java.io.IOException;
+ method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress) throws java.io.IOException;
+ }
+
+ public abstract interface NetworkChannel implements java.nio.channels.Channel {
+ method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException;
+ method public abstract T getOption(java.net.SocketOption<T>) throws java.io.IOException;
+ method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ method public abstract java.util.Set<java.net.SocketOption<?>> supportedOptions();
+ }
+
public class NoConnectionPendingException extends java.lang.IllegalStateException {
ctor public NoConnectionPendingException();
}
@@ -50885,13 +51234,26 @@
method public final int validOps();
}
+ public class ReadPendingException extends java.lang.IllegalStateException {
+ ctor public ReadPendingException();
+ }
+
public abstract interface ReadableByteChannel implements java.nio.channels.Channel {
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
}
public abstract interface ScatteringByteChannel implements java.nio.channels.ReadableByteChannel {
- method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ }
+
+ public abstract interface SeekableByteChannel implements java.nio.channels.ByteChannel {
+ method public abstract long position() throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel position(long) throws java.io.IOException;
+ method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
+ method public abstract long size() throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel truncate(long) throws java.io.IOException;
+ method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
}
public abstract class SelectableChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.Channel {
@@ -50902,8 +51264,8 @@
method public abstract boolean isRegistered();
method public abstract java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
method public abstract java.nio.channels.spi.SelectorProvider provider();
- method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
method public abstract java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
+ method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
method public abstract int validOps();
}
@@ -50935,37 +51297,49 @@
method public abstract java.util.Set<java.nio.channels.SelectionKey> keys();
method public static java.nio.channels.Selector open() throws java.io.IOException;
method public abstract java.nio.channels.spi.SelectorProvider provider();
- method public abstract int select() throws java.io.IOException;
method public abstract int select(long) throws java.io.IOException;
+ method public abstract int select() throws java.io.IOException;
method public abstract int selectNow() throws java.io.IOException;
method public abstract java.util.Set<java.nio.channels.SelectionKey> selectedKeys();
method public abstract java.nio.channels.Selector wakeup();
}
- public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel {
+ public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.NetworkChannel {
ctor protected ServerSocketChannel(java.nio.channels.spi.SelectorProvider);
method public abstract java.nio.channels.SocketChannel accept() throws java.io.IOException;
+ method public final java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
method public static java.nio.channels.ServerSocketChannel open() throws java.io.IOException;
+ method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
method public abstract java.net.ServerSocket socket();
method public final int validOps();
}
- public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+ public class ShutdownChannelGroupException extends java.lang.IllegalStateException {
+ ctor public ShutdownChannelGroupException();
+ }
+
+ public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.NetworkChannel java.nio.channels.ScatteringByteChannel {
ctor protected SocketChannel(java.nio.channels.spi.SelectorProvider);
+ method public abstract java.nio.channels.SocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
method public abstract boolean connect(java.net.SocketAddress) throws java.io.IOException;
method public abstract boolean finishConnect() throws java.io.IOException;
+ method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
method public abstract boolean isConnected();
method public abstract boolean isConnectionPending();
method public static java.nio.channels.SocketChannel open() throws java.io.IOException;
method public static java.nio.channels.SocketChannel open(java.net.SocketAddress) throws java.io.IOException;
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ method public abstract java.nio.channels.SocketChannel shutdownInput() throws java.io.IOException;
+ method public abstract java.nio.channels.SocketChannel shutdownOutput() throws java.io.IOException;
method public abstract java.net.Socket socket();
method public final int validOps();
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
}
public class UnresolvedAddressException extends java.lang.IllegalArgumentException {
@@ -50980,6 +51354,10 @@
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
}
+ public class WritePendingException extends java.lang.IllegalStateException {
+ ctor public WritePendingException();
+ }
+
}
package java.nio.channels.spi {
@@ -50990,19 +51368,19 @@
method public final void close() throws java.io.IOException;
method protected final void end(boolean) throws java.nio.channels.AsynchronousCloseException;
method protected abstract void implCloseChannel() throws java.io.IOException;
- method public final synchronized boolean isOpen();
+ method public final boolean isOpen();
}
public abstract class AbstractSelectableChannel extends java.nio.channels.SelectableChannel {
ctor protected AbstractSelectableChannel(java.nio.channels.spi.SelectorProvider);
method public final java.lang.Object blockingLock();
method public final java.nio.channels.SelectableChannel configureBlocking(boolean) throws java.io.IOException;
- method protected final synchronized void implCloseChannel() throws java.io.IOException;
+ method protected final void implCloseChannel() throws java.io.IOException;
method protected abstract void implCloseSelectableChannel() throws java.io.IOException;
method protected abstract void implConfigureBlocking(boolean) throws java.io.IOException;
method public final boolean isBlocking();
- method public final synchronized boolean isRegistered();
- method public final synchronized java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
+ method public final boolean isRegistered();
+ method public final java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
method public final java.nio.channels.spi.SelectorProvider provider();
method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
}
@@ -51026,15 +51404,25 @@
method protected abstract java.nio.channels.SelectionKey register(java.nio.channels.spi.AbstractSelectableChannel, int, java.lang.Object);
}
+ public abstract class AsynchronousChannelProvider {
+ ctor protected AsynchronousChannelProvider();
+ method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousSocketChannel openAsynchronousSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public static java.nio.channels.spi.AsynchronousChannelProvider provider();
+ }
+
public abstract class SelectorProvider {
ctor protected SelectorProvider();
method public java.nio.channels.Channel inheritedChannel() throws java.io.IOException;
method public abstract java.nio.channels.DatagramChannel openDatagramChannel() throws java.io.IOException;
+ method public abstract java.nio.channels.DatagramChannel openDatagramChannel(java.net.ProtocolFamily) throws java.io.IOException;
method public abstract java.nio.channels.Pipe openPipe() throws java.io.IOException;
method public abstract java.nio.channels.spi.AbstractSelector openSelector() throws java.io.IOException;
method public abstract java.nio.channels.ServerSocketChannel openServerSocketChannel() throws java.io.IOException;
method public abstract java.nio.channels.SocketChannel openSocketChannel() throws java.io.IOException;
- method public static synchronized java.nio.channels.spi.SelectorProvider provider();
+ method public static java.nio.channels.spi.SelectorProvider provider();
}
}
@@ -51073,8 +51461,8 @@
ctor protected CharsetDecoder(java.nio.charset.Charset, float, float);
method public final float averageCharsPerByte();
method public final java.nio.charset.Charset charset();
- method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
method public final java.nio.charset.CoderResult decode(java.nio.ByteBuffer, java.nio.CharBuffer, boolean);
+ method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
method protected abstract java.nio.charset.CoderResult decodeLoop(java.nio.ByteBuffer, java.nio.CharBuffer);
method public java.nio.charset.Charset detectedCharset();
method public final java.nio.charset.CoderResult flush(java.nio.CharBuffer);
@@ -51096,14 +51484,14 @@
}
public abstract class CharsetEncoder {
- ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
ctor protected CharsetEncoder(java.nio.charset.Charset, float, float, byte[]);
+ ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
method public final float averageBytesPerChar();
method public boolean canEncode(char);
method public boolean canEncode(java.lang.CharSequence);
method public final java.nio.charset.Charset charset();
- method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
method public final java.nio.charset.CoderResult encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean);
+ method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
method protected abstract java.nio.charset.CoderResult encodeLoop(java.nio.CharBuffer, java.nio.ByteBuffer);
method public final java.nio.charset.CoderResult flush(java.nio.ByteBuffer);
method protected java.nio.charset.CoderResult implFlush(java.nio.ByteBuffer);
@@ -51132,10 +51520,10 @@
method public boolean isOverflow();
method public boolean isUnderflow();
method public boolean isUnmappable();
- method public int length() throws java.lang.UnsupportedOperationException;
- method public static synchronized java.nio.charset.CoderResult malformedForLength(int) throws java.lang.IllegalArgumentException;
- method public void throwException() throws java.nio.BufferOverflowException, java.nio.BufferUnderflowException, java.nio.charset.CharacterCodingException, java.nio.charset.MalformedInputException, java.nio.charset.UnmappableCharacterException;
- method public static synchronized java.nio.charset.CoderResult unmappableForLength(int) throws java.lang.IllegalArgumentException;
+ method public int length();
+ method public static java.nio.charset.CoderResult malformedForLength(int);
+ method public void throwException() throws java.nio.charset.CharacterCodingException;
+ method public static java.nio.charset.CoderResult unmappableForLength(int);
field public static final java.nio.charset.CoderResult OVERFLOW;
field public static final java.nio.charset.CoderResult UNDERFLOW;
}
@@ -51187,11 +51575,597 @@
}
+package java.nio.file {
+
+ public class AccessDeniedException extends java.nio.file.FileSystemException {
+ ctor public AccessDeniedException(java.lang.String);
+ ctor public AccessDeniedException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public final class AccessMode extends java.lang.Enum {
+ method public static java.nio.file.AccessMode valueOf(java.lang.String);
+ method public static final java.nio.file.AccessMode[] values();
+ enum_constant public static final java.nio.file.AccessMode EXECUTE;
+ enum_constant public static final java.nio.file.AccessMode READ;
+ enum_constant public static final java.nio.file.AccessMode WRITE;
+ }
+
+ public class AtomicMoveNotSupportedException extends java.nio.file.FileSystemException {
+ ctor public AtomicMoveNotSupportedException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public class ClosedDirectoryStreamException extends java.lang.IllegalStateException {
+ ctor public ClosedDirectoryStreamException();
+ }
+
+ public class ClosedFileSystemException extends java.lang.IllegalStateException {
+ ctor public ClosedFileSystemException();
+ }
+
+ public class ClosedWatchServiceException extends java.lang.IllegalStateException {
+ ctor public ClosedWatchServiceException();
+ }
+
+ public abstract interface CopyOption {
+ }
+
+ public final class DirectoryIteratorException extends java.util.ConcurrentModificationException {
+ ctor public DirectoryIteratorException(java.io.IOException);
+ }
+
+ public class DirectoryNotEmptyException extends java.nio.file.FileSystemException {
+ ctor public DirectoryNotEmptyException(java.lang.String);
+ }
+
+ public abstract interface DirectoryStream implements java.io.Closeable java.lang.Iterable {
+ method public abstract java.util.Iterator<T> iterator();
+ }
+
+ public static abstract interface DirectoryStream.Filter {
+ method public abstract boolean accept(T) throws java.io.IOException;
+ }
+
+ public class FileAlreadyExistsException extends java.nio.file.FileSystemException {
+ ctor public FileAlreadyExistsException(java.lang.String);
+ ctor public FileAlreadyExistsException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public abstract class FileStore {
+ ctor protected FileStore();
+ method public abstract java.lang.Object getAttribute(java.lang.String) throws java.io.IOException;
+ method public abstract V getFileStoreAttributeView(java.lang.Class<V>);
+ method public abstract long getTotalSpace() throws java.io.IOException;
+ method public abstract long getUnallocatedSpace() throws java.io.IOException;
+ method public abstract long getUsableSpace() throws java.io.IOException;
+ method public abstract boolean isReadOnly();
+ method public abstract java.lang.String name();
+ method public abstract boolean supportsFileAttributeView(java.lang.Class<? extends java.nio.file.attribute.FileAttributeView>);
+ method public abstract boolean supportsFileAttributeView(java.lang.String);
+ method public abstract java.lang.String type();
+ }
+
+ public abstract class FileSystem implements java.io.Closeable {
+ ctor protected FileSystem();
+ method public abstract void close() throws java.io.IOException;
+ method public abstract java.lang.Iterable<java.nio.file.FileStore> getFileStores();
+ method public abstract java.nio.file.Path getPath(java.lang.String, java.lang.String...);
+ method public abstract java.nio.file.PathMatcher getPathMatcher(java.lang.String);
+ method public abstract java.lang.Iterable<java.nio.file.Path> getRootDirectories();
+ method public abstract java.lang.String getSeparator();
+ method public abstract java.nio.file.attribute.UserPrincipalLookupService getUserPrincipalLookupService();
+ method public abstract boolean isOpen();
+ method public abstract boolean isReadOnly();
+ method public abstract java.nio.file.WatchService newWatchService() throws java.io.IOException;
+ method public abstract java.nio.file.spi.FileSystemProvider provider();
+ method public abstract java.util.Set<java.lang.String> supportedFileAttributeViews();
+ }
+
+ public class FileSystemAlreadyExistsException extends java.lang.RuntimeException {
+ ctor public FileSystemAlreadyExistsException();
+ ctor public FileSystemAlreadyExistsException(java.lang.String);
+ }
+
+ public class FileSystemException extends java.io.IOException {
+ ctor public FileSystemException(java.lang.String);
+ ctor public FileSystemException(java.lang.String, java.lang.String, java.lang.String);
+ method public java.lang.String getFile();
+ method public java.lang.String getOtherFile();
+ method public java.lang.String getReason();
+ }
+
+ public class FileSystemLoopException extends java.nio.file.FileSystemException {
+ ctor public FileSystemLoopException(java.lang.String);
+ }
+
+ public class FileSystemNotFoundException extends java.lang.RuntimeException {
+ ctor public FileSystemNotFoundException();
+ ctor public FileSystemNotFoundException(java.lang.String);
+ }
+
+ public final class FileSystems {
+ method public static java.nio.file.FileSystem getDefault();
+ method public static java.nio.file.FileSystem getFileSystem(java.net.URI);
+ method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+ method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>, java.lang.ClassLoader) throws java.io.IOException;
+ method public static java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.lang.ClassLoader) throws java.io.IOException;
+ }
+
+ public final class FileVisitOption extends java.lang.Enum {
+ method public static java.nio.file.FileVisitOption valueOf(java.lang.String);
+ method public static final java.nio.file.FileVisitOption[] values();
+ enum_constant public static final java.nio.file.FileVisitOption FOLLOW_LINKS;
+ }
+
+ public final class FileVisitResult extends java.lang.Enum {
+ method public static java.nio.file.FileVisitResult valueOf(java.lang.String);
+ method public static final java.nio.file.FileVisitResult[] values();
+ enum_constant public static final java.nio.file.FileVisitResult CONTINUE;
+ enum_constant public static final java.nio.file.FileVisitResult SKIP_SIBLINGS;
+ enum_constant public static final java.nio.file.FileVisitResult SKIP_SUBTREE;
+ enum_constant public static final java.nio.file.FileVisitResult TERMINATE;
+ }
+
+ public abstract interface FileVisitor {
+ method public abstract java.nio.file.FileVisitResult postVisitDirectory(T, java.io.IOException) throws java.io.IOException;
+ method public abstract java.nio.file.FileVisitResult preVisitDirectory(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+ method public abstract java.nio.file.FileVisitResult visitFile(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+ method public abstract java.nio.file.FileVisitResult visitFileFailed(T, java.io.IOException) throws java.io.IOException;
+ }
+
+ public final class Files {
+ method public static java.nio.file.Path copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public static long copy(java.io.InputStream, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public static long copy(java.nio.file.Path, java.io.OutputStream) throws java.io.IOException;
+ method public static java.nio.file.Path createDirectories(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createFile(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.Path createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempDirectory(java.nio.file.Path, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempDirectory(java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempFile(java.nio.file.Path, java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempFile(java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static void delete(java.nio.file.Path) throws java.io.IOException;
+ method public static boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+ method public static boolean exists(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static java.lang.Object getAttribute(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+ method public static java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.attribute.FileTime getLastModifiedTime(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.nio.file.attribute.UserPrincipal getOwner(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> getPosixFilePermissions(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static boolean isDirectory(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static boolean isExecutable(java.nio.file.Path);
+ method public static boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+ method public static boolean isReadable(java.nio.file.Path);
+ method public static boolean isRegularFile(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public static boolean isSymbolicLink(java.nio.file.Path);
+ method public static boolean isWritable(java.nio.file.Path);
+ method public static java.nio.file.Path move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public static java.io.BufferedReader newBufferedReader(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+ method public static java.io.BufferedWriter newBufferedWriter(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+ method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+ method public static java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static boolean notExists(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+ method public static byte[] readAllBytes(java.nio.file.Path) throws java.io.IOException;
+ method public static java.util.List<java.lang.String> readAllLines(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+ method public static A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.Path setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.nio.file.Path setLastModifiedTime(java.nio.file.Path, java.nio.file.attribute.FileTime) throws java.io.IOException;
+ method public static java.nio.file.Path setOwner(java.nio.file.Path, java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+ method public static java.nio.file.Path setPosixFilePermissions(java.nio.file.Path, java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+ method public static long size(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.util.Set<java.nio.file.FileVisitOption>, int, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+ method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+ method public static java.nio.file.Path write(java.nio.file.Path, byte[], java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.nio.file.Path write(java.nio.file.Path, java.lang.Iterable<? extends java.lang.CharSequence>, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+ }
+
+ public class InvalidPathException extends java.lang.IllegalArgumentException {
+ ctor public InvalidPathException(java.lang.String, java.lang.String, int);
+ ctor public InvalidPathException(java.lang.String, java.lang.String);
+ method public int getIndex();
+ method public java.lang.String getInput();
+ method public java.lang.String getReason();
+ }
+
+ public final class LinkOption extends java.lang.Enum implements java.nio.file.CopyOption java.nio.file.OpenOption {
+ method public static java.nio.file.LinkOption valueOf(java.lang.String);
+ method public static final java.nio.file.LinkOption[] values();
+ enum_constant public static final java.nio.file.LinkOption NOFOLLOW_LINKS;
+ }
+
+ public final class LinkPermission extends java.security.BasicPermission {
+ ctor public LinkPermission(java.lang.String);
+ ctor public LinkPermission(java.lang.String, java.lang.String);
+ }
+
+ public class NoSuchFileException extends java.nio.file.FileSystemException {
+ ctor public NoSuchFileException(java.lang.String);
+ ctor public NoSuchFileException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public class NotDirectoryException extends java.nio.file.FileSystemException {
+ ctor public NotDirectoryException(java.lang.String);
+ }
+
+ public class NotLinkException extends java.nio.file.FileSystemException {
+ ctor public NotLinkException(java.lang.String);
+ ctor public NotLinkException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public abstract interface OpenOption {
+ }
+
+ public abstract interface Path implements java.lang.Comparable java.lang.Iterable java.nio.file.Watchable {
+ method public abstract int compareTo(java.nio.file.Path);
+ method public abstract boolean endsWith(java.nio.file.Path);
+ method public abstract boolean endsWith(java.lang.String);
+ method public abstract boolean equals(java.lang.Object);
+ method public abstract java.nio.file.Path getFileName();
+ method public abstract java.nio.file.FileSystem getFileSystem();
+ method public abstract java.nio.file.Path getName(int);
+ method public abstract int getNameCount();
+ method public abstract java.nio.file.Path getParent();
+ method public abstract java.nio.file.Path getRoot();
+ method public abstract int hashCode();
+ method public abstract boolean isAbsolute();
+ method public abstract java.util.Iterator<java.nio.file.Path> iterator();
+ method public abstract java.nio.file.Path normalize();
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.Path relativize(java.nio.file.Path);
+ method public abstract java.nio.file.Path resolve(java.nio.file.Path);
+ method public abstract java.nio.file.Path resolve(java.lang.String);
+ method public abstract java.nio.file.Path resolveSibling(java.nio.file.Path);
+ method public abstract java.nio.file.Path resolveSibling(java.lang.String);
+ method public abstract boolean startsWith(java.nio.file.Path);
+ method public abstract boolean startsWith(java.lang.String);
+ method public abstract java.nio.file.Path subpath(int, int);
+ method public abstract java.nio.file.Path toAbsolutePath();
+ method public abstract java.io.File toFile();
+ method public abstract java.nio.file.Path toRealPath(java.nio.file.LinkOption...) throws java.io.IOException;
+ method public abstract java.lang.String toString();
+ method public abstract java.net.URI toUri();
+ }
+
+ public abstract interface PathMatcher {
+ method public abstract boolean matches(java.nio.file.Path);
+ }
+
+ public final class Paths {
+ method public static java.nio.file.Path get(java.lang.String, java.lang.String...);
+ method public static java.nio.file.Path get(java.net.URI);
+ }
+
+ public class ProviderMismatchException extends java.lang.IllegalArgumentException {
+ ctor public ProviderMismatchException();
+ ctor public ProviderMismatchException(java.lang.String);
+ }
+
+ public class ProviderNotFoundException extends java.lang.RuntimeException {
+ ctor public ProviderNotFoundException();
+ ctor public ProviderNotFoundException(java.lang.String);
+ }
+
+ public class ReadOnlyFileSystemException extends java.lang.UnsupportedOperationException {
+ ctor public ReadOnlyFileSystemException();
+ }
+
+ public abstract interface SecureDirectoryStream implements java.nio.file.DirectoryStream {
+ method public abstract void deleteDirectory(T) throws java.io.IOException;
+ method public abstract void deleteFile(T) throws java.io.IOException;
+ method public abstract V getFileAttributeView(java.lang.Class<V>);
+ method public abstract V getFileAttributeView(T, java.lang.Class<V>, java.nio.file.LinkOption...);
+ method public abstract void move(T, java.nio.file.SecureDirectoryStream<T>, T) throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel newByteChannel(T, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.SecureDirectoryStream<T> newDirectoryStream(T, java.nio.file.LinkOption...) throws java.io.IOException;
+ }
+
+ public final class StandardCopyOption extends java.lang.Enum implements java.nio.file.CopyOption {
+ method public static java.nio.file.StandardCopyOption valueOf(java.lang.String);
+ method public static final java.nio.file.StandardCopyOption[] values();
+ enum_constant public static final java.nio.file.StandardCopyOption ATOMIC_MOVE;
+ enum_constant public static final java.nio.file.StandardCopyOption COPY_ATTRIBUTES;
+ enum_constant public static final java.nio.file.StandardCopyOption REPLACE_EXISTING;
+ }
+
+ public final class StandardOpenOption extends java.lang.Enum implements java.nio.file.OpenOption {
+ method public static java.nio.file.StandardOpenOption valueOf(java.lang.String);
+ method public static final java.nio.file.StandardOpenOption[] values();
+ enum_constant public static final java.nio.file.StandardOpenOption APPEND;
+ enum_constant public static final java.nio.file.StandardOpenOption CREATE;
+ enum_constant public static final java.nio.file.StandardOpenOption CREATE_NEW;
+ enum_constant public static final java.nio.file.StandardOpenOption DELETE_ON_CLOSE;
+ enum_constant public static final java.nio.file.StandardOpenOption DSYNC;
+ enum_constant public static final java.nio.file.StandardOpenOption READ;
+ enum_constant public static final java.nio.file.StandardOpenOption SPARSE;
+ enum_constant public static final java.nio.file.StandardOpenOption SYNC;
+ enum_constant public static final java.nio.file.StandardOpenOption TRUNCATE_EXISTING;
+ enum_constant public static final java.nio.file.StandardOpenOption WRITE;
+ }
+
+ public final class StandardWatchEventKinds {
+ field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_CREATE;
+ field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_DELETE;
+ field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_MODIFY;
+ field public static final java.nio.file.WatchEvent.Kind<java.lang.Object> OVERFLOW;
+ }
+
+ public abstract interface WatchEvent {
+ method public abstract T context();
+ method public abstract int count();
+ method public abstract java.nio.file.WatchEvent.Kind<T> kind();
+ }
+
+ public static abstract interface WatchEvent.Kind {
+ method public abstract java.lang.String name();
+ method public abstract java.lang.Class<T> type();
+ }
+
+ public static abstract interface WatchEvent.Modifier {
+ method public abstract java.lang.String name();
+ }
+
+ public abstract interface WatchKey {
+ method public abstract void cancel();
+ method public abstract boolean isValid();
+ method public abstract java.util.List<java.nio.file.WatchEvent<?>> pollEvents();
+ method public abstract boolean reset();
+ method public abstract java.nio.file.Watchable watchable();
+ }
+
+ public abstract interface WatchService implements java.io.Closeable {
+ method public abstract void close() throws java.io.IOException;
+ method public abstract java.nio.file.WatchKey poll();
+ method public abstract java.nio.file.WatchKey poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+ method public abstract java.nio.file.WatchKey take() throws java.lang.InterruptedException;
+ }
+
+ public abstract interface Watchable {
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+ }
+
+}
+
+package java.nio.file.attribute {
+
+ public final class AclEntry {
+ method public java.util.Set<java.nio.file.attribute.AclEntryFlag> flags();
+ method public static java.nio.file.attribute.AclEntry.Builder newBuilder();
+ method public static java.nio.file.attribute.AclEntry.Builder newBuilder(java.nio.file.attribute.AclEntry);
+ method public java.util.Set<java.nio.file.attribute.AclEntryPermission> permissions();
+ method public java.nio.file.attribute.UserPrincipal principal();
+ method public java.nio.file.attribute.AclEntryType type();
+ }
+
+ public static final class AclEntry.Builder {
+ method public java.nio.file.attribute.AclEntry build();
+ method public java.nio.file.attribute.AclEntry.Builder setFlags(java.util.Set<java.nio.file.attribute.AclEntryFlag>);
+ method public java.nio.file.attribute.AclEntry.Builder setFlags(java.nio.file.attribute.AclEntryFlag...);
+ method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.util.Set<java.nio.file.attribute.AclEntryPermission>);
+ method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.nio.file.attribute.AclEntryPermission...);
+ method public java.nio.file.attribute.AclEntry.Builder setPrincipal(java.nio.file.attribute.UserPrincipal);
+ method public java.nio.file.attribute.AclEntry.Builder setType(java.nio.file.attribute.AclEntryType);
+ }
+
+ public final class AclEntryFlag extends java.lang.Enum {
+ method public static java.nio.file.attribute.AclEntryFlag valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.AclEntryFlag[] values();
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag DIRECTORY_INHERIT;
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag FILE_INHERIT;
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag INHERIT_ONLY;
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag NO_PROPAGATE_INHERIT;
+ }
+
+ public final class AclEntryPermission extends java.lang.Enum {
+ method public static java.nio.file.attribute.AclEntryPermission valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.AclEntryPermission[] values();
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission APPEND_DATA;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE_CHILD;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission EXECUTE;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ACL;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ATTRIBUTES;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_DATA;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_NAMED_ATTRS;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission SYNCHRONIZE;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ACL;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ATTRIBUTES;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_DATA;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_NAMED_ATTRS;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_OWNER;
+ field public static final java.nio.file.attribute.AclEntryPermission ADD_FILE;
+ field public static final java.nio.file.attribute.AclEntryPermission ADD_SUBDIRECTORY;
+ field public static final java.nio.file.attribute.AclEntryPermission LIST_DIRECTORY;
+ }
+
+ public final class AclEntryType extends java.lang.Enum {
+ method public static java.nio.file.attribute.AclEntryType valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.AclEntryType[] values();
+ enum_constant public static final java.nio.file.attribute.AclEntryType ALARM;
+ enum_constant public static final java.nio.file.attribute.AclEntryType ALLOW;
+ enum_constant public static final java.nio.file.attribute.AclEntryType AUDIT;
+ enum_constant public static final java.nio.file.attribute.AclEntryType DENY;
+ }
+
+ public abstract interface AclFileAttributeView implements java.nio.file.attribute.FileOwnerAttributeView {
+ method public abstract java.util.List<java.nio.file.attribute.AclEntry> getAcl() throws java.io.IOException;
+ method public abstract java.lang.String name();
+ method public abstract void setAcl(java.util.List<java.nio.file.attribute.AclEntry>) throws java.io.IOException;
+ }
+
+ public abstract interface AttributeView {
+ method public abstract java.lang.String name();
+ }
+
+ public abstract interface BasicFileAttributeView implements java.nio.file.attribute.FileAttributeView {
+ method public abstract java.lang.String name();
+ method public abstract java.nio.file.attribute.BasicFileAttributes readAttributes() throws java.io.IOException;
+ method public abstract void setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime) throws java.io.IOException;
+ }
+
+ public abstract interface BasicFileAttributes {
+ method public abstract java.nio.file.attribute.FileTime creationTime();
+ method public abstract java.lang.Object fileKey();
+ method public abstract boolean isDirectory();
+ method public abstract boolean isOther();
+ method public abstract boolean isRegularFile();
+ method public abstract boolean isSymbolicLink();
+ method public abstract java.nio.file.attribute.FileTime lastAccessTime();
+ method public abstract java.nio.file.attribute.FileTime lastModifiedTime();
+ method public abstract long size();
+ }
+
+ public abstract interface DosFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView {
+ method public abstract java.lang.String name();
+ method public abstract java.nio.file.attribute.DosFileAttributes readAttributes() throws java.io.IOException;
+ method public abstract void setArchive(boolean) throws java.io.IOException;
+ method public abstract void setHidden(boolean) throws java.io.IOException;
+ method public abstract void setReadOnly(boolean) throws java.io.IOException;
+ method public abstract void setSystem(boolean) throws java.io.IOException;
+ }
+
+ public abstract interface DosFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+ method public abstract boolean isArchive();
+ method public abstract boolean isHidden();
+ method public abstract boolean isReadOnly();
+ method public abstract boolean isSystem();
+ }
+
+ public abstract interface FileAttribute {
+ method public abstract java.lang.String name();
+ method public abstract T value();
+ }
+
+ public abstract interface FileAttributeView implements java.nio.file.attribute.AttributeView {
+ }
+
+ public abstract interface FileOwnerAttributeView implements java.nio.file.attribute.FileAttributeView {
+ method public abstract java.nio.file.attribute.UserPrincipal getOwner() throws java.io.IOException;
+ method public abstract java.lang.String name();
+ method public abstract void setOwner(java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+ }
+
+ public abstract interface FileStoreAttributeView implements java.nio.file.attribute.AttributeView {
+ }
+
+ public final class FileTime implements java.lang.Comparable {
+ method public int compareTo(java.nio.file.attribute.FileTime);
+ method public static java.nio.file.attribute.FileTime from(long, java.util.concurrent.TimeUnit);
+ method public static java.nio.file.attribute.FileTime fromMillis(long);
+ method public long to(java.util.concurrent.TimeUnit);
+ method public long toMillis();
+ }
+
+ public abstract interface GroupPrincipal implements java.nio.file.attribute.UserPrincipal {
+ }
+
+ public abstract interface PosixFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
+ method public abstract java.lang.String name();
+ method public abstract java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
+ method public abstract void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
+ method public abstract void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+ }
+
+ public abstract interface PosixFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+ method public abstract java.nio.file.attribute.GroupPrincipal group();
+ method public abstract java.nio.file.attribute.UserPrincipal owner();
+ method public abstract java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions();
+ }
+
+ public final class PosixFilePermission extends java.lang.Enum {
+ method public static java.nio.file.attribute.PosixFilePermission valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.PosixFilePermission[] values();
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_EXECUTE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_READ;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_WRITE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_EXECUTE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_READ;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_WRITE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_EXECUTE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_READ;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_WRITE;
+ }
+
+ public final class PosixFilePermissions {
+ method public static java.nio.file.attribute.FileAttribute<java.util.Set<java.nio.file.attribute.PosixFilePermission>> asFileAttribute(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+ method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> fromString(java.lang.String);
+ method public static java.lang.String toString(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+ }
+
+ public abstract interface UserPrincipal implements java.security.Principal {
+ }
+
+ public abstract class UserPrincipalLookupService {
+ ctor protected UserPrincipalLookupService();
+ method public abstract java.nio.file.attribute.GroupPrincipal lookupPrincipalByGroupName(java.lang.String) throws java.io.IOException;
+ method public abstract java.nio.file.attribute.UserPrincipal lookupPrincipalByName(java.lang.String) throws java.io.IOException;
+ }
+
+ public class UserPrincipalNotFoundException extends java.io.IOException {
+ ctor public UserPrincipalNotFoundException(java.lang.String);
+ method public java.lang.String getName();
+ }
+
+}
+
+package java.nio.file.spi {
+
+ public abstract class FileSystemProvider {
+ ctor protected FileSystemProvider();
+ method public abstract void checkAccess(java.nio.file.Path, java.nio.file.AccessMode...) throws java.io.IOException;
+ method public abstract void copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public abstract void createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public void createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public void createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract void delete(java.nio.file.Path) throws java.io.IOException;
+ method public boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+ method public abstract V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+ method public abstract java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+ method public abstract java.nio.file.FileSystem getFileSystem(java.net.URI);
+ method public abstract java.nio.file.Path getPath(java.net.URI);
+ method public abstract java.lang.String getScheme();
+ method public static java.util.List<java.nio.file.spi.FileSystemProvider> installedProviders();
+ method public abstract boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+ method public abstract boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public abstract void move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public java.nio.channels.AsynchronousFileChannel newAsynchronousFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+ method public java.nio.channels.FileChannel newFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+ method public java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+ method public java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public abstract A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public abstract java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+ method public abstract void setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+ }
+
+ public abstract class FileTypeDetector {
+ ctor protected FileTypeDetector();
+ method public abstract java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+ }
+
+}
+
package java.security {
public final class AccessControlContext {
- ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
ctor public AccessControlContext(java.security.ProtectionDomain[]);
+ ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
method public void checkPermission(java.security.Permission) throws java.security.AccessControlException;
method public java.security.DomainCombiner getDomainCombiner();
}
@@ -51213,6 +52187,12 @@
method public static java.security.AccessControlContext getContext();
}
+ public abstract interface AlgorithmConstraints {
+ method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.AlgorithmParameters);
+ method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.security.Key);
+ method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.Key, java.security.AlgorithmParameters);
+ }
+
public class AlgorithmParameterGenerator {
ctor protected AlgorithmParameterGenerator(java.security.AlgorithmParameterGeneratorSpi, java.security.Provider, java.lang.String);
method public final java.security.AlgorithmParameters generateParameters();
@@ -51262,9 +52242,11 @@
}
public final class AllPermission extends java.security.Permission {
- ctor public AllPermission(java.lang.String, java.lang.String);
ctor public AllPermission();
+ ctor public AllPermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
@@ -51278,7 +52260,9 @@
public abstract class BasicPermission extends java.security.Permission implements java.io.Serializable {
ctor public BasicPermission(java.lang.String);
ctor public BasicPermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
@@ -51307,9 +52291,24 @@
method public boolean implies(java.security.CodeSource);
}
+ public final class CryptoPrimitive extends java.lang.Enum {
+ method public static java.security.CryptoPrimitive valueOf(java.lang.String);
+ method public static final java.security.CryptoPrimitive[] values();
+ enum_constant public static final java.security.CryptoPrimitive BLOCK_CIPHER;
+ enum_constant public static final java.security.CryptoPrimitive KEY_AGREEMENT;
+ enum_constant public static final java.security.CryptoPrimitive KEY_ENCAPSULATION;
+ enum_constant public static final java.security.CryptoPrimitive KEY_WRAP;
+ enum_constant public static final java.security.CryptoPrimitive MAC;
+ enum_constant public static final java.security.CryptoPrimitive MESSAGE_DIGEST;
+ enum_constant public static final java.security.CryptoPrimitive PUBLIC_KEY_ENCRYPTION;
+ enum_constant public static final java.security.CryptoPrimitive SECURE_RANDOM;
+ enum_constant public static final java.security.CryptoPrimitive SIGNATURE;
+ enum_constant public static final java.security.CryptoPrimitive STREAM_CIPHER;
+ }
+
public class DigestException extends java.security.GeneralSecurityException {
- ctor public DigestException(java.lang.String);
ctor public DigestException();
+ ctor public DigestException(java.lang.String);
ctor public DigestException(java.lang.String, java.lang.Throwable);
ctor public DigestException(java.lang.Throwable);
}
@@ -51335,8 +52334,8 @@
}
public class GeneralSecurityException extends java.lang.Exception {
- ctor public GeneralSecurityException(java.lang.String);
ctor public GeneralSecurityException();
+ ctor public GeneralSecurityException(java.lang.String);
ctor public GeneralSecurityException(java.lang.String, java.lang.Throwable);
ctor public GeneralSecurityException(java.lang.Throwable);
}
@@ -51352,8 +52351,8 @@
public abstract deprecated class Identity implements java.security.Principal java.io.Serializable {
ctor protected Identity();
- ctor public Identity(java.lang.String);
ctor public Identity(java.lang.String, java.security.IdentityScope) throws java.security.KeyManagementException;
+ ctor public Identity(java.lang.String);
method public void addCertificate(java.security.Certificate) throws java.security.KeyManagementException;
method public java.security.Certificate[] certificates();
method public final boolean equals(java.lang.Object);
@@ -51384,22 +52383,22 @@
}
public class InvalidAlgorithmParameterException extends java.security.GeneralSecurityException {
- ctor public InvalidAlgorithmParameterException(java.lang.String);
ctor public InvalidAlgorithmParameterException();
+ ctor public InvalidAlgorithmParameterException(java.lang.String);
ctor public InvalidAlgorithmParameterException(java.lang.String, java.lang.Throwable);
ctor public InvalidAlgorithmParameterException(java.lang.Throwable);
}
public class InvalidKeyException extends java.security.KeyException {
- ctor public InvalidKeyException(java.lang.String);
ctor public InvalidKeyException();
+ ctor public InvalidKeyException(java.lang.String);
ctor public InvalidKeyException(java.lang.String, java.lang.Throwable);
ctor public InvalidKeyException(java.lang.Throwable);
}
public class InvalidParameterException extends java.lang.IllegalArgumentException {
- ctor public InvalidParameterException(java.lang.String);
ctor public InvalidParameterException();
+ ctor public InvalidParameterException(java.lang.String);
}
public abstract interface Key implements java.io.Serializable {
@@ -51410,8 +52409,8 @@
}
public class KeyException extends java.security.GeneralSecurityException {
- ctor public KeyException(java.lang.String);
ctor public KeyException();
+ ctor public KeyException(java.lang.String);
ctor public KeyException(java.lang.String, java.lang.Throwable);
ctor public KeyException(java.lang.Throwable);
}
@@ -51438,8 +52437,8 @@
}
public class KeyManagementException extends java.security.KeyException {
- ctor public KeyManagementException(java.lang.String);
ctor public KeyManagementException();
+ ctor public KeyManagementException(java.lang.String);
ctor public KeyManagementException(java.lang.String, java.lang.Throwable);
ctor public KeyManagementException(java.lang.Throwable);
}
@@ -51460,8 +52459,8 @@
method public static java.security.KeyPairGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
method public final java.security.Provider getProvider();
method public void initialize(int);
- method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
method public void initialize(int, java.security.SecureRandom);
+ method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
}
public abstract class KeyPairGeneratorSpi {
@@ -51564,8 +52563,8 @@
}
public class KeyStoreException extends java.security.GeneralSecurityException {
- ctor public KeyStoreException(java.lang.String);
ctor public KeyStoreException();
+ ctor public KeyStoreException(java.lang.String);
ctor public KeyStoreException(java.lang.String, java.lang.Throwable);
ctor public KeyStoreException(java.lang.Throwable);
}
@@ -51627,22 +52626,24 @@
}
public class NoSuchAlgorithmException extends java.security.GeneralSecurityException {
- ctor public NoSuchAlgorithmException(java.lang.String);
ctor public NoSuchAlgorithmException();
+ ctor public NoSuchAlgorithmException(java.lang.String);
ctor public NoSuchAlgorithmException(java.lang.String, java.lang.Throwable);
ctor public NoSuchAlgorithmException(java.lang.Throwable);
}
public class NoSuchProviderException extends java.security.GeneralSecurityException {
- ctor public NoSuchProviderException(java.lang.String);
ctor public NoSuchProviderException();
+ ctor public NoSuchProviderException(java.lang.String);
}
public abstract class Permission implements java.security.Guard java.io.Serializable {
ctor public Permission(java.lang.String);
method public void checkGuard(java.lang.Object) throws java.lang.SecurityException;
+ method public abstract boolean equals(java.lang.Object);
method public abstract java.lang.String getActions();
method public final java.lang.String getName();
+ method public abstract int hashCode();
method public abstract boolean implies(java.security.Permission);
method public java.security.PermissionCollection newPermissionCollection();
}
@@ -51750,8 +52751,8 @@
}
public class ProviderException extends java.lang.RuntimeException {
- ctor public ProviderException(java.lang.String);
ctor public ProviderException();
+ ctor public ProviderException(java.lang.String);
ctor public ProviderException(java.lang.String, java.lang.Throwable);
ctor public ProviderException(java.lang.Throwable);
}
@@ -51761,8 +52762,8 @@
}
public class SecureClassLoader extends java.lang.ClassLoader {
- ctor protected SecureClassLoader();
ctor protected SecureClassLoader(java.lang.ClassLoader);
+ ctor protected SecureClassLoader();
method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.security.CodeSource);
method protected final java.lang.Class<?> defineClass(java.lang.String, java.nio.ByteBuffer, java.security.CodeSource);
method protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
@@ -51795,10 +52796,10 @@
method public static deprecated java.lang.String getAlgorithmProperty(java.lang.String, java.lang.String);
method public static java.util.Set<java.lang.String> getAlgorithms(java.lang.String);
method public static java.lang.String getProperty(java.lang.String);
- method public static synchronized java.security.Provider getProvider(java.lang.String);
- method public static synchronized java.security.Provider[] getProviders();
+ method public static java.security.Provider getProvider(java.lang.String);
+ method public static java.security.Provider[] getProviders();
method public static java.security.Provider[] getProviders(java.lang.String);
- method public static synchronized java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
+ method public static java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
method public static synchronized int insertProviderAt(java.security.Provider, int);
method public static synchronized void removeProvider(java.lang.String);
method public static void setProperty(java.lang.String, java.lang.String);
@@ -51812,6 +52813,7 @@
public abstract class Signature extends java.security.SignatureSpi {
ctor protected Signature(java.lang.String);
method public final java.lang.String getAlgorithm();
+ method public java.security.SignatureSpi getCurrentSpi();
method public static java.security.Signature getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
method public static java.security.Signature getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
method public static java.security.Signature getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
@@ -51839,8 +52841,8 @@
}
public class SignatureException extends java.security.GeneralSecurityException {
- ctor public SignatureException(java.lang.String);
ctor public SignatureException();
+ ctor public SignatureException(java.lang.String);
ctor public SignatureException(java.lang.String, java.lang.Throwable);
ctor public SignatureException(java.lang.Throwable);
}
@@ -51893,17 +52895,19 @@
}
public class UnrecoverableKeyException extends java.security.UnrecoverableEntryException {
- ctor public UnrecoverableKeyException(java.lang.String);
ctor public UnrecoverableKeyException();
+ ctor public UnrecoverableKeyException(java.lang.String);
}
public final class UnresolvedPermission extends java.security.Permission implements java.io.Serializable {
ctor public UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
method public java.lang.String getUnresolvedActions();
method public java.security.cert.Certificate[] getUnresolvedCerts();
method public java.lang.String getUnresolvedName();
method public java.lang.String getUnresolvedType();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
@@ -51977,12 +52981,28 @@
}
public class CRLException extends java.security.GeneralSecurityException {
- ctor public CRLException(java.lang.String);
ctor public CRLException();
+ ctor public CRLException(java.lang.String);
ctor public CRLException(java.lang.String, java.lang.Throwable);
ctor public CRLException(java.lang.Throwable);
}
+ public final class CRLReason extends java.lang.Enum {
+ method public static java.security.cert.CRLReason valueOf(java.lang.String);
+ method public static final java.security.cert.CRLReason[] values();
+ enum_constant public static final java.security.cert.CRLReason AA_COMPROMISE;
+ enum_constant public static final java.security.cert.CRLReason AFFILIATION_CHANGED;
+ enum_constant public static final java.security.cert.CRLReason CA_COMPROMISE;
+ enum_constant public static final java.security.cert.CRLReason CERTIFICATE_HOLD;
+ enum_constant public static final java.security.cert.CRLReason CESSATION_OF_OPERATION;
+ enum_constant public static final java.security.cert.CRLReason KEY_COMPROMISE;
+ enum_constant public static final java.security.cert.CRLReason PRIVILEGE_WITHDRAWN;
+ enum_constant public static final java.security.cert.CRLReason REMOVE_FROM_CRL;
+ enum_constant public static final java.security.cert.CRLReason SUPERSEDED;
+ enum_constant public static final java.security.cert.CRLReason UNSPECIFIED;
+ enum_constant public static final java.security.cert.CRLReason UNUSED;
+ }
+
public abstract interface CRLSelector implements java.lang.Cloneable {
method public abstract java.lang.Object clone();
method public abstract boolean match(java.security.cert.CRL);
@@ -52015,10 +53035,10 @@
}
public class CertPathBuilderException extends java.security.GeneralSecurityException {
- ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
- ctor public CertPathBuilderException(java.lang.Throwable);
- ctor public CertPathBuilderException(java.lang.String);
ctor public CertPathBuilderException();
+ ctor public CertPathBuilderException(java.lang.String);
+ ctor public CertPathBuilderException(java.lang.Throwable);
+ ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
}
public abstract interface CertPathBuilderResult implements java.lang.Cloneable {
@@ -52047,13 +53067,30 @@
}
public class CertPathValidatorException extends java.security.GeneralSecurityException {
- ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
- ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
- ctor public CertPathValidatorException(java.lang.Throwable);
- ctor public CertPathValidatorException(java.lang.String);
ctor public CertPathValidatorException();
+ ctor public CertPathValidatorException(java.lang.String);
+ ctor public CertPathValidatorException(java.lang.Throwable);
+ ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
+ ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
+ ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int, java.security.cert.CertPathValidatorException.Reason);
method public java.security.cert.CertPath getCertPath();
method public int getIndex();
+ method public java.security.cert.CertPathValidatorException.Reason getReason();
+ }
+
+ public static final class CertPathValidatorException.BasicReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+ method public static java.security.cert.CertPathValidatorException.BasicReason valueOf(java.lang.String);
+ method public static final java.security.cert.CertPathValidatorException.BasicReason[] values();
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason ALGORITHM_CONSTRAINED;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason EXPIRED;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason INVALID_SIGNATURE;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason NOT_YET_VALID;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason REVOKED;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNDETERMINED_REVOCATION_STATUS;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNSPECIFIED;
+ }
+
+ public static abstract interface CertPathValidatorException.Reason implements java.io.Serializable {
}
public abstract interface CertPathValidatorResult implements java.lang.Cloneable {
@@ -52084,10 +53121,10 @@
}
public class CertStoreException extends java.security.GeneralSecurityException {
- ctor public CertStoreException(java.lang.String, java.lang.Throwable);
- ctor public CertStoreException(java.lang.Throwable);
- ctor public CertStoreException(java.lang.String);
ctor public CertStoreException();
+ ctor public CertStoreException(java.lang.String);
+ ctor public CertStoreException(java.lang.Throwable);
+ ctor public CertStoreException(java.lang.String, java.lang.Throwable);
}
public abstract interface CertStoreParameters implements java.lang.Cloneable {
@@ -52117,22 +53154,22 @@
}
public class CertificateEncodingException extends java.security.cert.CertificateException {
- ctor public CertificateEncodingException(java.lang.String);
ctor public CertificateEncodingException();
+ ctor public CertificateEncodingException(java.lang.String);
ctor public CertificateEncodingException(java.lang.String, java.lang.Throwable);
ctor public CertificateEncodingException(java.lang.Throwable);
}
public class CertificateException extends java.security.GeneralSecurityException {
- ctor public CertificateException(java.lang.String);
ctor public CertificateException();
+ ctor public CertificateException(java.lang.String);
ctor public CertificateException(java.lang.String, java.lang.Throwable);
ctor public CertificateException(java.lang.Throwable);
}
public class CertificateExpiredException extends java.security.cert.CertificateException {
- ctor public CertificateExpiredException(java.lang.String);
ctor public CertificateExpiredException();
+ ctor public CertificateExpiredException(java.lang.String);
}
public class CertificateFactory {
@@ -52165,28 +53202,44 @@
}
public class CertificateNotYetValidException extends java.security.cert.CertificateException {
- ctor public CertificateNotYetValidException(java.lang.String);
ctor public CertificateNotYetValidException();
+ ctor public CertificateNotYetValidException(java.lang.String);
}
public class CertificateParsingException extends java.security.cert.CertificateException {
- ctor public CertificateParsingException(java.lang.String);
ctor public CertificateParsingException();
+ ctor public CertificateParsingException(java.lang.String);
ctor public CertificateParsingException(java.lang.String, java.lang.Throwable);
ctor public CertificateParsingException(java.lang.Throwable);
}
+ public class CertificateRevokedException extends java.security.cert.CertificateException {
+ ctor public CertificateRevokedException(java.util.Date, java.security.cert.CRLReason, javax.security.auth.x500.X500Principal, java.util.Map<java.lang.String, java.security.cert.Extension>);
+ method public javax.security.auth.x500.X500Principal getAuthorityName();
+ method public java.util.Map<java.lang.String, java.security.cert.Extension> getExtensions();
+ method public java.util.Date getInvalidityDate();
+ method public java.util.Date getRevocationDate();
+ method public java.security.cert.CRLReason getRevocationReason();
+ }
+
public class CollectionCertStoreParameters implements java.security.cert.CertStoreParameters {
- ctor public CollectionCertStoreParameters();
ctor public CollectionCertStoreParameters(java.util.Collection<?>);
+ ctor public CollectionCertStoreParameters();
method public java.lang.Object clone();
method public java.util.Collection<?> getCollection();
}
+ public abstract interface Extension {
+ method public abstract void encode(java.io.OutputStream) throws java.io.IOException;
+ method public abstract java.lang.String getId();
+ method public abstract byte[] getValue();
+ method public abstract boolean isCritical();
+ }
+
public class LDAPCertStoreParameters implements java.security.cert.CertStoreParameters {
ctor public LDAPCertStoreParameters(java.lang.String, int);
- ctor public LDAPCertStoreParameters();
ctor public LDAPCertStoreParameters(java.lang.String);
+ ctor public LDAPCertStoreParameters();
method public java.lang.Object clone();
method public int getPort();
method public java.lang.String getServerName();
@@ -52253,6 +53306,19 @@
method public void setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>) throws java.security.InvalidAlgorithmParameterException;
}
+ public final class PKIXReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+ method public static java.security.cert.PKIXReason valueOf(java.lang.String);
+ method public static final java.security.cert.PKIXReason[] values();
+ enum_constant public static final java.security.cert.PKIXReason INVALID_KEY_USAGE;
+ enum_constant public static final java.security.cert.PKIXReason INVALID_NAME;
+ enum_constant public static final java.security.cert.PKIXReason INVALID_POLICY;
+ enum_constant public static final java.security.cert.PKIXReason NAME_CHAINING;
+ enum_constant public static final java.security.cert.PKIXReason NOT_CA_CERT;
+ enum_constant public static final java.security.cert.PKIXReason NO_TRUST_ANCHOR;
+ enum_constant public static final java.security.cert.PKIXReason PATH_TOO_LONG;
+ enum_constant public static final java.security.cert.PKIXReason UNRECOGNIZED_CRIT_EXT;
+ }
+
public abstract interface PolicyNode {
method public abstract java.util.Iterator<? extends java.security.cert.PolicyNode> getChildren();
method public abstract int getDepth();
@@ -52272,8 +53338,8 @@
public class TrustAnchor {
ctor public TrustAnchor(java.security.cert.X509Certificate, byte[]);
- ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
ctor public TrustAnchor(javax.security.auth.x500.X500Principal, java.security.PublicKey, byte[]);
+ ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
method public final javax.security.auth.x500.X500Principal getCA();
method public final java.lang.String getCAName();
method public final java.security.PublicKey getCAPublicKey();
@@ -52306,6 +53372,7 @@
method public javax.security.auth.x500.X500Principal getCertificateIssuer();
method public abstract byte[] getEncoded() throws java.security.cert.CRLException;
method public abstract java.util.Date getRevocationDate();
+ method public java.security.cert.CRLReason getRevocationReason();
method public abstract java.math.BigInteger getSerialNumber();
method public abstract boolean hasExtensions();
method public abstract java.lang.String toString();
@@ -52581,8 +53648,8 @@
}
public class EllipticCurve {
- ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger);
+ ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
method public java.math.BigInteger getA();
method public java.math.BigInteger getB();
method public java.security.spec.ECField getField();
@@ -52596,15 +53663,15 @@
}
public class InvalidKeySpecException extends java.security.GeneralSecurityException {
- ctor public InvalidKeySpecException(java.lang.String);
ctor public InvalidKeySpecException();
+ ctor public InvalidKeySpecException(java.lang.String);
ctor public InvalidKeySpecException(java.lang.String, java.lang.Throwable);
ctor public InvalidKeySpecException(java.lang.Throwable);
}
public class InvalidParameterSpecException extends java.security.GeneralSecurityException {
- ctor public InvalidParameterSpecException(java.lang.String);
ctor public InvalidParameterSpecException();
+ ctor public InvalidParameterSpecException(java.lang.String);
}
public abstract interface KeySpec {
@@ -52625,8 +53692,8 @@
}
public class PSSParameterSpec implements java.security.spec.AlgorithmParameterSpec {
- ctor public PSSParameterSpec(int);
ctor public PSSParameterSpec(java.lang.String, java.lang.String, java.security.spec.AlgorithmParameterSpec, int, int);
+ ctor public PSSParameterSpec(int);
method public java.lang.String getDigestAlgorithm();
method public java.lang.String getMGFAlgorithm();
method public java.security.spec.AlgorithmParameterSpec getMGFParameters();
@@ -52695,28 +53762,28 @@
public abstract interface Array {
method public abstract void free() throws java.sql.SQLException;
method public abstract java.lang.Object getArray() throws java.sql.SQLException;
+ method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.lang.Object getArray(long, int) throws java.sql.SQLException;
method public abstract java.lang.Object getArray(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
- method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract int getBaseType() throws java.sql.SQLException;
method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
method public abstract java.sql.ResultSet getResultSet() throws java.sql.SQLException;
+ method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.sql.ResultSet getResultSet(long, int) throws java.sql.SQLException;
method public abstract java.sql.ResultSet getResultSet(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
- method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
}
- public class BatchUpdateException extends java.sql.SQLException implements java.io.Serializable {
+ public class BatchUpdateException extends java.sql.SQLException {
+ ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
+ ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
+ ctor public BatchUpdateException(java.lang.String, int[]);
+ ctor public BatchUpdateException(int[]);
ctor public BatchUpdateException();
ctor public BatchUpdateException(java.lang.Throwable);
ctor public BatchUpdateException(int[], java.lang.Throwable);
ctor public BatchUpdateException(java.lang.String, int[], java.lang.Throwable);
ctor public BatchUpdateException(java.lang.String, java.lang.String, int[], java.lang.Throwable);
ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[], java.lang.Throwable);
- ctor public BatchUpdateException(int[]);
- ctor public BatchUpdateException(java.lang.String, int[]);
- ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
- ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
method public int[] getUpdateCounts();
}
@@ -52726,8 +53793,8 @@
method public abstract java.io.InputStream getBinaryStream(long, long) throws java.sql.SQLException;
method public abstract byte[] getBytes(long, int) throws java.sql.SQLException;
method public abstract long length() throws java.sql.SQLException;
- method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
method public abstract long position(byte[], long) throws java.sql.SQLException;
+ method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
method public abstract java.io.OutputStream setBinaryStream(long) throws java.sql.SQLException;
method public abstract int setBytes(long, byte[]) throws java.sql.SQLException;
method public abstract int setBytes(long, byte[], int, int) throws java.sql.SQLException;
@@ -52737,8 +53804,8 @@
public abstract interface CallableStatement implements java.sql.PreparedStatement {
method public abstract java.sql.Array getArray(int) throws java.sql.SQLException;
method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
- method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
+ method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
method public abstract java.sql.Blob getBlob(java.lang.String) throws java.sql.SQLException;
@@ -52833,9 +53900,9 @@
method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
method public abstract void setRowId(java.lang.String, java.sql.RowId) throws java.sql.SQLException;
method public abstract void setSQLXML(java.lang.String, java.sql.SQLXML) throws java.sql.SQLException;
method public abstract void setShort(java.lang.String, short) throws java.sql.SQLException;
@@ -52864,8 +53931,8 @@
method public abstract java.io.Reader getCharacterStream(long, long) throws java.sql.SQLException;
method public abstract java.lang.String getSubString(long, int) throws java.sql.SQLException;
method public abstract long length() throws java.sql.SQLException;
- method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
method public abstract long position(java.lang.String, long) throws java.sql.SQLException;
+ method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
method public abstract java.io.OutputStream setAsciiStream(long) throws java.sql.SQLException;
method public abstract java.io.Writer setCharacterStream(long) throws java.sql.SQLException;
method public abstract int setString(long, java.lang.String) throws java.sql.SQLException;
@@ -52903,10 +53970,10 @@
method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int) throws java.sql.SQLException;
method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int, int) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String) throws java.sql.SQLException;
- method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
- method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) throws java.sql.SQLException;
+ method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
+ method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String[]) throws java.sql.SQLException;
method public abstract void releaseSavepoint(java.sql.Savepoint) throws java.sql.SQLException;
method public abstract void rollback() throws java.sql.SQLException;
@@ -52928,7 +53995,7 @@
field public static final int TRANSACTION_SERIALIZABLE = 8; // 0x8
}
- public class DataTruncation extends java.sql.SQLWarning implements java.io.Serializable {
+ public class DataTruncation extends java.sql.SQLWarning {
ctor public DataTruncation(int, boolean, boolean, int, int);
ctor public DataTruncation(int, boolean, boolean, int, int, java.lang.Throwable);
method public int getDataSize();
@@ -53190,17 +54257,17 @@
}
public class DriverManager {
- method public static void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
- method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
+ method public static synchronized void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
method public static java.sql.Connection getConnection(java.lang.String, java.util.Properties) throws java.sql.SQLException;
method public static java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
+ method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
method public static java.sql.Driver getDriver(java.lang.String) throws java.sql.SQLException;
method public static java.util.Enumeration<java.sql.Driver> getDrivers();
method public static deprecated java.io.PrintStream getLogStream();
method public static java.io.PrintWriter getLogWriter();
method public static int getLoginTimeout();
method public static void println(java.lang.String);
- method public static void registerDriver(java.sql.Driver) throws java.sql.SQLException;
+ method public static synchronized void registerDriver(java.sql.Driver) throws java.sql.SQLException;
method public static deprecated void setLogStream(java.io.PrintStream);
method public static void setLogWriter(java.io.PrintWriter);
method public static void setLoginTimeout(int);
@@ -53279,8 +54346,8 @@
method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(int, int) throws java.sql.SQLException;
method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
- method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
method public abstract void setRef(int, java.sql.Ref) throws java.sql.SQLException;
method public abstract void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
@@ -53297,8 +54364,8 @@
public abstract interface Ref {
method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
- method public abstract java.lang.Object getObject() throws java.sql.SQLException;
method public abstract java.lang.Object getObject(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
+ method public abstract java.lang.Object getObject() throws java.sql.SQLException;
method public abstract void setObject(java.lang.Object) throws java.sql.SQLException;
}
@@ -53316,10 +54383,10 @@
method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
method public abstract java.io.InputStream getAsciiStream(int) throws java.sql.SQLException;
method public abstract java.io.InputStream getAsciiStream(java.lang.String) throws java.sql.SQLException;
- method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
- method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
method public abstract deprecated java.math.BigDecimal getBigDecimal(java.lang.String, int) throws java.sql.SQLException;
+ method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
+ method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
method public abstract java.io.InputStream getBinaryStream(int) throws java.sql.SQLException;
method public abstract java.io.InputStream getBinaryStream(java.lang.String) throws java.sql.SQLException;
method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
@@ -53337,8 +54404,8 @@
method public abstract int getConcurrency() throws java.sql.SQLException;
method public abstract java.lang.String getCursorName() throws java.sql.SQLException;
method public abstract java.sql.Date getDate(int) throws java.sql.SQLException;
- method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Date getDate(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Date getDate(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
method public abstract double getDouble(int) throws java.sql.SQLException;
method public abstract double getDouble(java.lang.String) throws java.sql.SQLException;
@@ -53359,8 +54426,8 @@
method public abstract java.lang.String getNString(int) throws java.sql.SQLException;
method public abstract java.lang.String getNString(java.lang.String) throws java.sql.SQLException;
method public abstract java.lang.Object getObject(int) throws java.sql.SQLException;
- method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.lang.Object getObject(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.lang.Object getObject(java.lang.String, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.sql.Ref getRef(int) throws java.sql.SQLException;
method public abstract java.sql.Ref getRef(java.lang.String) throws java.sql.SQLException;
@@ -53375,12 +54442,12 @@
method public abstract java.lang.String getString(int) throws java.sql.SQLException;
method public abstract java.lang.String getString(java.lang.String) throws java.sql.SQLException;
method public abstract java.sql.Time getTime(int) throws java.sql.SQLException;
- method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Time getTime(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Time getTime(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
- method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Timestamp getTimestamp(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Timestamp getTimestamp(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
method public abstract int getType() throws java.sql.SQLException;
method public abstract java.net.URL getURL(int) throws java.sql.SQLException;
@@ -53470,10 +54537,10 @@
method public abstract void updateNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
method public abstract void updateNull(int) throws java.sql.SQLException;
method public abstract void updateNull(java.lang.String) throws java.sql.SQLException;
- method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void updateObject(int, java.lang.Object, int) throws java.sql.SQLException;
- method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+ method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void updateObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
method public abstract void updateRef(int, java.sql.Ref) throws java.sql.SQLException;
method public abstract void updateRef(java.lang.String, java.sql.Ref) throws java.sql.SQLException;
method public abstract void updateRow() throws java.sql.SQLException;
@@ -53552,10 +54619,10 @@
ctor public SQLClientInfoException(java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
- ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
- ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
+ ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
+ ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
method public java.util.Map<java.lang.String, java.sql.ClientInfoStatus> getFailedProperties();
}
@@ -53576,11 +54643,11 @@
ctor public SQLDataException(java.lang.String, java.lang.String, int, java.lang.Throwable);
}
- public class SQLException extends java.lang.Exception implements java.lang.Iterable java.io.Serializable {
- ctor public SQLException();
- ctor public SQLException(java.lang.String);
- ctor public SQLException(java.lang.String, java.lang.String);
+ public class SQLException extends java.lang.Exception implements java.lang.Iterable {
ctor public SQLException(java.lang.String, java.lang.String, int);
+ ctor public SQLException(java.lang.String, java.lang.String);
+ ctor public SQLException(java.lang.String);
+ ctor public SQLException();
ctor public SQLException(java.lang.Throwable);
ctor public SQLException(java.lang.String, java.lang.Throwable);
ctor public SQLException(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -53707,7 +54774,7 @@
method public abstract void writeURL(java.net.URL) throws java.sql.SQLException;
}
- public final class SQLPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
+ public final class SQLPermission extends java.security.BasicPermission {
ctor public SQLPermission(java.lang.String);
ctor public SQLPermission(java.lang.String, java.lang.String);
}
@@ -53778,11 +54845,11 @@
ctor public SQLTransientException(java.lang.String, java.lang.String, int, java.lang.Throwable);
}
- public class SQLWarning extends java.sql.SQLException implements java.io.Serializable {
- ctor public SQLWarning();
- ctor public SQLWarning(java.lang.String);
- ctor public SQLWarning(java.lang.String, java.lang.String);
+ public class SQLWarning extends java.sql.SQLException {
ctor public SQLWarning(java.lang.String, java.lang.String, int);
+ ctor public SQLWarning(java.lang.String, java.lang.String);
+ ctor public SQLWarning(java.lang.String);
+ ctor public SQLWarning();
ctor public SQLWarning(java.lang.Throwable);
ctor public SQLWarning(java.lang.String, java.lang.Throwable);
ctor public SQLWarning(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -53871,15 +54938,15 @@
}
public class Timestamp extends java.util.Date {
- ctor public deprecated Timestamp(int, int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
+ ctor public deprecated Timestamp(int, int, int, int, int, int, int);
ctor public Timestamp(long);
method public boolean after(java.sql.Timestamp);
method public boolean before(java.sql.Timestamp);
method public int compareTo(java.sql.Timestamp);
method public boolean equals(java.sql.Timestamp);
method public int getNanos();
- method public void setNanos(int) throws java.lang.IllegalArgumentException;
- method public static java.sql.Timestamp valueOf(java.lang.String) throws java.lang.IllegalArgumentException;
+ method public void setNanos(int);
+ method public static java.sql.Timestamp valueOf(java.lang.String);
}
public class Types {
@@ -53959,11 +55026,11 @@
}
public class AttributedString {
+ ctor public AttributedString(java.lang.String);
+ ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
ctor public AttributedString(java.text.AttributedCharacterIterator);
ctor public AttributedString(java.text.AttributedCharacterIterator, int, int);
ctor public AttributedString(java.text.AttributedCharacterIterator, int, int, java.text.AttributedCharacterIterator.Attribute[]);
- ctor public AttributedString(java.lang.String);
- ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object);
method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object, int, int);
method public void addAttributes(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>, int, int);
@@ -53973,9 +55040,9 @@
}
public final class Bidi {
+ ctor public Bidi(java.lang.String, int);
ctor public Bidi(java.text.AttributedCharacterIterator);
ctor public Bidi(char[], int, byte[], int, int, int);
- ctor public Bidi(java.lang.String, int);
method public boolean baseIsLeftToRight();
method public java.text.Bidi createLineBidi(int, int);
method public int getBaseLevel();
@@ -54002,7 +55069,7 @@
method public abstract int current();
method public abstract int first();
method public abstract int following(int);
- method public static java.util.Locale[] getAvailableLocales();
+ method public static synchronized java.util.Locale[] getAvailableLocales();
method public static java.text.BreakIterator getCharacterInstance();
method public static java.text.BreakIterator getCharacterInstance(java.util.Locale);
method public static java.text.BreakIterator getLineInstance();
@@ -54014,8 +55081,8 @@
method public static java.text.BreakIterator getWordInstance(java.util.Locale);
method public boolean isBoundary(int);
method public abstract int last();
- method public abstract int next();
method public abstract int next(int);
+ method public abstract int next();
method public int preceding(int);
method public abstract int previous();
method public void setText(java.lang.String);
@@ -54038,11 +55105,11 @@
}
public class ChoiceFormat extends java.text.NumberFormat {
- ctor public ChoiceFormat(double[], java.lang.String[]);
ctor public ChoiceFormat(java.lang.String);
+ ctor public ChoiceFormat(double[], java.lang.String[]);
method public void applyPattern(java.lang.String);
- method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+ method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.Object[] getFormats();
method public double[] getLimits();
method public static final double nextDouble(double);
@@ -54062,8 +55129,8 @@
method public void reset();
method public static final short secondaryOrder(int);
method public void setOffset(int);
- method public void setText(java.text.CharacterIterator);
method public void setText(java.lang.String);
+ method public void setText(java.text.CharacterIterator);
method public static final short tertiaryOrder(int);
field public static final int NULLORDER = -1; // 0xffffffff
}
@@ -54078,18 +55145,18 @@
public abstract class Collator implements java.lang.Cloneable java.util.Comparator {
ctor protected Collator();
method public java.lang.Object clone();
- method public int compare(java.lang.Object, java.lang.Object);
method public abstract int compare(java.lang.String, java.lang.String);
+ method public int compare(java.lang.Object, java.lang.Object);
method public boolean equals(java.lang.String, java.lang.String);
- method public static java.util.Locale[] getAvailableLocales();
+ method public static synchronized java.util.Locale[] getAvailableLocales();
method public abstract java.text.CollationKey getCollationKey(java.lang.String);
- method public int getDecomposition();
- method public static java.text.Collator getInstance();
- method public static java.text.Collator getInstance(java.util.Locale);
- method public int getStrength();
+ method public synchronized int getDecomposition();
+ method public static synchronized java.text.Collator getInstance();
+ method public static synchronized java.text.Collator getInstance(java.util.Locale);
+ method public synchronized int getStrength();
method public abstract int hashCode();
- method public void setDecomposition(int);
- method public void setStrength(int);
+ method public synchronized void setDecomposition(int);
+ method public synchronized void setStrength(int);
field public static final int CANONICAL_DECOMPOSITION = 1; // 0x1
field public static final int FULL_DECOMPOSITION = 2; // 0x2
field public static final int IDENTICAL = 3; // 0x3
@@ -54102,8 +55169,8 @@
public abstract class DateFormat extends java.text.Format {
ctor protected DateFormat();
method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.String format(java.util.Date);
method public abstract java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
+ method public final java.lang.String format(java.util.Date);
method public static java.util.Locale[] getAvailableLocales();
method public java.util.Calendar getCalendar();
method public static final java.text.DateFormat getDateInstance();
@@ -54208,9 +55275,9 @@
ctor public DecimalFormat(java.lang.String, java.text.DecimalFormatSymbols);
method public void applyLocalizedPattern(java.lang.String);
method public void applyPattern(java.lang.String);
+ method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.text.DecimalFormatSymbols getDecimalFormatSymbols();
method public int getGroupingSize();
method public int getMultiplier();
@@ -54246,15 +55313,17 @@
method public java.lang.String getExponentSeparator();
method public char getGroupingSeparator();
method public java.lang.String getInfinity();
- method public static java.text.DecimalFormatSymbols getInstance();
- method public static java.text.DecimalFormatSymbols getInstance(java.util.Locale);
+ method public static final java.text.DecimalFormatSymbols getInstance();
+ method public static final java.text.DecimalFormatSymbols getInstance(java.util.Locale);
method public java.lang.String getInternationalCurrencySymbol();
method public char getMinusSign();
+ method public java.lang.String getMinusSignString();
method public char getMonetaryDecimalSeparator();
method public java.lang.String getNaN();
method public char getPatternSeparator();
method public char getPerMill();
method public char getPercent();
+ method public java.lang.String getPercentString();
method public char getZeroDigit();
method public void setCurrency(java.util.Currency);
method public void setCurrencySymbol(java.lang.String);
@@ -54291,8 +55360,8 @@
method public final java.lang.String format(java.lang.Object);
method public abstract java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object);
- method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
method public abstract java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+ method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
}
public static class Format.Field extends java.text.AttributedCharacterIterator.Attribute {
@@ -54300,17 +55369,17 @@
}
public class MessageFormat extends java.text.Format {
- ctor public MessageFormat(java.lang.String, java.util.Locale);
ctor public MessageFormat(java.lang.String);
+ ctor public MessageFormat(java.lang.String, java.util.Locale);
method public void applyPattern(java.lang.String);
method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public static java.lang.String format(java.lang.String, java.lang.Object...);
+ method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.text.Format[] getFormats();
method public java.text.Format[] getFormatsByArgumentIndex();
method public java.util.Locale getLocale();
- method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
+ method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
method public void setFormat(int, java.text.Format);
method public void setFormatByArgumentIndex(int, java.text.Format);
@@ -54341,11 +55410,11 @@
public abstract class NumberFormat extends java.text.Format {
ctor protected NumberFormat();
- method public final java.lang.String format(double);
- method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.String format(long);
- method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+ method public final java.lang.String format(double);
+ method public final java.lang.String format(long);
+ method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+ method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
method public static java.util.Locale[] getAvailableLocales();
method public java.util.Currency getCurrency();
method public static final java.text.NumberFormat getCurrencyInstance();
@@ -54365,8 +55434,8 @@
method public java.math.RoundingMode getRoundingMode();
method public boolean isGroupingUsed();
method public boolean isParseIntegerOnly();
- method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+ method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
method public void setCurrency(java.util.Currency);
method public void setGroupingUsed(boolean);
@@ -54410,10 +55479,10 @@
public class RuleBasedCollator extends java.text.Collator {
ctor public RuleBasedCollator(java.lang.String) throws java.text.ParseException;
- method public int compare(java.lang.String, java.lang.String);
- method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+ method public synchronized int compare(java.lang.String, java.lang.String);
method public java.text.CollationElementIterator getCollationElementIterator(java.lang.String);
- method public java.text.CollationKey getCollationKey(java.lang.String);
+ method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+ method public synchronized java.text.CollationKey getCollationKey(java.lang.String);
method public java.lang.String getRules();
method public int hashCode();
}
@@ -54421,8 +55490,8 @@
public class SimpleDateFormat extends java.text.DateFormat {
ctor public SimpleDateFormat();
ctor public SimpleDateFormat(java.lang.String);
- ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
+ ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
method public void applyLocalizedPattern(java.lang.String);
method public void applyPattern(java.lang.String);
method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
@@ -54569,7 +55638,7 @@
method public int size();
}
- public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.RandomAccess java.io.Serializable {
+ public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
ctor public ArrayList(int);
ctor public ArrayList();
ctor public ArrayList(java.util.Collection<? extends E>);
@@ -54582,109 +55651,109 @@
public class Arrays {
method public static java.util.List<T> asList(T...);
- method public static int binarySearch(byte[], byte);
- method public static int binarySearch(byte[], int, int, byte);
+ method public static int binarySearch(long[], long);
+ method public static int binarySearch(long[], int, int, long);
+ method public static int binarySearch(int[], int);
+ method public static int binarySearch(int[], int, int, int);
+ method public static int binarySearch(short[], short);
+ method public static int binarySearch(short[], int, int, short);
method public static int binarySearch(char[], char);
method public static int binarySearch(char[], int, int, char);
+ method public static int binarySearch(byte[], byte);
+ method public static int binarySearch(byte[], int, int, byte);
method public static int binarySearch(double[], double);
method public static int binarySearch(double[], int, int, double);
method public static int binarySearch(float[], float);
method public static int binarySearch(float[], int, int, float);
- method public static int binarySearch(int[], int);
- method public static int binarySearch(int[], int, int, int);
- method public static int binarySearch(long[], long);
- method public static int binarySearch(long[], int, int, long);
method public static int binarySearch(java.lang.Object[], java.lang.Object);
method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object);
method public static int binarySearch(T[], T, java.util.Comparator<? super T>);
method public static int binarySearch(T[], int, int, T, java.util.Comparator<? super T>);
- method public static int binarySearch(short[], short);
- method public static int binarySearch(short[], int, int, short);
- method public static boolean[] copyOf(boolean[], int);
- method public static byte[] copyOf(byte[], int);
- method public static char[] copyOf(char[], int);
- method public static double[] copyOf(double[], int);
- method public static float[] copyOf(float[], int);
- method public static int[] copyOf(int[], int);
- method public static long[] copyOf(long[], int);
- method public static short[] copyOf(short[], int);
method public static T[] copyOf(T[], int);
method public static T[] copyOf(U[], int, java.lang.Class<? extends T[]>);
- method public static boolean[] copyOfRange(boolean[], int, int);
- method public static byte[] copyOfRange(byte[], int, int);
- method public static char[] copyOfRange(char[], int, int);
- method public static double[] copyOfRange(double[], int, int);
- method public static float[] copyOfRange(float[], int, int);
- method public static int[] copyOfRange(int[], int, int);
- method public static long[] copyOfRange(long[], int, int);
- method public static short[] copyOfRange(short[], int, int);
+ method public static byte[] copyOf(byte[], int);
+ method public static short[] copyOf(short[], int);
+ method public static int[] copyOf(int[], int);
+ method public static long[] copyOf(long[], int);
+ method public static char[] copyOf(char[], int);
+ method public static float[] copyOf(float[], int);
+ method public static double[] copyOf(double[], int);
+ method public static boolean[] copyOf(boolean[], int);
method public static T[] copyOfRange(T[], int, int);
method public static T[] copyOfRange(U[], int, int, java.lang.Class<? extends T[]>);
+ method public static byte[] copyOfRange(byte[], int, int);
+ method public static short[] copyOfRange(short[], int, int);
+ method public static int[] copyOfRange(int[], int, int);
+ method public static long[] copyOfRange(long[], int, int);
+ method public static char[] copyOfRange(char[], int, int);
+ method public static float[] copyOfRange(float[], int, int);
+ method public static double[] copyOfRange(double[], int, int);
+ method public static boolean[] copyOfRange(boolean[], int, int);
method public static boolean deepEquals(java.lang.Object[], java.lang.Object[]);
method public static int deepHashCode(java.lang.Object[]);
method public static java.lang.String deepToString(java.lang.Object[]);
- method public static boolean equals(byte[], byte[]);
+ method public static boolean equals(long[], long[]);
+ method public static boolean equals(int[], int[]);
method public static boolean equals(short[], short[]);
method public static boolean equals(char[], char[]);
- method public static boolean equals(int[], int[]);
- method public static boolean equals(long[], long[]);
- method public static boolean equals(float[], float[]);
- method public static boolean equals(double[], double[]);
+ method public static boolean equals(byte[], byte[]);
method public static boolean equals(boolean[], boolean[]);
+ method public static boolean equals(double[], double[]);
+ method public static boolean equals(float[], float[]);
method public static boolean equals(java.lang.Object[], java.lang.Object[]);
- method public static void fill(byte[], byte);
- method public static void fill(byte[], int, int, byte);
+ method public static void fill(long[], long);
+ method public static void fill(long[], int, int, long);
+ method public static void fill(int[], int);
+ method public static void fill(int[], int, int, int);
method public static void fill(short[], short);
method public static void fill(short[], int, int, short);
method public static void fill(char[], char);
method public static void fill(char[], int, int, char);
- method public static void fill(int[], int);
- method public static void fill(int[], int, int, int);
- method public static void fill(long[], long);
- method public static void fill(long[], int, int, long);
- method public static void fill(float[], float);
- method public static void fill(float[], int, int, float);
- method public static void fill(double[], double);
- method public static void fill(double[], int, int, double);
+ method public static void fill(byte[], byte);
+ method public static void fill(byte[], int, int, byte);
method public static void fill(boolean[], boolean);
method public static void fill(boolean[], int, int, boolean);
+ method public static void fill(double[], double);
+ method public static void fill(double[], int, int, double);
+ method public static void fill(float[], float);
+ method public static void fill(float[], int, int, float);
method public static void fill(java.lang.Object[], java.lang.Object);
method public static void fill(java.lang.Object[], int, int, java.lang.Object);
- method public static int hashCode(boolean[]);
+ method public static int hashCode(long[]);
method public static int hashCode(int[]);
method public static int hashCode(short[]);
method public static int hashCode(char[]);
method public static int hashCode(byte[]);
- method public static int hashCode(long[]);
+ method public static int hashCode(boolean[]);
method public static int hashCode(float[]);
method public static int hashCode(double[]);
method public static int hashCode(java.lang.Object[]);
- method public static void sort(byte[]);
- method public static void sort(byte[], int, int);
- method public static void sort(char[]);
- method public static void sort(char[], int, int);
- method public static void sort(double[]);
- method public static void sort(double[], int, int);
- method public static void sort(float[]);
- method public static void sort(float[], int, int);
method public static void sort(int[]);
method public static void sort(int[], int, int);
method public static void sort(long[]);
method public static void sort(long[], int, int);
method public static void sort(short[]);
method public static void sort(short[], int, int);
+ method public static void sort(char[]);
+ method public static void sort(char[], int, int);
+ method public static void sort(byte[]);
+ method public static void sort(byte[], int, int);
+ method public static void sort(float[]);
+ method public static void sort(float[], int, int);
+ method public static void sort(double[]);
+ method public static void sort(double[], int, int);
method public static void sort(java.lang.Object[]);
method public static void sort(java.lang.Object[], int, int);
- method public static void sort(T[], int, int, java.util.Comparator<? super T>);
method public static void sort(T[], java.util.Comparator<? super T>);
- method public static java.lang.String toString(boolean[]);
- method public static java.lang.String toString(byte[]);
- method public static java.lang.String toString(char[]);
- method public static java.lang.String toString(double[]);
- method public static java.lang.String toString(float[]);
- method public static java.lang.String toString(int[]);
+ method public static void sort(T[], int, int, java.util.Comparator<? super T>);
method public static java.lang.String toString(long[]);
+ method public static java.lang.String toString(int[]);
method public static java.lang.String toString(short[]);
+ method public static java.lang.String toString(char[]);
+ method public static java.lang.String toString(byte[]);
+ method public static java.lang.String toString(boolean[]);
+ method public static java.lang.String toString(float[]);
+ method public static java.lang.String toString(double[]);
method public static java.lang.String toString(java.lang.Object[]);
}
@@ -54695,8 +55764,8 @@
method public void andNot(java.util.BitSet);
method public int cardinality();
method public void clear(int);
- method public void clear();
method public void clear(int, int);
+ method public void clear();
method public java.lang.Object clone();
method public void flip(int);
method public void flip(int, int);
@@ -54712,8 +55781,8 @@
method public int previousSetBit(int);
method public void set(int);
method public void set(int, boolean);
- method public void set(int, int, boolean);
method public void set(int, int);
+ method public void set(int, int, boolean);
method public int size();
method public byte[] toByteArray();
method public long[] toLongArray();
@@ -54745,10 +55814,10 @@
method public java.util.Map<java.lang.String, java.lang.Integer> getDisplayNames(int, int, java.util.Locale);
method public int getFirstDayOfWeek();
method public abstract int getGreatestMinimum(int);
- method public static synchronized java.util.Calendar getInstance();
- method public static synchronized java.util.Calendar getInstance(java.util.Locale);
- method public static synchronized java.util.Calendar getInstance(java.util.TimeZone);
- method public static synchronized java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
+ method public static java.util.Calendar getInstance();
+ method public static java.util.Calendar getInstance(java.util.TimeZone);
+ method public static java.util.Calendar getInstance(java.util.Locale);
+ method public static java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
method public abstract int getLeastMaximum(int);
method public abstract int getMaximum(int);
method public int getMinimalDaysInFirstWeek();
@@ -54756,11 +55825,14 @@
method public final java.util.Date getTime();
method public long getTimeInMillis();
method public java.util.TimeZone getTimeZone();
+ method public int getWeekYear();
+ method public int getWeeksInWeekYear();
method protected final int internalGet(int);
method public boolean isLenient();
method public final boolean isSet(int);
- method public void roll(int, int);
+ method public boolean isWeekDateSupported();
method public abstract void roll(int, boolean);
+ method public void roll(int, int);
method public void set(int, int);
method public final void set(int, int, int);
method public final void set(int, int, int, int, int);
@@ -54771,6 +55843,7 @@
method public final void setTime(java.util.Date);
method public void setTimeInMillis(long);
method public void setTimeZone(java.util.TimeZone);
+ method public void setWeekDate(int, int, int);
field public static final int ALL_STYLES = 0; // 0x0
field public static final int AM = 0; // 0x0
field public static final int AM_PM = 9; // 0x9
@@ -54887,15 +55960,15 @@
method public static java.util.Collection<T> synchronizedCollection(java.util.Collection<T>);
method public static java.util.List<T> synchronizedList(java.util.List<T>);
method public static java.util.Map<K, V> synchronizedMap(java.util.Map<K, V>);
- method public static java.util.Set<E> synchronizedSet(java.util.Set<E>);
+ method public static java.util.Set<T> synchronizedSet(java.util.Set<T>);
method public static java.util.SortedMap<K, V> synchronizedSortedMap(java.util.SortedMap<K, V>);
- method public static java.util.SortedSet<E> synchronizedSortedSet(java.util.SortedSet<E>);
- method public static java.util.Collection<E> unmodifiableCollection(java.util.Collection<? extends E>);
- method public static java.util.List<E> unmodifiableList(java.util.List<? extends E>);
+ method public static java.util.SortedSet<T> synchronizedSortedSet(java.util.SortedSet<T>);
+ method public static java.util.Collection<T> unmodifiableCollection(java.util.Collection<? extends T>);
+ method public static java.util.List<T> unmodifiableList(java.util.List<? extends T>);
method public static java.util.Map<K, V> unmodifiableMap(java.util.Map<? extends K, ? extends V>);
- method public static java.util.Set<E> unmodifiableSet(java.util.Set<? extends E>);
+ method public static java.util.Set<T> unmodifiableSet(java.util.Set<? extends T>);
method public static java.util.SortedMap<K, V> unmodifiableSortedMap(java.util.SortedMap<K, ? extends V>);
- method public static java.util.SortedSet<E> unmodifiableSortedSet(java.util.SortedSet<E>);
+ method public static java.util.SortedSet<T> unmodifiableSortedSet(java.util.SortedSet<T>);
field public static final java.util.List EMPTY_LIST;
field public static final java.util.Map EMPTY_MAP;
field public static final java.util.Set EMPTY_SET;
@@ -54909,8 +55982,8 @@
public class ConcurrentModificationException extends java.lang.RuntimeException {
ctor public ConcurrentModificationException();
ctor public ConcurrentModificationException(java.lang.String);
- ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
ctor public ConcurrentModificationException(java.lang.Throwable);
+ ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
}
public final class Currency implements java.io.Serializable {
@@ -54921,16 +55994,17 @@
method public java.lang.String getDisplayName(java.util.Locale);
method public static java.util.Currency getInstance(java.lang.String);
method public static java.util.Currency getInstance(java.util.Locale);
+ method public int getNumericCode();
method public java.lang.String getSymbol();
method public java.lang.String getSymbol(java.util.Locale);
}
public class Date implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
ctor public Date();
+ ctor public Date(long);
ctor public deprecated Date(int, int, int);
ctor public deprecated Date(int, int, int, int, int);
ctor public deprecated Date(int, int, int, int, int, int);
- ctor public Date(long);
ctor public deprecated Date(java.lang.String);
method public static deprecated long UTC(int, int, int, int, int, int);
method public boolean after(java.util.Date);
@@ -55008,7 +56082,7 @@
ctor public EmptyStackException();
}
- public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
+ public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
ctor public EnumMap(java.lang.Class<K>);
ctor public EnumMap(java.util.EnumMap<K, ? extends V>);
ctor public EnumMap(java.util.Map<K, ? extends V>);
@@ -55041,8 +56115,8 @@
}
public abstract class EventListenerProxy implements java.util.EventListener {
- ctor public EventListenerProxy(java.util.EventListener);
- method public java.util.EventListener getListener();
+ ctor public EventListenerProxy(T);
+ method public T getListener();
}
public class EventObject implements java.io.Serializable {
@@ -55051,14 +56125,14 @@
field protected transient java.lang.Object source;
}
- public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException {
ctor public FormatFlagsConversionMismatchException(java.lang.String, char);
method public char getConversion();
method public java.lang.String getFlags();
}
public abstract interface Formattable {
- method public abstract void formatTo(java.util.Formatter, int, int, int) throws java.util.IllegalFormatException;
+ method public abstract void formatTo(java.util.Formatter, int, int, int);
}
public class FormattableFlags {
@@ -55078,10 +56152,10 @@
ctor public Formatter(java.io.File) throws java.io.FileNotFoundException;
ctor public Formatter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
ctor public Formatter(java.io.File, java.lang.String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+ ctor public Formatter(java.io.PrintStream);
ctor public Formatter(java.io.OutputStream);
ctor public Formatter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
ctor public Formatter(java.io.OutputStream, java.lang.String, java.util.Locale) throws java.io.UnsupportedEncodingException;
- ctor public Formatter(java.io.PrintStream);
method public void close();
method public void flush();
method public java.util.Formatter format(java.lang.String, java.lang.Object...);
@@ -55098,18 +56172,18 @@
enum_constant public static final java.util.Formatter.BigDecimalLayoutForm SCIENTIFIC;
}
- public class FormatterClosedException extends java.lang.IllegalStateException implements java.io.Serializable {
+ public class FormatterClosedException extends java.lang.IllegalStateException {
ctor public FormatterClosedException();
}
public class GregorianCalendar extends java.util.Calendar {
ctor public GregorianCalendar();
+ ctor public GregorianCalendar(java.util.TimeZone);
+ ctor public GregorianCalendar(java.util.Locale);
+ ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
ctor public GregorianCalendar(int, int, int);
ctor public GregorianCalendar(int, int, int, int, int);
ctor public GregorianCalendar(int, int, int, int, int, int);
- ctor public GregorianCalendar(java.util.Locale);
- ctor public GregorianCalendar(java.util.TimeZone);
- ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
method public void add(int, int);
method protected void computeFields();
method protected void computeTime();
@@ -55119,16 +56193,17 @@
method public int getMaximum(int);
method public int getMinimum(int);
method public boolean isLeapYear(int);
+ method public final boolean isWeekDateSupported();
method public void roll(int, boolean);
method public void setGregorianChange(java.util.Date);
field public static final int AD = 1; // 0x1
field public static final int BC = 0; // 0x0
}
- public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
- ctor public HashMap();
- ctor public HashMap(int);
+ public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
ctor public HashMap(int, float);
+ ctor public HashMap(int);
+ ctor public HashMap();
ctor public HashMap(java.util.Map<? extends K, ? extends V>);
method public java.lang.Object clone();
method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
@@ -55136,36 +56211,36 @@
public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
ctor public HashSet();
- ctor public HashSet(int);
- ctor public HashSet(int, float);
ctor public HashSet(java.util.Collection<? extends E>);
+ ctor public HashSet(int, float);
+ ctor public HashSet(int);
method public java.lang.Object clone();
method public java.util.Iterator<E> iterator();
method public int size();
}
public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable {
- ctor public Hashtable();
- ctor public Hashtable(int);
ctor public Hashtable(int, float);
+ ctor public Hashtable(int);
+ ctor public Hashtable();
ctor public Hashtable(java.util.Map<? extends K, ? extends V>);
method public synchronized void clear();
method public synchronized java.lang.Object clone();
- method public boolean contains(java.lang.Object);
+ method public synchronized boolean contains(java.lang.Object);
method public synchronized boolean containsKey(java.lang.Object);
- method public synchronized boolean containsValue(java.lang.Object);
+ method public boolean containsValue(java.lang.Object);
method public synchronized java.util.Enumeration<V> elements();
- method public synchronized java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+ method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
method public synchronized V get(java.lang.Object);
method public synchronized boolean isEmpty();
- method public synchronized java.util.Set<K> keySet();
+ method public java.util.Set<K> keySet();
method public synchronized java.util.Enumeration<K> keys();
method public synchronized V put(K, V);
method public synchronized void putAll(java.util.Map<? extends K, ? extends V>);
method protected void rehash();
method public synchronized V remove(java.lang.Object);
method public synchronized int size();
- method public synchronized java.util.Collection<V> values();
+ method public java.util.Collection<V> values();
}
public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
@@ -55176,21 +56251,21 @@
method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
}
- public class IllegalFormatCodePointException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class IllegalFormatCodePointException extends java.util.IllegalFormatException {
ctor public IllegalFormatCodePointException(int);
method public int getCodePoint();
}
- public class IllegalFormatConversionException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class IllegalFormatConversionException extends java.util.IllegalFormatException {
ctor public IllegalFormatConversionException(char, java.lang.Class<?>);
method public java.lang.Class<?> getArgumentClass();
method public char getConversion();
}
- public class IllegalFormatException extends java.lang.IllegalArgumentException implements java.io.Serializable {
+ public class IllegalFormatException extends java.lang.IllegalArgumentException {
}
- public class IllegalFormatFlagsException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class IllegalFormatFlagsException extends java.util.IllegalFormatException {
ctor public IllegalFormatFlagsException(java.lang.String);
method public java.lang.String getFlags();
}
@@ -55212,14 +56287,14 @@
method public int getErrorIndex();
}
- public class InputMismatchException extends java.util.NoSuchElementException implements java.io.Serializable {
+ public class InputMismatchException extends java.util.NoSuchElementException {
ctor public InputMismatchException();
ctor public InputMismatchException(java.lang.String);
}
public class InvalidPropertiesFormatException extends java.io.IOException {
- ctor public InvalidPropertiesFormatException(java.lang.String);
ctor public InvalidPropertiesFormatException(java.lang.Throwable);
+ ctor public InvalidPropertiesFormatException(java.lang.String);
}
public abstract interface Iterator {
@@ -55228,23 +56303,23 @@
method public abstract void remove();
}
- public class LinkedHashMap extends java.util.HashMap {
- ctor public LinkedHashMap();
- ctor public LinkedHashMap(int);
+ public class LinkedHashMap extends java.util.HashMap implements java.util.Map {
ctor public LinkedHashMap(int, float);
- ctor public LinkedHashMap(int, float, boolean);
+ ctor public LinkedHashMap(int);
+ ctor public LinkedHashMap();
ctor public LinkedHashMap(java.util.Map<? extends K, ? extends V>);
+ ctor public LinkedHashMap(int, float, boolean);
method protected boolean removeEldestEntry(java.util.Map.Entry<K, V>);
}
public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
- ctor public LinkedHashSet();
- ctor public LinkedHashSet(int);
ctor public LinkedHashSet(int, float);
+ ctor public LinkedHashSet(int);
+ ctor public LinkedHashSet();
ctor public LinkedHashSet(java.util.Collection<? extends E>);
}
- public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.util.Queue java.io.Serializable {
+ public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable {
ctor public LinkedList();
ctor public LinkedList(java.util.Collection<? extends E>);
method public void addFirst(E);
@@ -55275,10 +56350,10 @@
}
public abstract interface List implements java.util.Collection {
- method public abstract void add(int, E);
method public abstract boolean add(E);
- method public abstract boolean addAll(int, java.util.Collection<? extends E>);
+ method public abstract void add(int, E);
method public abstract boolean addAll(java.util.Collection<? extends E>);
+ method public abstract boolean addAll(int, java.util.Collection<? extends E>);
method public abstract void clear();
method public abstract boolean contains(java.lang.Object);
method public abstract boolean containsAll(java.util.Collection<?>);
@@ -55291,8 +56366,8 @@
method public abstract int lastIndexOf(java.lang.Object);
method public abstract java.util.ListIterator<E> listIterator();
method public abstract java.util.ListIterator<E> listIterator(int);
- method public abstract E remove(int);
method public abstract boolean remove(java.lang.Object);
+ method public abstract E remove(int);
method public abstract boolean removeAll(java.util.Collection<?>);
method public abstract boolean retainAll(java.util.Collection<?>);
method public abstract E set(int, E);
@@ -55322,14 +56397,15 @@
}
public final class Locale implements java.lang.Cloneable java.io.Serializable {
- ctor public Locale(java.lang.String);
- ctor public Locale(java.lang.String, java.lang.String);
ctor public Locale(java.lang.String, java.lang.String, java.lang.String);
+ ctor public Locale(java.lang.String, java.lang.String);
+ ctor public Locale(java.lang.String);
method public java.lang.Object clone();
method public static java.util.Locale forLanguageTag(java.lang.String);
method public static java.util.Locale[] getAvailableLocales();
method public java.lang.String getCountry();
method public static java.util.Locale getDefault();
+ method public static java.util.Locale getDefault(java.util.Locale.Category);
method public final java.lang.String getDisplayCountry();
method public java.lang.String getDisplayCountry(java.util.Locale);
method public final java.lang.String getDisplayLanguage();
@@ -55342,8 +56418,8 @@
method public java.lang.String getDisplayVariant(java.util.Locale);
method public java.lang.String getExtension(char);
method public java.util.Set<java.lang.Character> getExtensionKeys();
- method public java.lang.String getISO3Country();
- method public java.lang.String getISO3Language();
+ method public java.lang.String getISO3Country() throws java.util.MissingResourceException;
+ method public java.lang.String getISO3Language() throws java.util.MissingResourceException;
method public static java.lang.String[] getISOCountries();
method public static java.lang.String[] getISOLanguages();
method public java.lang.String getLanguage();
@@ -55353,6 +56429,7 @@
method public java.lang.String getUnicodeLocaleType(java.lang.String);
method public java.lang.String getVariant();
method public static synchronized void setDefault(java.util.Locale);
+ method public static synchronized void setDefault(java.util.Locale.Category, java.util.Locale);
method public java.lang.String toLanguageTag();
method public final java.lang.String toString();
field public static final java.util.Locale CANADA;
@@ -55398,6 +56475,13 @@
method public java.util.Locale.Builder setVariant(java.lang.String);
}
+ public static final class Locale.Category extends java.lang.Enum {
+ method public static java.util.Locale.Category valueOf(java.lang.String);
+ method public static final java.util.Locale.Category[] values();
+ enum_constant public static final java.util.Locale.Category DISPLAY;
+ enum_constant public static final java.util.Locale.Category FORMAT;
+ }
+
public abstract interface Map {
method public abstract void clear();
method public abstract boolean containsKey(java.lang.Object);
@@ -55500,15 +56584,15 @@
public class Observable {
ctor public Observable();
- method public void addObserver(java.util.Observer);
- method protected void clearChanged();
- method public int countObservers();
+ method public synchronized void addObserver(java.util.Observer);
+ method protected synchronized void clearChanged();
+ method public synchronized int countObservers();
method public synchronized void deleteObserver(java.util.Observer);
method public synchronized void deleteObservers();
- method public boolean hasChanged();
+ method public synchronized boolean hasChanged();
method public void notifyObservers();
method public void notifyObservers(java.lang.Object);
- method protected void setChanged();
+ method protected synchronized void setChanged();
}
public abstract interface Observer {
@@ -55537,16 +56621,16 @@
method public java.lang.String getProperty(java.lang.String, java.lang.String);
method public void list(java.io.PrintStream);
method public void list(java.io.PrintWriter);
- method public synchronized void load(java.io.InputStream) throws java.io.IOException;
method public synchronized void load(java.io.Reader) throws java.io.IOException;
+ method public synchronized void load(java.io.InputStream) throws java.io.IOException;
method public synchronized void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
method public java.util.Enumeration<?> propertyNames();
method public deprecated void save(java.io.OutputStream, java.lang.String);
- method public java.lang.Object setProperty(java.lang.String, java.lang.String);
- method public synchronized void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
- method public synchronized void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+ method public synchronized java.lang.Object setProperty(java.lang.String, java.lang.String);
+ method public void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+ method public void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
method public void storeToXML(java.io.OutputStream, java.lang.String) throws java.io.IOException;
- method public synchronized void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
+ method public void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
method public java.util.Set<java.lang.String> stringPropertyNames();
field protected java.util.Properties defaults;
}
@@ -55574,7 +56658,7 @@
public class Random implements java.io.Serializable {
ctor public Random();
ctor public Random(long);
- method protected synchronized int next(int);
+ method protected int next(int);
method public boolean nextBoolean();
method public void nextBytes(byte[]);
method public double nextDouble();
@@ -55591,14 +56675,14 @@
public abstract class ResourceBundle {
ctor public ResourceBundle();
- method public static void clearCache();
- method public static void clearCache(java.lang.ClassLoader);
+ method public static final void clearCache();
+ method public static final void clearCache(java.lang.ClassLoader);
method public boolean containsKey(java.lang.String);
- method public static java.util.ResourceBundle getBundle(java.lang.String) throws java.util.MissingResourceException;
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) throws java.util.MissingResourceException;
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+ method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader);
method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle.Control);
method public abstract java.util.Enumeration<java.lang.String> getKeys();
method public java.util.Locale getLocale();
@@ -55615,10 +56699,10 @@
public static class ResourceBundle.Control {
ctor protected ResourceBundle.Control();
method public java.util.List<java.util.Locale> getCandidateLocales(java.lang.String, java.util.Locale);
- method public static java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
+ method public static final java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
method public java.util.Locale getFallbackLocale(java.lang.String, java.util.Locale);
method public java.util.List<java.lang.String> getFormats(java.lang.String);
- method public static java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
+ method public static final java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
method public long getTimeToLive(java.lang.String, java.util.Locale);
method public boolean needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long);
method public java.util.ResourceBundle newBundle(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, boolean) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException;
@@ -55632,23 +56716,25 @@
}
public final class Scanner implements java.io.Closeable java.util.Iterator {
- ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
- ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
- ctor public Scanner(java.lang.String);
+ ctor public Scanner(java.lang.Readable);
ctor public Scanner(java.io.InputStream);
ctor public Scanner(java.io.InputStream, java.lang.String);
- ctor public Scanner(java.lang.Readable);
+ ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
+ ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
+ ctor public Scanner(java.nio.file.Path) throws java.io.IOException;
+ ctor public Scanner(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+ ctor public Scanner(java.lang.String);
ctor public Scanner(java.nio.channels.ReadableByteChannel);
ctor public Scanner(java.nio.channels.ReadableByteChannel, java.lang.String);
method public void close();
method public java.util.regex.Pattern delimiter();
- method public java.lang.String findInLine(java.util.regex.Pattern);
method public java.lang.String findInLine(java.lang.String);
- method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
+ method public java.lang.String findInLine(java.util.regex.Pattern);
method public java.lang.String findWithinHorizon(java.lang.String, int);
+ method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
method public boolean hasNext();
- method public boolean hasNext(java.util.regex.Pattern);
method public boolean hasNext(java.lang.String);
+ method public boolean hasNext(java.util.regex.Pattern);
method public boolean hasNextBigDecimal();
method public boolean hasNextBigInteger();
method public boolean hasNextBigInteger(int);
@@ -55668,8 +56754,8 @@
method public java.util.Locale locale();
method public java.util.regex.MatchResult match();
method public java.lang.String next();
- method public java.lang.String next(java.util.regex.Pattern);
method public java.lang.String next(java.lang.String);
+ method public java.lang.String next(java.util.regex.Pattern);
method public java.math.BigDecimal nextBigDecimal();
method public java.math.BigInteger nextBigInteger();
method public java.math.BigInteger nextBigInteger(int);
@@ -55736,12 +56822,12 @@
method public int getRawOffset();
method public boolean inDaylightTime(java.util.Date);
method public void setDSTSavings(int);
- method public void setEndRule(int, int, int);
method public void setEndRule(int, int, int, int);
+ method public void setEndRule(int, int, int);
method public void setEndRule(int, int, int, int, boolean);
method public void setRawOffset(int);
- method public void setStartRule(int, int, int);
method public void setStartRule(int, int, int, int);
+ method public void setStartRule(int, int, int);
method public void setStartRule(int, int, int, int, boolean);
method public void setStartYear(int);
method public boolean useDaylightTime();
@@ -55752,11 +56838,14 @@
public abstract interface SortedMap implements java.util.Map {
method public abstract java.util.Comparator<? super K> comparator();
+ method public abstract java.util.Set<java.util.Map.Entry<K, V>> entrySet();
method public abstract K firstKey();
method public abstract java.util.SortedMap<K, V> headMap(K);
+ method public abstract java.util.Set<K> keySet();
method public abstract K lastKey();
method public abstract java.util.SortedMap<K, V> subMap(K, K);
method public abstract java.util.SortedMap<K, V> tailMap(K);
+ method public abstract java.util.Collection<V> values();
}
public abstract interface SortedSet implements java.util.Set {
@@ -55778,9 +56867,9 @@
}
public class StringTokenizer implements java.util.Enumeration {
- ctor public StringTokenizer(java.lang.String);
- ctor public StringTokenizer(java.lang.String, java.lang.String);
ctor public StringTokenizer(java.lang.String, java.lang.String, boolean);
+ ctor public StringTokenizer(java.lang.String, java.lang.String);
+ ctor public StringTokenizer(java.lang.String);
method public int countTokens();
method public boolean hasMoreElements();
method public boolean hasMoreTokens();
@@ -55792,21 +56881,22 @@
public abstract class TimeZone implements java.lang.Cloneable java.io.Serializable {
ctor public TimeZone();
method public java.lang.Object clone();
- method public static synchronized java.lang.String[] getAvailableIDs();
method public static synchronized java.lang.String[] getAvailableIDs(int);
+ method public static synchronized java.lang.String[] getAvailableIDs();
method public int getDSTSavings();
- method public static synchronized java.util.TimeZone getDefault();
+ method public static java.util.TimeZone getDefault();
method public final java.lang.String getDisplayName();
method public final java.lang.String getDisplayName(java.util.Locale);
method public final java.lang.String getDisplayName(boolean, int);
method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
method public java.lang.String getID();
- method public int getOffset(long);
method public abstract int getOffset(int, int, int, int, int, int);
+ method public int getOffset(long);
method public abstract int getRawOffset();
method public static synchronized java.util.TimeZone getTimeZone(java.lang.String);
method public boolean hasSameRules(java.util.TimeZone);
method public abstract boolean inDaylightTime(java.util.Date);
+ method public boolean observesDaylightTime();
method public static synchronized void setDefault(java.util.TimeZone);
method public void setID(java.lang.String);
method public abstract void setRawOffset(int);
@@ -55816,14 +56906,14 @@
}
public class Timer {
- ctor public Timer(java.lang.String, boolean);
- ctor public Timer(java.lang.String);
- ctor public Timer(boolean);
ctor public Timer();
+ ctor public Timer(boolean);
+ ctor public Timer(java.lang.String);
+ ctor public Timer(java.lang.String, boolean);
method public void cancel();
method public int purge();
- method public void schedule(java.util.TimerTask, java.util.Date);
method public void schedule(java.util.TimerTask, long);
+ method public void schedule(java.util.TimerTask, java.util.Date);
method public void schedule(java.util.TimerTask, long, long);
method public void schedule(java.util.TimerTask, java.util.Date, long);
method public void scheduleAtFixedRate(java.util.TimerTask, long, long);
@@ -55842,10 +56932,10 @@
ctor public TooManyListenersException(java.lang.String);
}
- public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable java.util.SortedMap {
+ public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable {
ctor public TreeMap();
- ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
ctor public TreeMap(java.util.Comparator<? super K>);
+ ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
ctor public TreeMap(java.util.SortedMap<K, ? extends V>);
method public java.util.Map.Entry<K, V> ceilingEntry(K);
method public K ceilingKey(K);
@@ -55877,8 +56967,8 @@
public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable {
ctor public TreeSet();
- ctor public TreeSet(java.util.Collection<? extends E>);
ctor public TreeSet(java.util.Comparator<? super E>);
+ ctor public TreeSet(java.util.Collection<? extends E>);
ctor public TreeSet(java.util.SortedSet<E>);
method public E ceiling(E);
method public java.lang.Object clone();
@@ -55928,9 +57018,9 @@
}
public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
- ctor public Vector();
- ctor public Vector(int);
ctor public Vector(int, int);
+ ctor public Vector(int);
+ ctor public Vector();
ctor public Vector(java.util.Collection<? extends E>);
method public synchronized void addElement(E);
method public synchronized int capacity();
@@ -55940,7 +57030,7 @@
method public java.util.Enumeration<E> elements();
method public synchronized void ensureCapacity(int);
method public synchronized E firstElement();
- method public E get(int);
+ method public synchronized E get(int);
method public synchronized int indexOf(java.lang.Object, int);
method public synchronized void insertElementAt(E, int);
method public synchronized E lastElement();
@@ -55958,9 +57048,9 @@
}
public class WeakHashMap extends java.util.AbstractMap implements java.util.Map {
- ctor public WeakHashMap();
- ctor public WeakHashMap(int);
ctor public WeakHashMap(int, float);
+ ctor public WeakHashMap(int);
+ ctor public WeakHashMap();
ctor public WeakHashMap(java.util.Map<? extends K, ? extends V>);
method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
}
@@ -57198,16 +58288,16 @@
public class Attributes implements java.lang.Cloneable java.util.Map {
ctor public Attributes();
- ctor public Attributes(java.util.jar.Attributes);
ctor public Attributes(int);
+ ctor public Attributes(java.util.jar.Attributes);
method public void clear();
method public java.lang.Object clone();
method public boolean containsKey(java.lang.Object);
method public boolean containsValue(java.lang.Object);
method public java.util.Set<java.util.Map.Entry<java.lang.Object, java.lang.Object>> entrySet();
method public java.lang.Object get(java.lang.Object);
- method public java.lang.String getValue(java.util.jar.Attributes.Name);
method public java.lang.String getValue(java.lang.String);
+ method public java.lang.String getValue(java.util.jar.Attributes.Name);
method public boolean isEmpty();
method public java.util.Set<java.lang.Object> keySet();
method public java.lang.Object put(java.lang.Object, java.lang.Object);
@@ -57255,19 +58345,20 @@
}
public class JarFile extends java.util.zip.ZipFile {
+ ctor public JarFile(java.lang.String) throws java.io.IOException;
+ ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
ctor public JarFile(java.io.File) throws java.io.IOException;
ctor public JarFile(java.io.File, boolean) throws java.io.IOException;
ctor public JarFile(java.io.File, boolean, int) throws java.io.IOException;
- ctor public JarFile(java.lang.String) throws java.io.IOException;
- ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
method public java.util.jar.JarEntry getJarEntry(java.lang.String);
method public java.util.jar.Manifest getManifest() throws java.io.IOException;
+ method public boolean hasClassPathAttribute() throws java.io.IOException;
field public static final java.lang.String MANIFEST_NAME = "META-INF/MANIFEST.MF";
}
public class JarInputStream extends java.util.zip.ZipInputStream {
- ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
ctor public JarInputStream(java.io.InputStream) throws java.io.IOException;
+ ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
method public java.util.jar.Manifest getManifest();
method public java.util.jar.JarEntry getNextJarEntry() throws java.io.IOException;
}
@@ -57291,7 +58382,7 @@
}
public abstract class Pack200 {
- method public static java.util.jar.Pack200.Packer newPacker();
+ method public static synchronized java.util.jar.Pack200.Packer newPacker();
method public static java.util.jar.Pack200.Unpacker newUnpacker();
}
@@ -57345,7 +58436,7 @@
public class ErrorManager {
ctor public ErrorManager();
- method public void error(java.lang.String, java.lang.Exception, int);
+ method public synchronized void error(java.lang.String, java.lang.Exception, int);
field public static final int CLOSE_FAILURE = 3; // 0x3
field public static final int FLUSH_FAILURE = 2; // 0x2
field public static final int FORMAT_FAILURE = 5; // 0x5
@@ -57355,11 +58446,11 @@
}
public class FileHandler extends java.util.logging.StreamHandler {
- ctor public FileHandler() throws java.io.IOException;
- ctor public FileHandler(java.lang.String) throws java.io.IOException;
- ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException;
- ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException;
- ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException;
+ ctor public FileHandler() throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String) throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException, java.lang.SecurityException;
}
public abstract interface Filter {
@@ -57369,28 +58460,28 @@
public abstract class Formatter {
ctor protected Formatter();
method public abstract java.lang.String format(java.util.logging.LogRecord);
- method public java.lang.String formatMessage(java.util.logging.LogRecord);
+ method public synchronized java.lang.String formatMessage(java.util.logging.LogRecord);
method public java.lang.String getHead(java.util.logging.Handler);
method public java.lang.String getTail(java.util.logging.Handler);
}
public abstract class Handler {
ctor protected Handler();
- method public abstract void close();
+ method public abstract void close() throws java.lang.SecurityException;
method public abstract void flush();
method public java.lang.String getEncoding();
method public java.util.logging.ErrorManager getErrorManager();
method public java.util.logging.Filter getFilter();
method public java.util.logging.Formatter getFormatter();
- method public java.util.logging.Level getLevel();
+ method public synchronized java.util.logging.Level getLevel();
method public boolean isLoggable(java.util.logging.LogRecord);
method public abstract void publish(java.util.logging.LogRecord);
method protected void reportError(java.lang.String, java.lang.Exception, int);
- method public void setEncoding(java.lang.String) throws java.io.UnsupportedEncodingException;
+ method public void setEncoding(java.lang.String) throws java.lang.SecurityException, java.io.UnsupportedEncodingException;
method public void setErrorManager(java.util.logging.ErrorManager);
- method public void setFilter(java.util.logging.Filter);
- method public void setFormatter(java.util.logging.Formatter);
- method public void setLevel(java.util.logging.Level);
+ method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+ method public void setFormatter(java.util.logging.Formatter) throws java.lang.SecurityException;
+ method public synchronized void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
}
public class Level implements java.io.Serializable {
@@ -57400,7 +58491,7 @@
method public java.lang.String getName();
method public java.lang.String getResourceBundleName();
method public final int intValue();
- method public static java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
+ method public static synchronized java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
method public final java.lang.String toString();
field public static final java.util.logging.Level ALL;
field public static final java.util.logging.Level CONFIG;
@@ -57415,18 +58506,18 @@
public class LogManager {
ctor protected LogManager();
- method public synchronized boolean addLogger(java.util.logging.Logger);
- method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
- method public void checkAccess();
+ method public boolean addLogger(java.util.logging.Logger);
+ method public void addPropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+ method public void checkAccess() throws java.lang.SecurityException;
method public static java.util.logging.LogManager getLogManager();
- method public synchronized java.util.logging.Logger getLogger(java.lang.String);
- method public synchronized java.util.Enumeration<java.lang.String> getLoggerNames();
- method public static java.util.logging.LoggingMXBean getLoggingMXBean();
+ method public java.util.logging.Logger getLogger(java.lang.String);
+ method public java.util.Enumeration<java.lang.String> getLoggerNames();
+ method public static synchronized java.util.logging.LoggingMXBean getLoggingMXBean();
method public java.lang.String getProperty(java.lang.String);
- method public void readConfiguration() throws java.io.IOException;
- method public void readConfiguration(java.io.InputStream) throws java.io.IOException;
- method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
- method public synchronized void reset();
+ method public void readConfiguration() throws java.io.IOException, java.lang.SecurityException;
+ method public void readConfiguration(java.io.InputStream) throws java.io.IOException, java.lang.SecurityException;
+ method public void removePropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+ method public void reset() throws java.lang.SecurityException;
field public static final java.lang.String LOGGING_MXBEAN_NAME = "java.util.logging:type=Logging";
}
@@ -57460,7 +58551,7 @@
public class Logger {
ctor protected Logger(java.lang.String, java.lang.String);
- method public void addHandler(java.util.logging.Handler);
+ method public void addHandler(java.util.logging.Handler) throws java.lang.SecurityException;
method public void config(java.lang.String);
method public void entering(java.lang.String, java.lang.String);
method public void entering(java.lang.String, java.lang.String, java.lang.Object);
@@ -57473,7 +58564,7 @@
method public static java.util.logging.Logger getAnonymousLogger();
method public static java.util.logging.Logger getAnonymousLogger(java.lang.String);
method public java.util.logging.Filter getFilter();
- method public static java.util.logging.Logger getGlobal();
+ method public static final java.util.logging.Logger getGlobal();
method public java.util.logging.Handler[] getHandlers();
method public java.util.logging.Level getLevel();
method public static java.util.logging.Logger getLogger(java.lang.String);
@@ -57485,11 +58576,11 @@
method public boolean getUseParentHandlers();
method public void info(java.lang.String);
method public boolean isLoggable(java.util.logging.Level);
+ method public void log(java.util.logging.LogRecord);
method public void log(java.util.logging.Level, java.lang.String);
method public void log(java.util.logging.Level, java.lang.String, java.lang.Object);
method public void log(java.util.logging.Level, java.lang.String, java.lang.Object[]);
method public void log(java.util.logging.Level, java.lang.String, java.lang.Throwable);
- method public void log(java.util.logging.LogRecord);
method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String);
method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
@@ -57498,9 +58589,9 @@
method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
- method public void removeHandler(java.util.logging.Handler);
- method public void setFilter(java.util.logging.Filter);
- method public void setLevel(java.util.logging.Level);
+ method public void removeHandler(java.util.logging.Handler) throws java.lang.SecurityException;
+ method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+ method public void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
method public void setParent(java.util.logging.Logger);
method public void setUseParentHandlers(boolean);
method public void severe(java.lang.String);
@@ -57517,24 +58608,24 @@
method public abstract void setLoggerLevel(java.lang.String, java.lang.String);
}
- public final class LoggingPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
- ctor public LoggingPermission(java.lang.String, java.lang.String);
+ public final class LoggingPermission extends java.security.BasicPermission {
+ ctor public LoggingPermission(java.lang.String, java.lang.String) throws java.lang.IllegalArgumentException;
}
public class MemoryHandler extends java.util.logging.Handler {
ctor public MemoryHandler();
ctor public MemoryHandler(java.util.logging.Handler, int, java.util.logging.Level);
- method public void close();
+ method public void close() throws java.lang.SecurityException;
method public void flush();
- method public java.util.logging.Level getPushLevel();
+ method public synchronized java.util.logging.Level getPushLevel();
method public synchronized void publish(java.util.logging.LogRecord);
- method public void push();
- method public void setPushLevel(java.util.logging.Level);
+ method public synchronized void push();
+ method public void setPushLevel(java.util.logging.Level) throws java.lang.SecurityException;
}
public class SimpleFormatter extends java.util.logging.Formatter {
ctor public SimpleFormatter();
- method public java.lang.String format(java.util.logging.LogRecord);
+ method public synchronized java.lang.String format(java.util.logging.LogRecord);
}
public class SocketHandler extends java.util.logging.StreamHandler {
@@ -57545,10 +58636,10 @@
public class StreamHandler extends java.util.logging.Handler {
ctor public StreamHandler();
ctor public StreamHandler(java.io.OutputStream, java.util.logging.Formatter);
- method public void close();
- method public void flush();
+ method public synchronized void close() throws java.lang.SecurityException;
+ method public synchronized void flush();
method public synchronized void publish(java.util.logging.LogRecord);
- method protected void setOutputStream(java.io.OutputStream);
+ method protected synchronized void setOutputStream(java.io.OutputStream) throws java.lang.SecurityException;
}
public class XMLFormatter extends java.util.logging.Formatter {
@@ -57618,12 +58709,12 @@
}
public class InvalidPreferencesFormatException extends java.lang.Exception {
+ ctor public InvalidPreferencesFormatException(java.lang.Throwable);
ctor public InvalidPreferencesFormatException(java.lang.String);
ctor public InvalidPreferencesFormatException(java.lang.String, java.lang.Throwable);
- ctor public InvalidPreferencesFormatException(java.lang.Throwable);
}
- public class NodeChangeEvent extends java.util.EventObject implements java.io.Serializable {
+ public class NodeChangeEvent extends java.util.EventObject {
ctor public NodeChangeEvent(java.util.prefs.Preferences, java.util.prefs.Preferences);
method public java.util.prefs.Preferences getChild();
method public java.util.prefs.Preferences getParent();
@@ -57634,7 +58725,7 @@
method public abstract void childRemoved(java.util.prefs.NodeChangeEvent);
}
- public class PreferenceChangeEvent extends java.util.EventObject implements java.io.Serializable {
+ public class PreferenceChangeEvent extends java.util.EventObject {
ctor public PreferenceChangeEvent(java.util.prefs.Preferences, java.lang.String, java.lang.String);
method public java.lang.String getKey();
method public java.lang.String getNewValue();
@@ -57715,8 +58806,8 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
}
public class DeflaterOutputStream extends java.io.FilterOutputStream {
- ctor public DeflaterOutputStream(java.io.OutputStream);
- ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
- ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
- ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
- ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int, boolean);
+ ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
+ ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
+ ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
+ ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
+ ctor public DeflaterOutputStream(java.io.OutputStream);
method protected void deflate() throws java.io.IOException;
method public void finish() throws java.io.IOException;
field protected byte[] buf;
@@ -57872,49 +58964,50 @@
}
public class GZIPInputStream extends java.util.zip.InflaterInputStream {
- ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
ctor public GZIPInputStream(java.io.InputStream, int) throws java.io.IOException;
+ ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
field public static final int GZIP_MAGIC = 35615; // 0x8b1f
field protected java.util.zip.CRC32 crc;
field protected boolean eos;
}
public class GZIPOutputStream extends java.util.zip.DeflaterOutputStream {
- ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
- ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
ctor public GZIPOutputStream(java.io.OutputStream, int) throws java.io.IOException;
ctor public GZIPOutputStream(java.io.OutputStream, int, boolean) throws java.io.IOException;
+ ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
+ ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
field protected java.util.zip.CRC32 crc;
}
public class Inflater {
- ctor public Inflater();
ctor public Inflater(boolean);
- method public synchronized void end();
- method public synchronized boolean finished();
- method public synchronized int getAdler();
- method public synchronized long getBytesRead();
- method public synchronized long getBytesWritten();
- method public synchronized int getRemaining();
- method public synchronized int getTotalIn();
- method public synchronized int getTotalOut();
+ ctor public Inflater();
+ method public void end();
+ method public boolean finished();
+ method public int getAdler();
+ method public long getBytesRead();
+ method public long getBytesWritten();
+ method public int getRemaining();
+ method public int getTotalIn();
+ method public int getTotalOut();
+ method public int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
method public int inflate(byte[]) throws java.util.zip.DataFormatException;
- method public synchronized int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
- method public synchronized boolean needsDictionary();
- method public synchronized boolean needsInput();
- method public synchronized void reset();
- method public synchronized void setDictionary(byte[]);
- method public synchronized void setDictionary(byte[], int, int);
- method public synchronized void setInput(byte[]);
- method public synchronized void setInput(byte[], int, int);
+ method public boolean needsDictionary();
+ method public boolean needsInput();
+ method public void reset();
+ method public void setDictionary(byte[], int, int);
+ method public void setDictionary(byte[]);
+ method public void setInput(byte[], int, int);
+ method public void setInput(byte[]);
}
public class InflaterInputStream extends java.io.FilterInputStream {
- ctor public InflaterInputStream(java.io.InputStream);
- ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater, int);
+ ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
+ ctor public InflaterInputStream(java.io.InputStream);
method protected void fill() throws java.io.IOException;
field protected byte[] buf;
+ field protected boolean closed;
field protected java.util.zip.Inflater inf;
field protected int len;
}
@@ -58002,9 +59095,12 @@
}
public class ZipFile implements java.io.Closeable {
- ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
ctor public ZipFile(java.lang.String) throws java.io.IOException;
ctor public ZipFile(java.io.File, int) throws java.io.IOException;
+ ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
+ ctor public ZipFile(java.io.File, int, java.nio.charset.Charset) throws java.io.IOException;
+ ctor public ZipFile(java.lang.String, java.nio.charset.Charset) throws java.io.IOException;
+ ctor public ZipFile(java.io.File, java.nio.charset.Charset) throws java.io.IOException;
method public void close() throws java.io.IOException;
method public java.util.Enumeration<? extends java.util.zip.ZipEntry> entries();
method public java.lang.String getComment();
@@ -58058,6 +59154,7 @@
public class ZipInputStream extends java.util.zip.InflaterInputStream {
ctor public ZipInputStream(java.io.InputStream);
+ ctor public ZipInputStream(java.io.InputStream, java.nio.charset.Charset);
method public void closeEntry() throws java.io.IOException;
method protected java.util.zip.ZipEntry createZipEntry(java.lang.String);
method public java.util.zip.ZipEntry getNextEntry() throws java.io.IOException;
@@ -58105,6 +59202,7 @@
public class ZipOutputStream extends java.util.zip.DeflaterOutputStream {
ctor public ZipOutputStream(java.io.OutputStream);
+ ctor public ZipOutputStream(java.io.OutputStream, java.nio.charset.Charset);
method public void closeEntry() throws java.io.IOException;
method public void putNextEntry(java.util.zip.ZipEntry) throws java.io.IOException;
method public void setComment(java.lang.String);
@@ -58164,8 +59262,8 @@
}
public class BadPaddingException extends java.security.GeneralSecurityException {
- ctor public BadPaddingException(java.lang.String);
ctor public BadPaddingException();
+ ctor public BadPaddingException(java.lang.String);
}
public class Cipher {
@@ -58276,14 +59374,14 @@
method public final int getOutputSize(int) throws java.lang.IllegalStateException;
method public final java.security.Provider getProvider();
method public final void init(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
- method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+ method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final boolean isCryptoAllowed(java.security.Key) throws javax.crypto.ExemptionMechanismException;
}
public class ExemptionMechanismException extends java.security.GeneralSecurityException {
- ctor public ExemptionMechanismException(java.lang.String);
ctor public ExemptionMechanismException();
+ ctor public ExemptionMechanismException(java.lang.String);
}
public abstract class ExemptionMechanismSpi {
@@ -58292,13 +59390,13 @@
method protected abstract int engineGenExemptionBlob(byte[], int) throws javax.crypto.ExemptionMechanismException, javax.crypto.ShortBufferException;
method protected abstract int engineGetOutputSize(int);
method protected abstract void engineInit(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
- method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method protected abstract void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+ method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
}
public class IllegalBlockSizeException extends java.security.GeneralSecurityException {
- ctor public IllegalBlockSizeException(java.lang.String);
ctor public IllegalBlockSizeException();
+ ctor public IllegalBlockSizeException(java.lang.String);
}
public class KeyAgreement {
@@ -58336,19 +59434,19 @@
method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
method public final java.security.Provider getProvider();
+ method public final void init(java.security.SecureRandom);
method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
method public final void init(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
method public final void init(int);
method public final void init(int, java.security.SecureRandom);
- method public final void init(java.security.SecureRandom);
}
public abstract class KeyGeneratorSpi {
ctor public KeyGeneratorSpi();
method protected abstract javax.crypto.SecretKey engineGenerateKey();
+ method protected abstract void engineInit(java.security.SecureRandom);
method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
method protected abstract void engineInit(int, java.security.SecureRandom);
- method protected abstract void engineInit(java.security.SecureRandom);
}
public class Mac implements java.lang.Cloneable {
@@ -58363,12 +59461,12 @@
method public static final javax.crypto.Mac getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
method public final int getMacLength();
method public final java.security.Provider getProvider();
- method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final void init(java.security.Key) throws java.security.InvalidKeyException;
+ method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final void reset();
method public final void update(byte) throws java.lang.IllegalStateException;
- method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
method public final void update(byte[]) throws java.lang.IllegalStateException;
+ method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
method public final void update(java.nio.ByteBuffer);
}
@@ -58385,8 +59483,8 @@
}
public class NoSuchPaddingException extends java.security.GeneralSecurityException {
- ctor public NoSuchPaddingException(java.lang.String);
ctor public NoSuchPaddingException();
+ ctor public NoSuchPaddingException(java.lang.String);
}
public class NullCipher extends javax.crypto.Cipher {
@@ -58427,8 +59525,8 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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.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.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 @@
}
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 @@
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 @@
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 @@
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 @@
method public abstract void setMaxRows(int) throws java.sql.SQLException;
method public abstract void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
method public abstract void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
- method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
method public abstract void setNCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+ method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+ method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
+ method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+ method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+ method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
method public abstract void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
method public abstract void setNClob(int, java.io.Reader) throws java.sql.SQLException;
- method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
- method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
- method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
- method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(int, int) throws java.sql.SQLException;
- method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
+ method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
- method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
- method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+ method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+ method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void setPassword(java.lang.String) throws java.sql.SQLException;
method public abstract void setQueryTimeout(int) throws java.sql.SQLException;
method public abstract void setReadOnly(boolean) throws java.sql.SQLException;
@@ -60157,8 +61325,8 @@
method public abstract void setTime(java.lang.String, java.sql.Time) throws java.sql.SQLException;
method public abstract void setTime(java.lang.String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
- method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp) throws java.sql.SQLException;
+ method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTransactionIsolation(int) throws java.sql.SQLException;
method public abstract void setType(int) throws java.sql.SQLException;
@@ -60168,7 +61336,7 @@
method public abstract void setUsername(java.lang.String) throws java.sql.SQLException;
}
- public class RowSetEvent extends java.util.EventObject implements java.io.Serializable {
+ public class RowSetEvent extends java.util.EventObject {
ctor public RowSetEvent(javax.sql.RowSet);
}
@@ -60215,8 +61383,8 @@
}
public class StatementEvent extends java.util.EventObject {
- ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement);
+ ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
method public java.sql.SQLException getSQLException();
method public java.sql.PreparedStatement getStatement();
}
diff --git a/api/system-current.txt b/api/system-current.txt
index 36d0755..f17c2f1 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -49054,13 +49054,18 @@
package java.awt.font {
public final class NumericShaper implements java.io.Serializable {
- method public static java.awt.font.NumericShaper getContextualShaper(int, int);
method public static java.awt.font.NumericShaper getContextualShaper(int);
+ method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>);
+ method public static java.awt.font.NumericShaper getContextualShaper(int, int);
+ method public static java.awt.font.NumericShaper getContextualShaper(java.util.Set<java.awt.font.NumericShaper.Range>, java.awt.font.NumericShaper.Range);
+ method public java.util.Set<java.awt.font.NumericShaper.Range> getRangeSet();
method public int getRanges();
method public static java.awt.font.NumericShaper getShaper(int);
+ method public static java.awt.font.NumericShaper getShaper(java.awt.font.NumericShaper.Range);
method public boolean isContextual();
- method public void shape(char[], int, int, int);
method public void shape(char[], int, int);
+ method public void shape(char[], int, int, int);
+ method public void shape(char[], int, int, java.awt.font.NumericShaper.Range);
field public static final int ALL_RANGES = 524287; // 0x7ffff
field public static final int ARABIC = 2; // 0x2
field public static final int BENGALI = 16; // 0x10
@@ -49083,6 +49088,46 @@
field public static final int TIBETAN = 16384; // 0x4000
}
+ public static class NumericShaper.Range extends java.lang.Enum {
+ method public static java.awt.font.NumericShaper.Range valueOf(java.lang.String);
+ method public static final java.awt.font.NumericShaper.Range[] values();
+ enum_constant public static final java.awt.font.NumericShaper.Range ARABIC;
+ enum_constant public static final java.awt.font.NumericShaper.Range BALINESE;
+ enum_constant public static final java.awt.font.NumericShaper.Range BENGALI;
+ enum_constant public static final java.awt.font.NumericShaper.Range CHAM;
+ enum_constant public static final java.awt.font.NumericShaper.Range DEVANAGARI;
+ enum_constant public static final java.awt.font.NumericShaper.Range EASTERN_ARABIC;
+ enum_constant public static final java.awt.font.NumericShaper.Range ETHIOPIC;
+ enum_constant public static final java.awt.font.NumericShaper.Range EUROPEAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range GUJARATI;
+ enum_constant public static final java.awt.font.NumericShaper.Range GURMUKHI;
+ enum_constant public static final java.awt.font.NumericShaper.Range JAVANESE;
+ enum_constant public static final java.awt.font.NumericShaper.Range KANNADA;
+ enum_constant public static final java.awt.font.NumericShaper.Range KAYAH_LI;
+ enum_constant public static final java.awt.font.NumericShaper.Range KHMER;
+ enum_constant public static final java.awt.font.NumericShaper.Range LAO;
+ enum_constant public static final java.awt.font.NumericShaper.Range LEPCHA;
+ enum_constant public static final java.awt.font.NumericShaper.Range LIMBU;
+ enum_constant public static final java.awt.font.NumericShaper.Range MALAYALAM;
+ enum_constant public static final java.awt.font.NumericShaper.Range MEETEI_MAYEK;
+ enum_constant public static final java.awt.font.NumericShaper.Range MONGOLIAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR;
+ enum_constant public static final java.awt.font.NumericShaper.Range MYANMAR_SHAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range NEW_TAI_LUE;
+ enum_constant public static final java.awt.font.NumericShaper.Range NKO;
+ enum_constant public static final java.awt.font.NumericShaper.Range OL_CHIKI;
+ enum_constant public static final java.awt.font.NumericShaper.Range ORIYA;
+ enum_constant public static final java.awt.font.NumericShaper.Range SAURASHTRA;
+ enum_constant public static final java.awt.font.NumericShaper.Range SUNDANESE;
+ enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_HORA;
+ enum_constant public static final java.awt.font.NumericShaper.Range TAI_THAM_THAM;
+ enum_constant public static final java.awt.font.NumericShaper.Range TAMIL;
+ enum_constant public static final java.awt.font.NumericShaper.Range TELUGU;
+ enum_constant public static final java.awt.font.NumericShaper.Range THAI;
+ enum_constant public static final java.awt.font.NumericShaper.Range TIBETAN;
+ enum_constant public static final java.awt.font.NumericShaper.Range VAI;
+ }
+
public final class TextAttribute extends java.text.AttributedCharacterIterator.Attribute {
ctor protected TextAttribute(java.lang.String);
field public static final java.awt.font.TextAttribute BACKGROUND;
@@ -49176,20 +49221,20 @@
public class PropertyChangeSupport implements java.io.Serializable {
ctor public PropertyChangeSupport(java.lang.Object);
- method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
+ method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
method public void fireIndexedPropertyChange(java.lang.String, int, java.lang.Object, java.lang.Object);
- method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
method public void fireIndexedPropertyChange(java.lang.String, int, int, int);
+ method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
method public void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
- method public void firePropertyChange(java.lang.String, boolean, boolean);
method public void firePropertyChange(java.lang.String, int, int);
+ method public void firePropertyChange(java.lang.String, boolean, boolean);
method public void firePropertyChange(java.beans.PropertyChangeEvent);
- method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
method public java.beans.PropertyChangeListener[] getPropertyChangeListeners();
+ method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
method public boolean hasListeners(java.lang.String);
- method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
+ method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
}
}
@@ -49214,8 +49259,8 @@
}
public class BufferedReader extends java.io.Reader {
- ctor public BufferedReader(java.io.Reader);
ctor public BufferedReader(java.io.Reader, int);
+ ctor public BufferedReader(java.io.Reader);
method public void close() throws java.io.IOException;
method public int read(char[], int, int) throws java.io.IOException;
method public java.lang.String readLine() throws java.io.IOException;
@@ -49244,10 +49289,10 @@
ctor public ByteArrayOutputStream();
ctor public ByteArrayOutputStream(int);
method public synchronized void reset();
- method public int size();
+ method public synchronized int size();
method public synchronized byte[] toByteArray();
- method public deprecated java.lang.String toString(int);
- method public java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+ method public synchronized java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
+ method public deprecated synchronized java.lang.String toString(int);
method public synchronized void write(int);
method public synchronized void writeTo(java.io.OutputStream) throws java.io.IOException;
field protected byte[] buf;
@@ -49289,13 +49334,15 @@
}
public final class Console implements java.io.Flushable {
+ method public static java.io.Console console();
method public void flush();
method public java.io.Console format(java.lang.String, java.lang.Object...);
+ method public static synchronized java.io.Console getConsole();
method public java.io.Console printf(java.lang.String, java.lang.Object...);
- method public java.lang.String readLine();
method public java.lang.String readLine(java.lang.String, java.lang.Object...);
- method public char[] readPassword();
+ method public java.lang.String readLine();
method public char[] readPassword(java.lang.String, java.lang.Object...);
+ method public char[] readPassword();
method public java.io.Reader reader();
method public java.io.PrintWriter writer();
}
@@ -49341,9 +49388,9 @@
}
public abstract interface DataOutput {
+ method public abstract void write(int) throws java.io.IOException;
method public abstract void write(byte[]) throws java.io.IOException;
method public abstract void write(byte[], int, int) throws java.io.IOException;
- method public abstract void write(int) throws java.io.IOException;
method public abstract void writeBoolean(boolean) throws java.io.IOException;
method public abstract void writeByte(int) throws java.io.IOException;
method public abstract void writeBytes(java.lang.String) throws java.io.IOException;
@@ -49385,17 +49432,17 @@
}
public class File implements java.lang.Comparable java.io.Serializable {
- ctor public File(java.io.File, java.lang.String);
ctor public File(java.lang.String);
ctor public File(java.lang.String, java.lang.String);
+ ctor public File(java.io.File, java.lang.String);
ctor public File(java.net.URI);
method public boolean canExecute();
method public boolean canRead();
method public boolean canWrite();
method public int compareTo(java.io.File);
method public boolean createNewFile() throws java.io.IOException;
- method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
method public static java.io.File createTempFile(java.lang.String, java.lang.String, java.io.File) throws java.io.IOException;
+ method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
method public boolean delete();
method public void deleteOnExit();
method public boolean exists();
@@ -49433,6 +49480,7 @@
method public boolean setReadable(boolean);
method public boolean setWritable(boolean, boolean);
method public boolean setWritable(boolean);
+ method public java.nio.file.Path toPath();
method public java.net.URI toURI();
method public deprecated java.net.URL toURL() throws java.net.MalformedURLException;
field public static final java.lang.String pathSeparator;
@@ -49455,9 +49503,9 @@
}
public class FileInputStream extends java.io.InputStream {
+ ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
ctor public FileInputStream(java.io.File) throws java.io.FileNotFoundException;
ctor public FileInputStream(java.io.FileDescriptor);
- ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
method public java.nio.channels.FileChannel getChannel();
method public final java.io.FileDescriptor getFD() throws java.io.IOException;
method public int read() throws java.io.IOException;
@@ -49469,11 +49517,11 @@
}
public class FileOutputStream extends java.io.OutputStream {
+ ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
+ ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
ctor public FileOutputStream(java.io.File) throws java.io.FileNotFoundException;
ctor public FileOutputStream(java.io.File, boolean) throws java.io.FileNotFoundException;
ctor public FileOutputStream(java.io.FileDescriptor);
- ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
- ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
method public java.nio.channels.FileChannel getChannel();
method public final java.io.FileDescriptor getFD() throws java.io.IOException;
method public void write(int) throws java.io.IOException;
@@ -49481,22 +49529,24 @@
public final class FilePermission extends java.security.Permission implements java.io.Serializable {
ctor public FilePermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
public class FileReader extends java.io.InputStreamReader {
+ ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
ctor public FileReader(java.io.File) throws java.io.FileNotFoundException;
ctor public FileReader(java.io.FileDescriptor);
- ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
}
public class FileWriter extends java.io.OutputStreamWriter {
+ ctor public FileWriter(java.lang.String) throws java.io.IOException;
+ ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
ctor public FileWriter(java.io.File) throws java.io.IOException;
ctor public FileWriter(java.io.File, boolean) throws java.io.IOException;
ctor public FileWriter(java.io.FileDescriptor);
- ctor public FileWriter(java.lang.String) throws java.io.IOException;
- ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
}
public abstract interface FilenameFilter {
@@ -49549,7 +49599,7 @@
ctor public InputStream();
method public int available() throws java.io.IOException;
method public void close() throws java.io.IOException;
- method public void mark(int);
+ method public synchronized void mark(int);
method public boolean markSupported();
method public abstract int read() throws java.io.IOException;
method public int read(byte[]) throws java.io.IOException;
@@ -49561,8 +49611,8 @@
public class InputStreamReader extends java.io.Reader {
ctor public InputStreamReader(java.io.InputStream);
ctor public InputStreamReader(java.io.InputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
ctor public InputStreamReader(java.io.InputStream, java.nio.charset.Charset);
+ ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
method public void close() throws java.io.IOException;
method public java.lang.String getEncoding();
method public int read(char[], int, int) throws java.io.IOException;
@@ -49571,6 +49621,7 @@
public class InterruptedIOException extends java.io.IOException {
ctor public InterruptedIOException();
ctor public InterruptedIOException(java.lang.String);
+ ctor public InterruptedIOException(java.lang.Throwable);
field public int bytesTransferred;
}
@@ -49598,13 +49649,13 @@
}
public class NotActiveException extends java.io.ObjectStreamException {
- ctor public NotActiveException();
ctor public NotActiveException(java.lang.String);
+ ctor public NotActiveException();
}
public class NotSerializableException extends java.io.ObjectStreamException {
- ctor public NotSerializableException();
ctor public NotSerializableException(java.lang.String);
+ ctor public NotSerializableException();
}
public abstract interface ObjectInput implements java.lang.AutoCloseable java.io.DataInput {
@@ -49618,32 +49669,32 @@
}
public class ObjectInputStream extends java.io.InputStream implements java.io.ObjectInput java.io.ObjectStreamConstants {
- ctor protected ObjectInputStream() throws java.io.IOException;
- ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException, java.io.StreamCorruptedException;
- method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
- method protected boolean enableResolveObject(boolean);
+ ctor public ObjectInputStream(java.io.InputStream) throws java.io.IOException;
+ ctor protected ObjectInputStream() throws java.io.IOException, java.lang.SecurityException;
+ method public void defaultReadObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+ method protected boolean enableResolveObject(boolean) throws java.lang.SecurityException;
method public int read() throws java.io.IOException;
method public boolean readBoolean() throws java.io.IOException;
method public byte readByte() throws java.io.IOException;
method public char readChar() throws java.io.IOException;
method protected java.io.ObjectStreamClass readClassDescriptor() throws java.lang.ClassNotFoundException, java.io.IOException;
method public double readDouble() throws java.io.IOException;
- method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.NotActiveException;
+ method public java.io.ObjectInputStream.GetField readFields() throws java.lang.ClassNotFoundException, java.io.IOException;
method public float readFloat() throws java.io.IOException;
method public void readFully(byte[]) throws java.io.IOException;
method public void readFully(byte[], int, int) throws java.io.IOException;
method public int readInt() throws java.io.IOException;
method public deprecated java.lang.String readLine() throws java.io.IOException;
method public long readLong() throws java.io.IOException;
- method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
- method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException, java.io.OptionalDataException;
+ method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+ method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException;
method public short readShort() throws java.io.IOException;
method protected void readStreamHeader() throws java.io.IOException, java.io.StreamCorruptedException;
method public java.lang.String readUTF() throws java.io.IOException;
method public java.lang.Object readUnshared() throws java.lang.ClassNotFoundException, java.io.IOException;
method public int readUnsignedByte() throws java.io.IOException;
method public int readUnsignedShort() throws java.io.IOException;
- method public synchronized void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
+ method public void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
method protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass) throws java.lang.ClassNotFoundException, java.io.IOException;
method protected java.lang.Object resolveObject(java.lang.Object) throws java.io.IOException;
method protected java.lang.Class<?> resolveProxyClass(java.lang.String[]) throws java.lang.ClassNotFoundException, java.io.IOException;
@@ -49652,16 +49703,16 @@
public static abstract class ObjectInputStream.GetField {
ctor public ObjectInputStream.GetField();
- method public abstract boolean defaulted(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract char get(java.lang.String, char) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract byte get(java.lang.String, byte) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract short get(java.lang.String, short) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract int get(java.lang.String, int) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract long get(java.lang.String, long) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract float get(java.lang.String, float) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract double get(java.lang.String, double) throws java.io.IOException, java.lang.IllegalArgumentException;
- method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException, java.lang.IllegalArgumentException;
+ method public abstract boolean defaulted(java.lang.String) throws java.io.IOException;
+ method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException;
+ method public abstract byte get(java.lang.String, byte) throws java.io.IOException;
+ method public abstract char get(java.lang.String, char) throws java.io.IOException;
+ method public abstract short get(java.lang.String, short) throws java.io.IOException;
+ method public abstract int get(java.lang.String, int) throws java.io.IOException;
+ method public abstract long get(java.lang.String, long) throws java.io.IOException;
+ method public abstract float get(java.lang.String, float) throws java.io.IOException;
+ method public abstract double get(java.lang.String, double) throws java.io.IOException;
+ method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException;
method public abstract java.io.ObjectStreamClass getObjectStreamClass();
}
@@ -49672,20 +49723,20 @@
public abstract interface ObjectOutput implements java.lang.AutoCloseable java.io.DataOutput {
method public abstract void close() throws java.io.IOException;
method public abstract void flush() throws java.io.IOException;
+ method public abstract void write(int) throws java.io.IOException;
method public abstract void write(byte[]) throws java.io.IOException;
method public abstract void write(byte[], int, int) throws java.io.IOException;
- method public abstract void write(int) throws java.io.IOException;
method public abstract void writeObject(java.lang.Object) throws java.io.IOException;
}
public class ObjectOutputStream extends java.io.OutputStream implements java.io.ObjectOutput java.io.ObjectStreamConstants {
- ctor protected ObjectOutputStream() throws java.io.IOException;
ctor public ObjectOutputStream(java.io.OutputStream) throws java.io.IOException;
+ ctor protected ObjectOutputStream() throws java.io.IOException, java.lang.SecurityException;
method protected void annotateClass(java.lang.Class<?>) throws java.io.IOException;
method protected void annotateProxyClass(java.lang.Class<?>) throws java.io.IOException;
method public void defaultWriteObject() throws java.io.IOException;
method protected void drain() throws java.io.IOException;
- method protected boolean enableReplaceObject(boolean);
+ method protected boolean enableReplaceObject(boolean) throws java.lang.SecurityException;
method public java.io.ObjectOutputStream.PutField putFields() throws java.io.IOException;
method protected java.lang.Object replaceObject(java.lang.Object) throws java.io.IOException;
method public void reset() throws java.io.IOException;
@@ -49713,8 +49764,8 @@
public static abstract class ObjectOutputStream.PutField {
ctor public ObjectOutputStream.PutField();
method public abstract void put(java.lang.String, boolean);
- method public abstract void put(java.lang.String, char);
method public abstract void put(java.lang.String, byte);
+ method public abstract void put(java.lang.String, char);
method public abstract void put(java.lang.String, short);
method public abstract void put(java.lang.String, int);
method public abstract void put(java.lang.String, long);
@@ -49768,8 +49819,8 @@
}
public abstract class ObjectStreamException extends java.io.IOException {
- ctor protected ObjectStreamException();
ctor protected ObjectStreamException(java.lang.String);
+ ctor protected ObjectStreamException();
}
public class ObjectStreamField implements java.lang.Comparable {
@@ -49795,14 +49846,14 @@
ctor public OutputStream();
method public void close() throws java.io.IOException;
method public void flush() throws java.io.IOException;
+ method public abstract void write(int) throws java.io.IOException;
method public void write(byte[]) throws java.io.IOException;
method public void write(byte[], int, int) throws java.io.IOException;
- method public abstract void write(int) throws java.io.IOException;
}
public class OutputStreamWriter extends java.io.Writer {
- ctor public OutputStreamWriter(java.io.OutputStream);
ctor public OutputStreamWriter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
+ ctor public OutputStreamWriter(java.io.OutputStream);
ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.Charset);
ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.CharsetEncoder);
method public void close() throws java.io.IOException;
@@ -49812,10 +49863,10 @@
}
public class PipedInputStream extends java.io.InputStream {
- ctor public PipedInputStream();
ctor public PipedInputStream(java.io.PipedOutputStream) throws java.io.IOException;
- ctor public PipedInputStream(int);
ctor public PipedInputStream(java.io.PipedOutputStream, int) throws java.io.IOException;
+ ctor public PipedInputStream();
+ ctor public PipedInputStream(int);
method public void connect(java.io.PipedOutputStream) throws java.io.IOException;
method public synchronized int read() throws java.io.IOException;
method protected synchronized void receive(int) throws java.io.IOException;
@@ -49826,28 +49877,28 @@
}
public class PipedOutputStream extends java.io.OutputStream {
- ctor public PipedOutputStream();
ctor public PipedOutputStream(java.io.PipedInputStream) throws java.io.IOException;
- method public void connect(java.io.PipedInputStream) throws java.io.IOException;
+ ctor public PipedOutputStream();
+ method public synchronized void connect(java.io.PipedInputStream) throws java.io.IOException;
method public void write(int) throws java.io.IOException;
}
public class PipedReader extends java.io.Reader {
- ctor public PipedReader();
ctor public PipedReader(java.io.PipedWriter) throws java.io.IOException;
- ctor public PipedReader(int);
ctor public PipedReader(java.io.PipedWriter, int) throws java.io.IOException;
- method public synchronized void close() throws java.io.IOException;
+ ctor public PipedReader();
+ ctor public PipedReader(int);
+ method public void close() throws java.io.IOException;
method public void connect(java.io.PipedWriter) throws java.io.IOException;
method public synchronized int read(char[], int, int) throws java.io.IOException;
}
public class PipedWriter extends java.io.Writer {
- ctor public PipedWriter();
ctor public PipedWriter(java.io.PipedReader) throws java.io.IOException;
+ ctor public PipedWriter();
method public void close() throws java.io.IOException;
- method public void connect(java.io.PipedReader) throws java.io.IOException;
- method public void flush() throws java.io.IOException;
+ method public synchronized void connect(java.io.PipedReader) throws java.io.IOException;
+ method public synchronized void flush() throws java.io.IOException;
method public void write(char[], int, int) throws java.io.IOException;
}
@@ -49855,111 +49906,111 @@
ctor public PrintStream(java.io.OutputStream);
ctor public PrintStream(java.io.OutputStream, boolean);
ctor public PrintStream(java.io.OutputStream, boolean, java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
- ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
ctor public PrintStream(java.lang.String) throws java.io.FileNotFoundException;
ctor public PrintStream(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
- method public java.io.PrintStream append(char);
+ ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
+ ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
method public java.io.PrintStream append(java.lang.CharSequence);
method public java.io.PrintStream append(java.lang.CharSequence, int, int);
+ method public java.io.PrintStream append(char);
method public boolean checkError();
method protected void clearError();
method public java.io.PrintStream format(java.lang.String, java.lang.Object...);
method public java.io.PrintStream format(java.util.Locale, java.lang.String, java.lang.Object...);
- method public void print(char[]);
+ method public void print(boolean);
method public void print(char);
- method public void print(double);
- method public void print(float);
method public void print(int);
method public void print(long);
+ method public void print(float);
+ method public void print(double);
+ method public void print(char[]);
+ method public void print(java.lang.String);
method public void print(java.lang.Object);
- method public synchronized void print(java.lang.String);
- method public void print(boolean);
method public java.io.PrintStream printf(java.lang.String, java.lang.Object...);
method public java.io.PrintStream printf(java.util.Locale, java.lang.String, java.lang.Object...);
method public void println();
- method public void println(char[]);
+ method public void println(boolean);
method public void println(char);
- method public void println(double);
- method public void println(float);
method public void println(int);
method public void println(long);
+ method public void println(float);
+ method public void println(double);
+ method public void println(char[]);
+ method public void println(java.lang.String);
method public void println(java.lang.Object);
- method public synchronized void println(java.lang.String);
- method public void println(boolean);
method protected void setError();
}
public class PrintWriter extends java.io.Writer {
- ctor public PrintWriter(java.io.OutputStream);
- ctor public PrintWriter(java.io.OutputStream, boolean);
ctor public PrintWriter(java.io.Writer);
ctor public PrintWriter(java.io.Writer, boolean);
- ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
- ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+ ctor public PrintWriter(java.io.OutputStream);
+ ctor public PrintWriter(java.io.OutputStream, boolean);
ctor public PrintWriter(java.lang.String) throws java.io.FileNotFoundException;
ctor public PrintWriter(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+ ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
+ ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
method public boolean checkError();
method protected void clearError();
method public void close();
method public void flush();
method public java.io.PrintWriter format(java.lang.String, java.lang.Object...);
method public java.io.PrintWriter format(java.util.Locale, java.lang.String, java.lang.Object...);
- method public void print(char[]);
+ method public void print(boolean);
method public void print(char);
- method public void print(double);
- method public void print(float);
method public void print(int);
method public void print(long);
- method public void print(java.lang.Object);
+ method public void print(float);
+ method public void print(double);
+ method public void print(char[]);
method public void print(java.lang.String);
- method public void print(boolean);
+ method public void print(java.lang.Object);
method public java.io.PrintWriter printf(java.lang.String, java.lang.Object...);
method public java.io.PrintWriter printf(java.util.Locale, java.lang.String, java.lang.Object...);
method public void println();
- method public void println(char[]);
+ method public void println(boolean);
method public void println(char);
- method public void println(double);
- method public void println(float);
method public void println(int);
method public void println(long);
- method public void println(java.lang.Object);
+ method public void println(float);
+ method public void println(double);
+ method public void println(char[]);
method public void println(java.lang.String);
- method public void println(boolean);
+ method public void println(java.lang.Object);
method protected void setError();
method public void write(char[], int, int);
field protected java.io.Writer out;
}
public class PushbackInputStream extends java.io.FilterInputStream {
- ctor public PushbackInputStream(java.io.InputStream);
ctor public PushbackInputStream(java.io.InputStream, int);
- method public void unread(byte[]) throws java.io.IOException;
- method public void unread(byte[], int, int) throws java.io.IOException;
+ ctor public PushbackInputStream(java.io.InputStream);
method public void unread(int) throws java.io.IOException;
+ method public void unread(byte[], int, int) throws java.io.IOException;
+ method public void unread(byte[]) throws java.io.IOException;
field protected byte[] buf;
field protected int pos;
}
public class PushbackReader extends java.io.FilterReader {
- ctor public PushbackReader(java.io.Reader);
ctor public PushbackReader(java.io.Reader, int);
- method public void unread(char[]) throws java.io.IOException;
- method public void unread(char[], int, int) throws java.io.IOException;
+ ctor public PushbackReader(java.io.Reader);
method public void unread(int) throws java.io.IOException;
+ method public void unread(char[], int, int) throws java.io.IOException;
+ method public void unread(char[]) throws java.io.IOException;
}
public class RandomAccessFile implements java.io.Closeable java.io.DataInput java.io.DataOutput {
- ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
ctor public RandomAccessFile(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
+ ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
method public void close() throws java.io.IOException;
- method public final synchronized java.nio.channels.FileChannel getChannel();
+ method public final java.nio.channels.FileChannel getChannel();
method public final java.io.FileDescriptor getFD() throws java.io.IOException;
method public long getFilePointer() throws java.io.IOException;
method public long length() throws java.io.IOException;
method public int read() throws java.io.IOException;
- method public int read(byte[]) throws java.io.IOException;
method public int read(byte[], int, int) throws java.io.IOException;
+ method public int read(byte[]) throws java.io.IOException;
method public final boolean readBoolean() throws java.io.IOException;
method public final byte readByte() throws java.io.IOException;
method public final char readChar() throws java.io.IOException;
@@ -49977,9 +50028,9 @@
method public void seek(long) throws java.io.IOException;
method public void setLength(long) throws java.io.IOException;
method public int skipBytes(int) throws java.io.IOException;
+ method public void write(int) throws java.io.IOException;
method public void write(byte[]) throws java.io.IOException;
method public void write(byte[], int, int) throws java.io.IOException;
- method public void write(int) throws java.io.IOException;
method public final void writeBoolean(boolean) throws java.io.IOException;
method public final void writeByte(int) throws java.io.IOException;
method public final void writeBytes(java.lang.String) throws java.io.IOException;
@@ -49999,10 +50050,10 @@
method public abstract void close() throws java.io.IOException;
method public void mark(int) throws java.io.IOException;
method public boolean markSupported();
+ method public int read(java.nio.CharBuffer) throws java.io.IOException;
method public int read() throws java.io.IOException;
method public int read(char[]) throws java.io.IOException;
method public abstract int read(char[], int, int) throws java.io.IOException;
- method public int read(java.nio.CharBuffer) throws java.io.IOException;
method public boolean ready() throws java.io.IOException;
method public void reset() throws java.io.IOException;
method public long skip(long) throws java.io.IOException;
@@ -50010,8 +50061,8 @@
}
public class SequenceInputStream extends java.io.InputStream {
- ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
ctor public SequenceInputStream(java.util.Enumeration<? extends java.io.InputStream>);
+ ctor public SequenceInputStream(java.io.InputStream, java.io.InputStream);
method public int read() throws java.io.IOException;
}
@@ -50024,8 +50075,8 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
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 @@
}
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 @@
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
public final class String implements java.lang.CharSequence java.lang.Comparable java.io.Serializable {
ctor public String();
- ctor public String(byte[]);
- ctor public deprecated String(byte[], int);
- ctor public String(byte[], int, int);
- ctor public deprecated String(byte[], int, int, int);
- ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
- ctor public String(byte[], int, int, java.nio.charset.Charset);
- ctor public String(byte[], java.nio.charset.Charset);
+ ctor public String(java.lang.String);
ctor public String(char[]);
ctor public String(char[], int, int);
- ctor public String(java.lang.String);
- ctor public String(java.lang.StringBuffer);
ctor public String(int[], int, int);
+ ctor public deprecated String(byte[], int, int, int);
+ ctor public deprecated String(byte[], int);
+ ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
+ ctor public String(byte[], int, int, java.nio.charset.Charset);
+ ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
+ ctor public String(byte[], java.nio.charset.Charset);
+ ctor public String(byte[], int, int);
+ ctor public String(byte[]);
+ ctor public String(java.lang.StringBuffer);
ctor public String(java.lang.StringBuilder);
method public char charAt(int);
method public int codePointAt(int);
@@ -51410,16 +51630,16 @@
method public boolean contains(java.lang.CharSequence);
method public boolean contentEquals(java.lang.StringBuffer);
method public boolean contentEquals(java.lang.CharSequence);
- method public static java.lang.String copyValueOf(char[]);
method public static java.lang.String copyValueOf(char[], int, int);
+ method public static java.lang.String copyValueOf(char[]);
method public boolean endsWith(java.lang.String);
method public boolean equalsIgnoreCase(java.lang.String);
method public static java.lang.String format(java.lang.String, java.lang.Object...);
method public static java.lang.String format(java.util.Locale, java.lang.String, java.lang.Object...);
method public deprecated void getBytes(int, int, byte[], int);
- method public byte[] getBytes();
method public byte[] getBytes(java.lang.String) throws java.io.UnsupportedEncodingException;
method public byte[] getBytes(java.nio.charset.Charset);
+ method public byte[] getBytes();
method public void getChars(int, int, char[], int);
method public int indexOf(int);
method public int indexOf(int, int);
@@ -51440,109 +51660,51 @@
method public java.lang.String replace(java.lang.CharSequence, java.lang.CharSequence);
method public java.lang.String replaceAll(java.lang.String, java.lang.String);
method public java.lang.String replaceFirst(java.lang.String, java.lang.String);
- method public java.lang.String[] split(java.lang.String);
method public java.lang.String[] split(java.lang.String, int);
- method public boolean startsWith(java.lang.String);
+ method public java.lang.String[] split(java.lang.String);
method public boolean startsWith(java.lang.String, int);
+ method public boolean startsWith(java.lang.String);
method public java.lang.CharSequence subSequence(int, int);
method public java.lang.String substring(int);
method public java.lang.String substring(int, int);
method public char[] toCharArray();
- method public java.lang.String toLowerCase();
method public java.lang.String toLowerCase(java.util.Locale);
- method public java.lang.String toUpperCase();
+ method public java.lang.String toLowerCase();
method public java.lang.String toUpperCase(java.util.Locale);
+ method public java.lang.String toUpperCase();
method public java.lang.String trim();
+ method public static java.lang.String valueOf(java.lang.Object);
method public static java.lang.String valueOf(char[]);
method public static java.lang.String valueOf(char[], int, int);
+ method public static java.lang.String valueOf(boolean);
method public static java.lang.String valueOf(char);
- method public static java.lang.String valueOf(double);
- method public static java.lang.String valueOf(float);
method public static java.lang.String valueOf(int);
method public static java.lang.String valueOf(long);
- method public static java.lang.String valueOf(java.lang.Object);
- method public static java.lang.String valueOf(boolean);
+ method public static java.lang.String valueOf(float);
+ method public static java.lang.String valueOf(double);
field public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
}
- public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+ public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
ctor public StringBuffer();
ctor public StringBuffer(int);
ctor public StringBuffer(java.lang.String);
ctor public StringBuffer(java.lang.CharSequence);
- method public java.lang.StringBuffer append(boolean);
- method public synchronized java.lang.StringBuffer append(char);
- method public java.lang.StringBuffer append(double);
- method public java.lang.StringBuffer append(float);
- method public java.lang.StringBuffer append(int);
- method public java.lang.StringBuffer append(long);
- method public synchronized java.lang.StringBuffer append(java.lang.Object);
- method public synchronized java.lang.StringBuffer append(java.lang.String);
- method public synchronized java.lang.StringBuffer append(java.lang.StringBuffer);
- method public synchronized java.lang.StringBuffer append(char[]);
- method public synchronized java.lang.StringBuffer append(char[], int, int);
- method public synchronized java.lang.StringBuffer append(java.lang.CharSequence);
- method public synchronized java.lang.StringBuffer append(java.lang.CharSequence, int, int);
- method public java.lang.StringBuffer appendCodePoint(int);
- method public synchronized java.lang.StringBuffer delete(int, int);
- method public synchronized java.lang.StringBuffer deleteCharAt(int);
- method public synchronized java.lang.StringBuffer insert(int, char);
- method public java.lang.StringBuffer insert(int, boolean);
- method public java.lang.StringBuffer insert(int, int);
- method public java.lang.StringBuffer insert(int, long);
- method public java.lang.StringBuffer insert(int, double);
- method public java.lang.StringBuffer insert(int, float);
- method public java.lang.StringBuffer insert(int, java.lang.Object);
- method public synchronized java.lang.StringBuffer insert(int, java.lang.String);
- method public synchronized java.lang.StringBuffer insert(int, char[]);
- method public synchronized java.lang.StringBuffer insert(int, char[], int, int);
- method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence);
- method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence, int, int);
- method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
- method public synchronized java.lang.StringBuffer reverse();
+ method public synchronized java.lang.String toString();
}
- public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
+ public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.CharSequence java.io.Serializable {
ctor public StringBuilder();
ctor public StringBuilder(int);
- ctor public StringBuilder(java.lang.CharSequence);
ctor public StringBuilder(java.lang.String);
- method public java.lang.StringBuilder append(boolean);
- method public java.lang.StringBuilder append(char);
- method public java.lang.StringBuilder append(int);
- method public java.lang.StringBuilder append(long);
- method public java.lang.StringBuilder append(float);
- method public java.lang.StringBuilder append(double);
- method public java.lang.StringBuilder append(java.lang.Object);
- method public java.lang.StringBuilder append(java.lang.String);
- method public java.lang.StringBuilder append(java.lang.StringBuffer);
- method public java.lang.StringBuilder append(char[]);
- method public java.lang.StringBuilder append(char[], int, int);
- method public java.lang.StringBuilder append(java.lang.CharSequence);
- method public java.lang.StringBuilder append(java.lang.CharSequence, int, int);
- method public java.lang.StringBuilder appendCodePoint(int);
- method public java.lang.StringBuilder delete(int, int);
- method public java.lang.StringBuilder deleteCharAt(int);
- method public java.lang.StringBuilder insert(int, boolean);
- method public java.lang.StringBuilder insert(int, char);
- method public java.lang.StringBuilder insert(int, int);
- method public java.lang.StringBuilder insert(int, long);
- method public java.lang.StringBuilder insert(int, float);
- method public java.lang.StringBuilder insert(int, double);
- method public java.lang.StringBuilder insert(int, java.lang.Object);
- method public java.lang.StringBuilder insert(int, java.lang.String);
- method public java.lang.StringBuilder insert(int, char[]);
- method public java.lang.StringBuilder insert(int, char[], int, int);
- method public java.lang.StringBuilder insert(int, java.lang.CharSequence);
- method public java.lang.StringBuilder insert(int, java.lang.CharSequence, int, int);
- method public java.lang.StringBuilder replace(int, int, java.lang.String);
- method public java.lang.StringBuilder reverse();
+ ctor public StringBuilder(java.lang.CharSequence);
+ method public java.lang.String toString();
}
public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
ctor public StringIndexOutOfBoundsException();
- ctor public StringIndexOutOfBoundsException(int);
ctor public StringIndexOutOfBoundsException(java.lang.String);
+ ctor public StringIndexOutOfBoundsException(int);
}
public abstract class SuppressWarnings implements java.lang.annotation.Annotation {
@@ -51584,11 +51746,11 @@
public class Thread implements java.lang.Runnable {
ctor public Thread();
ctor public Thread(java.lang.Runnable);
- ctor public Thread(java.lang.Runnable, java.lang.String);
- ctor public Thread(java.lang.String);
ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable);
- ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
+ ctor public Thread(java.lang.String);
ctor public Thread(java.lang.ThreadGroup, java.lang.String);
+ ctor public Thread(java.lang.Runnable, java.lang.String);
+ ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String, long);
method public static int activeCount();
method public final void checkAccess();
@@ -51613,9 +51775,9 @@
method public final boolean isAlive();
method public final boolean isDaemon();
method public boolean isInterrupted();
- method public final void join() throws java.lang.InterruptedException;
method public final void join(long) throws java.lang.InterruptedException;
method public final void join(long, int) throws java.lang.InterruptedException;
+ method public final void join() throws java.lang.InterruptedException;
method public final deprecated void resume();
method public void run();
method public void setContextClassLoader(java.lang.ClassLoader);
@@ -51628,7 +51790,7 @@
method public static void sleep(long, int) throws java.lang.InterruptedException;
method public synchronized void start();
method public final deprecated void stop();
- method public final deprecated synchronized void stop(java.lang.Throwable);
+ method public final deprecated void stop(java.lang.Throwable);
method public final deprecated void suspend();
method public static void yield();
field public static final int MAX_PRIORITY = 10; // 0xa
@@ -51697,14 +51859,14 @@
ctor public Throwable(java.lang.String, java.lang.Throwable);
ctor public Throwable(java.lang.Throwable);
ctor protected Throwable(java.lang.String, java.lang.Throwable, boolean, boolean);
- method public final void addSuppressed(java.lang.Throwable);
- method public java.lang.Throwable fillInStackTrace();
- method public java.lang.Throwable getCause();
+ method public final synchronized void addSuppressed(java.lang.Throwable);
+ method public synchronized java.lang.Throwable fillInStackTrace();
+ method public synchronized java.lang.Throwable getCause();
method public java.lang.String getLocalizedMessage();
method public java.lang.String getMessage();
method public java.lang.StackTraceElement[] getStackTrace();
- method public final java.lang.Throwable[] getSuppressed();
- method public java.lang.Throwable initCause(java.lang.Throwable);
+ method public final synchronized java.lang.Throwable[] getSuppressed();
+ method public synchronized java.lang.Throwable initCause(java.lang.Throwable);
method public void printStackTrace();
method public void printStackTrace(java.io.PrintStream);
method public void printStackTrace(java.io.PrintWriter);
@@ -51831,9 +51993,9 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
}
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
}
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 @@
}
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 @@
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 @@
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 @@
public class Socket implements java.io.Closeable {
ctor public Socket();
ctor public Socket(java.net.Proxy);
- ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
- ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
- ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
- ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
- ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
- ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
ctor protected Socket(java.net.SocketImpl) throws java.net.SocketException;
+ ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
+ ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
+ ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
+ ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
+ ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
+ ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
method public void bind(java.net.SocketAddress) throws java.io.IOException;
method public synchronized void close() throws java.io.IOException;
method public void connect(java.net.SocketAddress) throws java.io.IOException;
@@ -52808,8 +52987,10 @@
}
public class SocketException extends java.io.IOException {
- ctor public SocketException();
ctor public SocketException(java.lang.String);
+ ctor public SocketException();
+ ctor public SocketException(java.lang.Throwable);
+ ctor public SocketException(java.lang.String, java.lang.Throwable);
}
public abstract class SocketImpl implements java.net.SocketOptions {
@@ -52822,7 +53003,7 @@
method protected abstract void connect(java.net.InetAddress, int) throws java.io.IOException;
method protected abstract void connect(java.net.SocketAddress, int) throws java.io.IOException;
method protected abstract void create(boolean) throws java.io.IOException;
- method protected java.io.FileDescriptor getFileDescriptor();
+ method public java.io.FileDescriptor getFileDescriptor();
method protected java.net.InetAddress getInetAddress();
method protected abstract java.io.InputStream getInputStream() throws java.io.IOException;
method protected int getLocalPort();
@@ -52844,6 +53025,11 @@
method public abstract java.net.SocketImpl createSocketImpl();
}
+ public abstract interface SocketOption {
+ method public abstract java.lang.String name();
+ method public abstract java.lang.Class<T> type();
+ }
+
public abstract interface SocketOptions {
method public abstract java.lang.Object getOption(int) throws java.net.SocketException;
method public abstract void setOption(int, java.lang.Object) throws java.net.SocketException;
@@ -52865,21 +53051,46 @@
public final class SocketPermission extends java.security.Permission implements java.io.Serializable {
ctor public SocketPermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
public class SocketTimeoutException extends java.io.InterruptedIOException {
- ctor public SocketTimeoutException();
ctor public SocketTimeoutException(java.lang.String);
+ ctor public SocketTimeoutException();
+ ctor public SocketTimeoutException(java.lang.Throwable);
+ ctor public SocketTimeoutException(java.lang.String, java.lang.Throwable);
+ }
+
+ public final class StandardProtocolFamily extends java.lang.Enum implements java.net.ProtocolFamily {
+ method public static java.net.StandardProtocolFamily valueOf(java.lang.String);
+ method public static final java.net.StandardProtocolFamily[] values();
+ enum_constant public static final java.net.StandardProtocolFamily INET;
+ enum_constant public static final java.net.StandardProtocolFamily INET6;
+ }
+
+ public final class StandardSocketOptions {
+ field public static final java.net.SocketOption<java.net.NetworkInterface> IP_MULTICAST_IF;
+ field public static final java.net.SocketOption<java.lang.Boolean> IP_MULTICAST_LOOP;
+ field public static final java.net.SocketOption<java.lang.Integer> IP_MULTICAST_TTL;
+ field public static final java.net.SocketOption<java.lang.Integer> IP_TOS;
+ field public static final java.net.SocketOption<java.lang.Boolean> SO_BROADCAST;
+ field public static final java.net.SocketOption<java.lang.Boolean> SO_KEEPALIVE;
+ field public static final java.net.SocketOption<java.lang.Integer> SO_LINGER;
+ field public static final java.net.SocketOption<java.lang.Integer> SO_RCVBUF;
+ field public static final java.net.SocketOption<java.lang.Boolean> SO_REUSEADDR;
+ field public static final java.net.SocketOption<java.lang.Integer> SO_SNDBUF;
+ field public static final java.net.SocketOption<java.lang.Boolean> TCP_NODELAY;
}
public final class URI implements java.lang.Comparable java.io.Serializable {
ctor public URI(java.lang.String) throws java.net.URISyntaxException;
- ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
ctor public URI(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
- ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+ ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+ ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
method public int compareTo(java.net.URI);
method public static java.net.URI create(java.lang.String);
method public java.lang.String getAuthority();
@@ -52917,12 +53128,12 @@
}
public final class URL implements java.io.Serializable {
+ ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
+ ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
+ ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
ctor public URL(java.lang.String) throws java.net.MalformedURLException;
ctor public URL(java.net.URL, java.lang.String) throws java.net.MalformedURLException;
ctor public URL(java.net.URL, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
- ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
- ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
- ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
method public java.lang.String getAuthority();
method public final java.lang.Object getContent() throws java.io.IOException;
method public final java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
@@ -52941,22 +53152,24 @@
method public boolean sameFile(java.net.URL);
method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
method protected void set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
- method public static synchronized void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
+ method public static void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
method public java.lang.String toExternalForm();
method public java.net.URI toURI() throws java.net.URISyntaxException;
+ method public java.net.URI toURILenient() throws java.net.URISyntaxException;
}
- public class URLClassLoader extends java.security.SecureClassLoader {
- ctor public URLClassLoader(java.net.URL[]);
+ public class URLClassLoader extends java.security.SecureClassLoader implements java.io.Closeable {
ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader);
+ ctor public URLClassLoader(java.net.URL[]);
ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader, java.net.URLStreamHandlerFactory);
method protected void addURL(java.net.URL);
+ method public void close() throws java.io.IOException;
method protected java.lang.Package definePackage(java.lang.String, java.util.jar.Manifest, java.net.URL) throws java.lang.IllegalArgumentException;
method public java.net.URL findResource(java.lang.String);
method public java.util.Enumeration<java.net.URL> findResources(java.lang.String) throws java.io.IOException;
method public java.net.URL[] getURLs();
- method public static java.net.URLClassLoader newInstance(java.net.URL[]);
method public static java.net.URLClassLoader newInstance(java.net.URL[], java.lang.ClassLoader);
+ method public static java.net.URLClassLoader newInstance(java.net.URL[]);
}
public abstract class URLConnection {
@@ -52969,6 +53182,7 @@
method public java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
method public java.lang.String getContentEncoding();
method public int getContentLength();
+ method public long getContentLengthLong();
method public java.lang.String getContentType();
method public long getDate();
method public static boolean getDefaultAllowUserInteraction();
@@ -52977,12 +53191,13 @@
method public boolean getDoInput();
method public boolean getDoOutput();
method public long getExpiration();
- method public static java.net.FileNameMap getFileNameMap();
- method public java.lang.String getHeaderField(int);
+ method public static synchronized java.net.FileNameMap getFileNameMap();
method public java.lang.String getHeaderField(java.lang.String);
+ method public java.lang.String getHeaderField(int);
method public long getHeaderFieldDate(java.lang.String, long);
method public int getHeaderFieldInt(java.lang.String, int);
method public java.lang.String getHeaderFieldKey(int);
+ method public long getHeaderFieldLong(java.lang.String, long);
method public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getHeaderFields();
method public long getIfModifiedSince();
method public java.io.InputStream getInputStream() throws java.io.IOException;
@@ -53033,15 +53248,15 @@
ctor public URLStreamHandler();
method protected boolean equals(java.net.URL, java.net.URL);
method protected int getDefaultPort();
- method protected java.net.InetAddress getHostAddress(java.net.URL);
+ method protected synchronized java.net.InetAddress getHostAddress(java.net.URL);
method protected int hashCode(java.net.URL);
method protected boolean hostsEqual(java.net.URL, java.net.URL);
method protected abstract java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
method protected java.net.URLConnection openConnection(java.net.URL, java.net.Proxy) throws java.io.IOException;
method protected void parseURL(java.net.URL, java.lang.String, int, int);
method protected boolean sameFile(java.net.URL, java.net.URL);
- method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
method protected void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+ method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
method protected java.lang.String toExternalForm(java.net.URL);
}
@@ -53050,8 +53265,8 @@
}
public class UnknownHostException extends java.io.IOException {
- ctor public UnknownHostException();
ctor public UnknownHostException(java.lang.String);
+ ctor public UnknownHostException();
}
public class UnknownServiceException extends java.io.IOException {
@@ -53107,9 +53322,9 @@
method public int compareTo(java.nio.ByteBuffer);
method public abstract java.nio.ByteBuffer duplicate();
method public abstract byte get();
- method public java.nio.ByteBuffer get(byte[]);
- method public java.nio.ByteBuffer get(byte[], int, int);
method public abstract byte get(int);
+ method public java.nio.ByteBuffer get(byte[], int, int);
+ method public java.nio.ByteBuffer get(byte[]);
method public abstract char getChar();
method public abstract char getChar(int);
method public abstract double getDouble();
@@ -53127,10 +53342,10 @@
method public final java.nio.ByteOrder order();
method public final java.nio.ByteBuffer order(java.nio.ByteOrder);
method public abstract java.nio.ByteBuffer put(byte);
- method public final java.nio.ByteBuffer put(byte[]);
- method public java.nio.ByteBuffer put(byte[], int, int);
- method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
method public abstract java.nio.ByteBuffer put(int, byte);
+ method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
+ method public java.nio.ByteBuffer put(byte[], int, int);
+ method public final java.nio.ByteBuffer put(byte[]);
method public abstract java.nio.ByteBuffer putChar(char);
method public abstract java.nio.ByteBuffer putChar(int, char);
method public abstract java.nio.ByteBuffer putDouble(double);
@@ -53144,8 +53359,8 @@
method public abstract java.nio.ByteBuffer putShort(short);
method public abstract java.nio.ByteBuffer putShort(int, short);
method public abstract java.nio.ByteBuffer slice();
- method public static java.nio.ByteBuffer wrap(byte[]);
method public static java.nio.ByteBuffer wrap(byte[], int, int);
+ method public static java.nio.ByteBuffer wrap(byte[]);
}
public final class ByteOrder {
@@ -53156,9 +53371,9 @@
public abstract class CharBuffer extends java.nio.Buffer implements java.lang.Appendable java.lang.CharSequence java.lang.Comparable java.lang.Readable {
method public static java.nio.CharBuffer allocate(int);
- method public java.nio.CharBuffer append(char);
method public java.nio.CharBuffer append(java.lang.CharSequence);
method public java.nio.CharBuffer append(java.lang.CharSequence, int, int);
+ method public java.nio.CharBuffer append(char);
method public final char[] array();
method public final int arrayOffset();
method public abstract java.nio.CharBuffer asReadOnlyBuffer();
@@ -53167,27 +53382,27 @@
method public int compareTo(java.nio.CharBuffer);
method public abstract java.nio.CharBuffer duplicate();
method public abstract char get();
- method public java.nio.CharBuffer get(char[]);
- method public java.nio.CharBuffer get(char[], int, int);
method public abstract char get(int);
+ method public java.nio.CharBuffer get(char[], int, int);
+ method public java.nio.CharBuffer get(char[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public final int length();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.CharBuffer put(char);
- method public final java.nio.CharBuffer put(char[]);
- method public java.nio.CharBuffer put(char[], int, int);
- method public java.nio.CharBuffer put(java.nio.CharBuffer);
method public abstract java.nio.CharBuffer put(int, char);
- method public final java.nio.CharBuffer put(java.lang.String);
+ method public java.nio.CharBuffer put(java.nio.CharBuffer);
+ method public java.nio.CharBuffer put(char[], int, int);
+ method public final java.nio.CharBuffer put(char[]);
method public java.nio.CharBuffer put(java.lang.String, int, int);
+ method public final java.nio.CharBuffer put(java.lang.String);
method public int read(java.nio.CharBuffer) throws java.io.IOException;
method public abstract java.nio.CharBuffer slice();
method public abstract java.nio.CharBuffer subSequence(int, int);
- method public static java.nio.CharBuffer wrap(char[]);
method public static java.nio.CharBuffer wrap(char[], int, int);
- method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
+ method public static java.nio.CharBuffer wrap(char[]);
method public static java.nio.CharBuffer wrap(java.lang.CharSequence, int, int);
+ method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
}
public abstract class DoubleBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -53199,20 +53414,20 @@
method public int compareTo(java.nio.DoubleBuffer);
method public abstract java.nio.DoubleBuffer duplicate();
method public abstract double get();
- method public java.nio.DoubleBuffer get(double[]);
- method public java.nio.DoubleBuffer get(double[], int, int);
method public abstract double get(int);
+ method public java.nio.DoubleBuffer get(double[], int, int);
+ method public java.nio.DoubleBuffer get(double[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.DoubleBuffer put(double);
- method public final java.nio.DoubleBuffer put(double[]);
- method public java.nio.DoubleBuffer put(double[], int, int);
- method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
method public abstract java.nio.DoubleBuffer put(int, double);
+ method public java.nio.DoubleBuffer put(java.nio.DoubleBuffer);
+ method public java.nio.DoubleBuffer put(double[], int, int);
+ method public final java.nio.DoubleBuffer put(double[]);
method public abstract java.nio.DoubleBuffer slice();
- method public static java.nio.DoubleBuffer wrap(double[]);
method public static java.nio.DoubleBuffer wrap(double[], int, int);
+ method public static java.nio.DoubleBuffer wrap(double[]);
}
public abstract class FloatBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -53224,20 +53439,20 @@
method public int compareTo(java.nio.FloatBuffer);
method public abstract java.nio.FloatBuffer duplicate();
method public abstract float get();
- method public java.nio.FloatBuffer get(float[]);
- method public java.nio.FloatBuffer get(float[], int, int);
method public abstract float get(int);
+ method public java.nio.FloatBuffer get(float[], int, int);
+ method public java.nio.FloatBuffer get(float[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.FloatBuffer put(float);
- method public final java.nio.FloatBuffer put(float[]);
- method public java.nio.FloatBuffer put(float[], int, int);
- method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
method public abstract java.nio.FloatBuffer put(int, float);
+ method public java.nio.FloatBuffer put(java.nio.FloatBuffer);
+ method public java.nio.FloatBuffer put(float[], int, int);
+ method public final java.nio.FloatBuffer put(float[]);
method public abstract java.nio.FloatBuffer slice();
- method public static java.nio.FloatBuffer wrap(float[]);
method public static java.nio.FloatBuffer wrap(float[], int, int);
+ method public static java.nio.FloatBuffer wrap(float[]);
}
public abstract class IntBuffer extends java.nio.Buffer implements java.lang.Comparable {
@@ -53249,20 +53464,20 @@
method public int compareTo(java.nio.IntBuffer);
method public abstract java.nio.IntBuffer duplicate();
method public abstract int get();
- method public java.nio.IntBuffer get(int[]);
- method public java.nio.IntBuffer get(int[], int, int);
method public abstract int get(int);
+ method public java.nio.IntBuffer get(int[], int, int);
+ method public java.nio.IntBuffer get(int[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.IntBuffer put(int);
- method public final java.nio.IntBuffer put(int[]);
- method public java.nio.IntBuffer put(int[], int, int);
- method public java.nio.IntBuffer put(java.nio.IntBuffer);
method public abstract java.nio.IntBuffer put(int, int);
+ method public java.nio.IntBuffer put(java.nio.IntBuffer);
+ method public java.nio.IntBuffer put(int[], int, int);
+ method public final java.nio.IntBuffer put(int[]);
method public abstract java.nio.IntBuffer slice();
- method public static java.nio.IntBuffer wrap(int[]);
method public static java.nio.IntBuffer wrap(int[], int, int);
+ method public static java.nio.IntBuffer wrap(int[]);
}
public class InvalidMarkException extends java.lang.IllegalStateException {
@@ -53278,20 +53493,20 @@
method public int compareTo(java.nio.LongBuffer);
method public abstract java.nio.LongBuffer duplicate();
method public abstract long get();
- method public java.nio.LongBuffer get(long[]);
- method public java.nio.LongBuffer get(long[], int, int);
method public abstract long get(int);
+ method public java.nio.LongBuffer get(long[], int, int);
+ method public java.nio.LongBuffer get(long[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.LongBuffer put(long);
- method public final java.nio.LongBuffer put(long[]);
- method public java.nio.LongBuffer put(long[], int, int);
- method public java.nio.LongBuffer put(java.nio.LongBuffer);
method public abstract java.nio.LongBuffer put(int, long);
+ method public java.nio.LongBuffer put(java.nio.LongBuffer);
+ method public java.nio.LongBuffer put(long[], int, int);
+ method public final java.nio.LongBuffer put(long[]);
method public abstract java.nio.LongBuffer slice();
- method public static java.nio.LongBuffer wrap(long[]);
method public static java.nio.LongBuffer wrap(long[], int, int);
+ method public static java.nio.LongBuffer wrap(long[]);
}
public abstract class MappedByteBuffer extends java.nio.ByteBuffer {
@@ -53313,34 +53528,119 @@
method public int compareTo(java.nio.ShortBuffer);
method public abstract java.nio.ShortBuffer duplicate();
method public abstract short get();
- method public java.nio.ShortBuffer get(short[]);
- method public java.nio.ShortBuffer get(short[], int, int);
method public abstract short get(int);
+ method public java.nio.ShortBuffer get(short[], int, int);
+ method public java.nio.ShortBuffer get(short[]);
method public final boolean hasArray();
method public abstract boolean isDirect();
method public abstract java.nio.ByteOrder order();
method public abstract java.nio.ShortBuffer put(short);
- method public final java.nio.ShortBuffer put(short[]);
- method public java.nio.ShortBuffer put(short[], int, int);
- method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
method public abstract java.nio.ShortBuffer put(int, short);
+ method public java.nio.ShortBuffer put(java.nio.ShortBuffer);
+ method public java.nio.ShortBuffer put(short[], int, int);
+ method public final java.nio.ShortBuffer put(short[]);
method public abstract java.nio.ShortBuffer slice();
- method public static java.nio.ShortBuffer wrap(short[]);
method public static java.nio.ShortBuffer wrap(short[], int, int);
+ method public static java.nio.ShortBuffer wrap(short[]);
}
}
package java.nio.channels {
+ public class AcceptPendingException extends java.lang.IllegalStateException {
+ ctor public AcceptPendingException();
+ }
+
+ public class AlreadyBoundException extends java.lang.IllegalStateException {
+ ctor public AlreadyBoundException();
+ }
+
public class AlreadyConnectedException extends java.lang.IllegalStateException {
ctor public AlreadyConnectedException();
}
+ public abstract interface AsynchronousByteChannel implements java.nio.channels.AsynchronousChannel {
+ method public abstract void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+ method public abstract void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+ }
+
+ public abstract interface AsynchronousChannel implements java.nio.channels.Channel {
+ method public abstract void close() throws java.io.IOException;
+ }
+
+ public abstract class AsynchronousChannelGroup {
+ ctor protected AsynchronousChannelGroup(java.nio.channels.spi.AsynchronousChannelProvider);
+ method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+ method public abstract boolean isShutdown();
+ method public abstract boolean isTerminated();
+ method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+ method public abstract void shutdown();
+ method public abstract void shutdownNow() throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousChannelGroup withCachedThreadPool(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousChannelGroup withFixedThreadPool(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousChannelGroup withThreadPool(java.util.concurrent.ExecutorService) throws java.io.IOException;
+ }
+
public class AsynchronousCloseException extends java.nio.channels.ClosedChannelException {
ctor public AsynchronousCloseException();
}
+ public abstract class AsynchronousFileChannel implements java.nio.channels.AsynchronousChannel {
+ ctor protected AsynchronousFileChannel();
+ method public abstract void force(boolean) throws java.io.IOException;
+ method public abstract void lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+ method public final void lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+ method public abstract java.util.concurrent.Future<java.nio.channels.FileLock> lock(long, long, boolean);
+ method public final java.util.concurrent.Future<java.nio.channels.FileLock> lock();
+ method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public abstract void read(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer, long);
+ method public abstract long size() throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousFileChannel truncate(long) throws java.io.IOException;
+ method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+ method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
+ method public abstract void write(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer, long);
+ }
+
+ public abstract class AsynchronousServerSocketChannel implements java.nio.channels.AsynchronousChannel java.nio.channels.NetworkChannel {
+ ctor protected AsynchronousServerSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+ method public abstract void accept(A, java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel, ? super A>);
+ method public abstract java.util.concurrent.Future<java.nio.channels.AsynchronousSocketChannel> accept();
+ method public final java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousServerSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousServerSocketChannel open() throws java.io.IOException;
+ method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+ method public abstract java.nio.channels.AsynchronousServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ }
+
+ public abstract class AsynchronousSocketChannel implements java.nio.channels.AsynchronousByteChannel java.nio.channels.NetworkChannel {
+ ctor protected AsynchronousSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
+ method public abstract java.nio.channels.AsynchronousSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract void connect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Void> connect(java.net.SocketAddress);
+ method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public static java.nio.channels.AsynchronousSocketChannel open() throws java.io.IOException;
+ method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
+ method public abstract void read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public final void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+ method public abstract void read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+ method public abstract java.nio.channels.AsynchronousSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousSocketChannel shutdownInput() throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousSocketChannel shutdownOutput() throws java.io.IOException;
+ method public abstract void write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public final void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+ method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+ method public abstract void write(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+ }
+
public abstract interface ByteChannel implements java.nio.channels.ReadableByteChannel java.nio.channels.WritableByteChannel {
}
@@ -53357,7 +53657,9 @@
method public static java.nio.channels.ReadableByteChannel newChannel(java.io.InputStream);
method public static java.nio.channels.WritableByteChannel newChannel(java.io.OutputStream);
method public static java.io.InputStream newInputStream(java.nio.channels.ReadableByteChannel);
+ method public static java.io.InputStream newInputStream(java.nio.channels.AsynchronousByteChannel);
method public static java.io.OutputStream newOutputStream(java.nio.channels.WritableByteChannel);
+ method public static java.io.OutputStream newOutputStream(java.nio.channels.AsynchronousByteChannel);
method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int);
method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.lang.String);
method public static java.io.Writer newWriter(java.nio.channels.WritableByteChannel, java.nio.charset.CharsetEncoder, int);
@@ -53376,50 +53678,61 @@
ctor public ClosedSelectorException();
}
+ public abstract interface CompletionHandler {
+ method public abstract void completed(V, A);
+ method public abstract void failed(java.lang.Throwable, A);
+ }
+
public class ConnectionPendingException extends java.lang.IllegalStateException {
ctor public ConnectionPendingException();
}
- public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+ public abstract class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.MulticastChannel java.nio.channels.ScatteringByteChannel {
ctor protected DatagramChannel(java.nio.channels.spi.SelectorProvider);
+ method public abstract java.nio.channels.DatagramChannel bind(java.net.SocketAddress) throws java.io.IOException;
method public abstract java.nio.channels.DatagramChannel connect(java.net.SocketAddress) throws java.io.IOException;
method public abstract java.nio.channels.DatagramChannel disconnect() throws java.io.IOException;
+ method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
method public abstract boolean isConnected();
method public static java.nio.channels.DatagramChannel open() throws java.io.IOException;
+ method public static java.nio.channels.DatagramChannel open(java.net.ProtocolFamily) throws java.io.IOException;
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract java.net.SocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract int send(java.nio.ByteBuffer, java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
method public abstract java.net.DatagramSocket socket();
method public final int validOps();
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
}
- public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+ public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel java.nio.channels.SeekableByteChannel {
ctor protected FileChannel();
method public abstract void force(boolean) throws java.io.IOException;
- method public final java.nio.channels.FileLock lock() throws java.io.IOException;
method public abstract java.nio.channels.FileLock lock(long, long, boolean) throws java.io.IOException;
+ method public final java.nio.channels.FileLock lock() throws java.io.IOException;
method public abstract java.nio.MappedByteBuffer map(java.nio.channels.FileChannel.MapMode, long, long) throws java.io.IOException;
+ method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.channels.FileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
method public abstract long position() throws java.io.IOException;
method public abstract java.nio.channels.FileChannel position(long) throws java.io.IOException;
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
- method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
- method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public abstract int read(java.nio.ByteBuffer, long) throws java.io.IOException;
method public abstract long size() throws java.io.IOException;
method public abstract long transferFrom(java.nio.channels.ReadableByteChannel, long, long) throws java.io.IOException;
method public abstract long transferTo(long, long, java.nio.channels.WritableByteChannel) throws java.io.IOException;
method public abstract java.nio.channels.FileChannel truncate(long) throws java.io.IOException;
- method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
+ method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
- method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
- method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public abstract int write(java.nio.ByteBuffer, long) throws java.io.IOException;
}
public static class FileChannel.MapMode {
@@ -53430,6 +53743,8 @@
public abstract class FileLock implements java.lang.AutoCloseable {
ctor protected FileLock(java.nio.channels.FileChannel, long, long, boolean);
+ ctor protected FileLock(java.nio.channels.AsynchronousFileChannel, long, long, boolean);
+ method public java.nio.channels.Channel acquiredBy();
method public final java.nio.channels.FileChannel channel();
method public final void close() throws java.io.IOException;
method public final boolean isShared();
@@ -53446,22 +53761,56 @@
}
public abstract interface GatheringByteChannel implements java.nio.channels.WritableByteChannel {
- method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
}
public class IllegalBlockingModeException extends java.lang.IllegalStateException {
ctor public IllegalBlockingModeException();
}
+ public class IllegalChannelGroupException extends java.lang.IllegalArgumentException {
+ ctor public IllegalChannelGroupException();
+ }
+
public class IllegalSelectorException extends java.lang.IllegalArgumentException {
ctor public IllegalSelectorException();
}
+ public class InterruptedByTimeoutException extends java.io.IOException {
+ ctor public InterruptedByTimeoutException();
+ }
+
public abstract interface InterruptibleChannel implements java.nio.channels.Channel {
method public abstract void close() throws java.io.IOException;
}
+ public abstract class MembershipKey {
+ ctor protected MembershipKey();
+ method public abstract java.nio.channels.MembershipKey block(java.net.InetAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.MulticastChannel channel();
+ method public abstract void drop();
+ method public abstract java.net.InetAddress group();
+ method public abstract boolean isValid();
+ method public abstract java.net.NetworkInterface networkInterface();
+ method public abstract java.net.InetAddress sourceAddress();
+ method public abstract java.nio.channels.MembershipKey unblock(java.net.InetAddress);
+ }
+
+ public abstract interface MulticastChannel implements java.nio.channels.NetworkChannel {
+ method public abstract void close() throws java.io.IOException;
+ method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface) throws java.io.IOException;
+ method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress) throws java.io.IOException;
+ }
+
+ public abstract interface NetworkChannel implements java.nio.channels.Channel {
+ method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException;
+ method public abstract T getOption(java.net.SocketOption<T>) throws java.io.IOException;
+ method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ method public abstract java.util.Set<java.net.SocketOption<?>> supportedOptions();
+ }
+
public class NoConnectionPendingException extends java.lang.IllegalStateException {
ctor public NoConnectionPendingException();
}
@@ -53503,13 +53852,26 @@
method public final int validOps();
}
+ public class ReadPendingException extends java.lang.IllegalStateException {
+ ctor public ReadPendingException();
+ }
+
public abstract interface ReadableByteChannel implements java.nio.channels.Channel {
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
}
public abstract interface ScatteringByteChannel implements java.nio.channels.ReadableByteChannel {
- method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+ method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ }
+
+ public abstract interface SeekableByteChannel implements java.nio.channels.ByteChannel {
+ method public abstract long position() throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel position(long) throws java.io.IOException;
+ method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
+ method public abstract long size() throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel truncate(long) throws java.io.IOException;
+ method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
}
public abstract class SelectableChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.Channel {
@@ -53520,8 +53882,8 @@
method public abstract boolean isRegistered();
method public abstract java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
method public abstract java.nio.channels.spi.SelectorProvider provider();
- method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
method public abstract java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
+ method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
method public abstract int validOps();
}
@@ -53553,37 +53915,49 @@
method public abstract java.util.Set<java.nio.channels.SelectionKey> keys();
method public static java.nio.channels.Selector open() throws java.io.IOException;
method public abstract java.nio.channels.spi.SelectorProvider provider();
- method public abstract int select() throws java.io.IOException;
method public abstract int select(long) throws java.io.IOException;
+ method public abstract int select() throws java.io.IOException;
method public abstract int selectNow() throws java.io.IOException;
method public abstract java.util.Set<java.nio.channels.SelectionKey> selectedKeys();
method public abstract java.nio.channels.Selector wakeup();
}
- public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel {
+ public abstract class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.NetworkChannel {
ctor protected ServerSocketChannel(java.nio.channels.spi.SelectorProvider);
method public abstract java.nio.channels.SocketChannel accept() throws java.io.IOException;
+ method public final java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
+ method public abstract java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
method public static java.nio.channels.ServerSocketChannel open() throws java.io.IOException;
+ method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
method public abstract java.net.ServerSocket socket();
method public final int validOps();
}
- public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.ScatteringByteChannel {
+ public class ShutdownChannelGroupException extends java.lang.IllegalStateException {
+ ctor public ShutdownChannelGroupException();
+ }
+
+ public abstract class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ByteChannel java.nio.channels.GatheringByteChannel java.nio.channels.NetworkChannel java.nio.channels.ScatteringByteChannel {
ctor protected SocketChannel(java.nio.channels.spi.SelectorProvider);
+ method public abstract java.nio.channels.SocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
method public abstract boolean connect(java.net.SocketAddress) throws java.io.IOException;
method public abstract boolean finishConnect() throws java.io.IOException;
+ method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
method public abstract boolean isConnected();
method public abstract boolean isConnectionPending();
method public static java.nio.channels.SocketChannel open() throws java.io.IOException;
method public static java.nio.channels.SocketChannel open(java.net.SocketAddress) throws java.io.IOException;
method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+ method public abstract java.nio.channels.SocketChannel shutdownInput() throws java.io.IOException;
+ method public abstract java.nio.channels.SocketChannel shutdownOutput() throws java.io.IOException;
method public abstract java.net.Socket socket();
method public final int validOps();
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
- method public final synchronized long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+ method public final long write(java.nio.ByteBuffer[]) throws java.io.IOException;
}
public class UnresolvedAddressException extends java.lang.IllegalArgumentException {
@@ -53598,6 +53972,10 @@
method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
}
+ public class WritePendingException extends java.lang.IllegalStateException {
+ ctor public WritePendingException();
+ }
+
}
package java.nio.channels.spi {
@@ -53608,19 +53986,19 @@
method public final void close() throws java.io.IOException;
method protected final void end(boolean) throws java.nio.channels.AsynchronousCloseException;
method protected abstract void implCloseChannel() throws java.io.IOException;
- method public final synchronized boolean isOpen();
+ method public final boolean isOpen();
}
public abstract class AbstractSelectableChannel extends java.nio.channels.SelectableChannel {
ctor protected AbstractSelectableChannel(java.nio.channels.spi.SelectorProvider);
method public final java.lang.Object blockingLock();
method public final java.nio.channels.SelectableChannel configureBlocking(boolean) throws java.io.IOException;
- method protected final synchronized void implCloseChannel() throws java.io.IOException;
+ method protected final void implCloseChannel() throws java.io.IOException;
method protected abstract void implCloseSelectableChannel() throws java.io.IOException;
method protected abstract void implConfigureBlocking(boolean) throws java.io.IOException;
method public final boolean isBlocking();
- method public final synchronized boolean isRegistered();
- method public final synchronized java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
+ method public final boolean isRegistered();
+ method public final java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
method public final java.nio.channels.spi.SelectorProvider provider();
method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
}
@@ -53644,15 +54022,25 @@
method protected abstract java.nio.channels.SelectionKey register(java.nio.channels.spi.AbstractSelectableChannel, int, java.lang.Object);
}
+ public abstract class AsynchronousChannelProvider {
+ ctor protected AsynchronousChannelProvider();
+ method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(int, java.util.concurrent.ThreadFactory) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousChannelGroup openAsynchronousChannelGroup(java.util.concurrent.ExecutorService, int) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public abstract java.nio.channels.AsynchronousSocketChannel openAsynchronousSocketChannel(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
+ method public static java.nio.channels.spi.AsynchronousChannelProvider provider();
+ }
+
public abstract class SelectorProvider {
ctor protected SelectorProvider();
method public java.nio.channels.Channel inheritedChannel() throws java.io.IOException;
method public abstract java.nio.channels.DatagramChannel openDatagramChannel() throws java.io.IOException;
+ method public abstract java.nio.channels.DatagramChannel openDatagramChannel(java.net.ProtocolFamily) throws java.io.IOException;
method public abstract java.nio.channels.Pipe openPipe() throws java.io.IOException;
method public abstract java.nio.channels.spi.AbstractSelector openSelector() throws java.io.IOException;
method public abstract java.nio.channels.ServerSocketChannel openServerSocketChannel() throws java.io.IOException;
method public abstract java.nio.channels.SocketChannel openSocketChannel() throws java.io.IOException;
- method public static synchronized java.nio.channels.spi.SelectorProvider provider();
+ method public static java.nio.channels.spi.SelectorProvider provider();
}
}
@@ -53691,8 +54079,8 @@
ctor protected CharsetDecoder(java.nio.charset.Charset, float, float);
method public final float averageCharsPerByte();
method public final java.nio.charset.Charset charset();
- method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
method public final java.nio.charset.CoderResult decode(java.nio.ByteBuffer, java.nio.CharBuffer, boolean);
+ method public final java.nio.CharBuffer decode(java.nio.ByteBuffer) throws java.nio.charset.CharacterCodingException;
method protected abstract java.nio.charset.CoderResult decodeLoop(java.nio.ByteBuffer, java.nio.CharBuffer);
method public java.nio.charset.Charset detectedCharset();
method public final java.nio.charset.CoderResult flush(java.nio.CharBuffer);
@@ -53714,14 +54102,14 @@
}
public abstract class CharsetEncoder {
- ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
ctor protected CharsetEncoder(java.nio.charset.Charset, float, float, byte[]);
+ ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
method public final float averageBytesPerChar();
method public boolean canEncode(char);
method public boolean canEncode(java.lang.CharSequence);
method public final java.nio.charset.Charset charset();
- method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
method public final java.nio.charset.CoderResult encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean);
+ method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
method protected abstract java.nio.charset.CoderResult encodeLoop(java.nio.CharBuffer, java.nio.ByteBuffer);
method public final java.nio.charset.CoderResult flush(java.nio.ByteBuffer);
method protected java.nio.charset.CoderResult implFlush(java.nio.ByteBuffer);
@@ -53750,10 +54138,10 @@
method public boolean isOverflow();
method public boolean isUnderflow();
method public boolean isUnmappable();
- method public int length() throws java.lang.UnsupportedOperationException;
- method public static synchronized java.nio.charset.CoderResult malformedForLength(int) throws java.lang.IllegalArgumentException;
- method public void throwException() throws java.nio.BufferOverflowException, java.nio.BufferUnderflowException, java.nio.charset.CharacterCodingException, java.nio.charset.MalformedInputException, java.nio.charset.UnmappableCharacterException;
- method public static synchronized java.nio.charset.CoderResult unmappableForLength(int) throws java.lang.IllegalArgumentException;
+ method public int length();
+ method public static java.nio.charset.CoderResult malformedForLength(int);
+ method public void throwException() throws java.nio.charset.CharacterCodingException;
+ method public static java.nio.charset.CoderResult unmappableForLength(int);
field public static final java.nio.charset.CoderResult OVERFLOW;
field public static final java.nio.charset.CoderResult UNDERFLOW;
}
@@ -53805,11 +54193,597 @@
}
+package java.nio.file {
+
+ public class AccessDeniedException extends java.nio.file.FileSystemException {
+ ctor public AccessDeniedException(java.lang.String);
+ ctor public AccessDeniedException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public final class AccessMode extends java.lang.Enum {
+ method public static java.nio.file.AccessMode valueOf(java.lang.String);
+ method public static final java.nio.file.AccessMode[] values();
+ enum_constant public static final java.nio.file.AccessMode EXECUTE;
+ enum_constant public static final java.nio.file.AccessMode READ;
+ enum_constant public static final java.nio.file.AccessMode WRITE;
+ }
+
+ public class AtomicMoveNotSupportedException extends java.nio.file.FileSystemException {
+ ctor public AtomicMoveNotSupportedException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public class ClosedDirectoryStreamException extends java.lang.IllegalStateException {
+ ctor public ClosedDirectoryStreamException();
+ }
+
+ public class ClosedFileSystemException extends java.lang.IllegalStateException {
+ ctor public ClosedFileSystemException();
+ }
+
+ public class ClosedWatchServiceException extends java.lang.IllegalStateException {
+ ctor public ClosedWatchServiceException();
+ }
+
+ public abstract interface CopyOption {
+ }
+
+ public final class DirectoryIteratorException extends java.util.ConcurrentModificationException {
+ ctor public DirectoryIteratorException(java.io.IOException);
+ }
+
+ public class DirectoryNotEmptyException extends java.nio.file.FileSystemException {
+ ctor public DirectoryNotEmptyException(java.lang.String);
+ }
+
+ public abstract interface DirectoryStream implements java.io.Closeable java.lang.Iterable {
+ method public abstract java.util.Iterator<T> iterator();
+ }
+
+ public static abstract interface DirectoryStream.Filter {
+ method public abstract boolean accept(T) throws java.io.IOException;
+ }
+
+ public class FileAlreadyExistsException extends java.nio.file.FileSystemException {
+ ctor public FileAlreadyExistsException(java.lang.String);
+ ctor public FileAlreadyExistsException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public abstract class FileStore {
+ ctor protected FileStore();
+ method public abstract java.lang.Object getAttribute(java.lang.String) throws java.io.IOException;
+ method public abstract V getFileStoreAttributeView(java.lang.Class<V>);
+ method public abstract long getTotalSpace() throws java.io.IOException;
+ method public abstract long getUnallocatedSpace() throws java.io.IOException;
+ method public abstract long getUsableSpace() throws java.io.IOException;
+ method public abstract boolean isReadOnly();
+ method public abstract java.lang.String name();
+ method public abstract boolean supportsFileAttributeView(java.lang.Class<? extends java.nio.file.attribute.FileAttributeView>);
+ method public abstract boolean supportsFileAttributeView(java.lang.String);
+ method public abstract java.lang.String type();
+ }
+
+ public abstract class FileSystem implements java.io.Closeable {
+ ctor protected FileSystem();
+ method public abstract void close() throws java.io.IOException;
+ method public abstract java.lang.Iterable<java.nio.file.FileStore> getFileStores();
+ method public abstract java.nio.file.Path getPath(java.lang.String, java.lang.String...);
+ method public abstract java.nio.file.PathMatcher getPathMatcher(java.lang.String);
+ method public abstract java.lang.Iterable<java.nio.file.Path> getRootDirectories();
+ method public abstract java.lang.String getSeparator();
+ method public abstract java.nio.file.attribute.UserPrincipalLookupService getUserPrincipalLookupService();
+ method public abstract boolean isOpen();
+ method public abstract boolean isReadOnly();
+ method public abstract java.nio.file.WatchService newWatchService() throws java.io.IOException;
+ method public abstract java.nio.file.spi.FileSystemProvider provider();
+ method public abstract java.util.Set<java.lang.String> supportedFileAttributeViews();
+ }
+
+ public class FileSystemAlreadyExistsException extends java.lang.RuntimeException {
+ ctor public FileSystemAlreadyExistsException();
+ ctor public FileSystemAlreadyExistsException(java.lang.String);
+ }
+
+ public class FileSystemException extends java.io.IOException {
+ ctor public FileSystemException(java.lang.String);
+ ctor public FileSystemException(java.lang.String, java.lang.String, java.lang.String);
+ method public java.lang.String getFile();
+ method public java.lang.String getOtherFile();
+ method public java.lang.String getReason();
+ }
+
+ public class FileSystemLoopException extends java.nio.file.FileSystemException {
+ ctor public FileSystemLoopException(java.lang.String);
+ }
+
+ public class FileSystemNotFoundException extends java.lang.RuntimeException {
+ ctor public FileSystemNotFoundException();
+ ctor public FileSystemNotFoundException(java.lang.String);
+ }
+
+ public final class FileSystems {
+ method public static java.nio.file.FileSystem getDefault();
+ method public static java.nio.file.FileSystem getFileSystem(java.net.URI);
+ method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+ method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>, java.lang.ClassLoader) throws java.io.IOException;
+ method public static java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.lang.ClassLoader) throws java.io.IOException;
+ }
+
+ public final class FileVisitOption extends java.lang.Enum {
+ method public static java.nio.file.FileVisitOption valueOf(java.lang.String);
+ method public static final java.nio.file.FileVisitOption[] values();
+ enum_constant public static final java.nio.file.FileVisitOption FOLLOW_LINKS;
+ }
+
+ public final class FileVisitResult extends java.lang.Enum {
+ method public static java.nio.file.FileVisitResult valueOf(java.lang.String);
+ method public static final java.nio.file.FileVisitResult[] values();
+ enum_constant public static final java.nio.file.FileVisitResult CONTINUE;
+ enum_constant public static final java.nio.file.FileVisitResult SKIP_SIBLINGS;
+ enum_constant public static final java.nio.file.FileVisitResult SKIP_SUBTREE;
+ enum_constant public static final java.nio.file.FileVisitResult TERMINATE;
+ }
+
+ public abstract interface FileVisitor {
+ method public abstract java.nio.file.FileVisitResult postVisitDirectory(T, java.io.IOException) throws java.io.IOException;
+ method public abstract java.nio.file.FileVisitResult preVisitDirectory(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+ method public abstract java.nio.file.FileVisitResult visitFile(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+ method public abstract java.nio.file.FileVisitResult visitFileFailed(T, java.io.IOException) throws java.io.IOException;
+ }
+
+ public final class Files {
+ method public static java.nio.file.Path copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public static long copy(java.io.InputStream, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public static long copy(java.nio.file.Path, java.io.OutputStream) throws java.io.IOException;
+ method public static java.nio.file.Path createDirectories(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createFile(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.Path createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempDirectory(java.nio.file.Path, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempDirectory(java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempFile(java.nio.file.Path, java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.file.Path createTempFile(java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static void delete(java.nio.file.Path) throws java.io.IOException;
+ method public static boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+ method public static boolean exists(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static java.lang.Object getAttribute(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+ method public static java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.attribute.FileTime getLastModifiedTime(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.nio.file.attribute.UserPrincipal getOwner(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> getPosixFilePermissions(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static boolean isDirectory(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static boolean isExecutable(java.nio.file.Path);
+ method public static boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+ method public static boolean isReadable(java.nio.file.Path);
+ method public static boolean isRegularFile(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public static boolean isSymbolicLink(java.nio.file.Path);
+ method public static boolean isWritable(java.nio.file.Path);
+ method public static java.nio.file.Path move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public static java.io.BufferedReader newBufferedReader(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+ method public static java.io.BufferedWriter newBufferedWriter(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+ method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+ method public static java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static boolean notExists(java.nio.file.Path, java.nio.file.LinkOption...);
+ method public static java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+ method public static byte[] readAllBytes(java.nio.file.Path) throws java.io.IOException;
+ method public static java.util.List<java.lang.String> readAllLines(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
+ method public static A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.Path setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public static java.nio.file.Path setLastModifiedTime(java.nio.file.Path, java.nio.file.attribute.FileTime) throws java.io.IOException;
+ method public static java.nio.file.Path setOwner(java.nio.file.Path, java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+ method public static java.nio.file.Path setPosixFilePermissions(java.nio.file.Path, java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+ method public static long size(java.nio.file.Path) throws java.io.IOException;
+ method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.util.Set<java.nio.file.FileVisitOption>, int, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+ method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
+ method public static java.nio.file.Path write(java.nio.file.Path, byte[], java.nio.file.OpenOption...) throws java.io.IOException;
+ method public static java.nio.file.Path write(java.nio.file.Path, java.lang.Iterable<? extends java.lang.CharSequence>, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+ }
+
+ public class InvalidPathException extends java.lang.IllegalArgumentException {
+ ctor public InvalidPathException(java.lang.String, java.lang.String, int);
+ ctor public InvalidPathException(java.lang.String, java.lang.String);
+ method public int getIndex();
+ method public java.lang.String getInput();
+ method public java.lang.String getReason();
+ }
+
+ public final class LinkOption extends java.lang.Enum implements java.nio.file.CopyOption java.nio.file.OpenOption {
+ method public static java.nio.file.LinkOption valueOf(java.lang.String);
+ method public static final java.nio.file.LinkOption[] values();
+ enum_constant public static final java.nio.file.LinkOption NOFOLLOW_LINKS;
+ }
+
+ public final class LinkPermission extends java.security.BasicPermission {
+ ctor public LinkPermission(java.lang.String);
+ ctor public LinkPermission(java.lang.String, java.lang.String);
+ }
+
+ public class NoSuchFileException extends java.nio.file.FileSystemException {
+ ctor public NoSuchFileException(java.lang.String);
+ ctor public NoSuchFileException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public class NotDirectoryException extends java.nio.file.FileSystemException {
+ ctor public NotDirectoryException(java.lang.String);
+ }
+
+ public class NotLinkException extends java.nio.file.FileSystemException {
+ ctor public NotLinkException(java.lang.String);
+ ctor public NotLinkException(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public abstract interface OpenOption {
+ }
+
+ public abstract interface Path implements java.lang.Comparable java.lang.Iterable java.nio.file.Watchable {
+ method public abstract int compareTo(java.nio.file.Path);
+ method public abstract boolean endsWith(java.nio.file.Path);
+ method public abstract boolean endsWith(java.lang.String);
+ method public abstract boolean equals(java.lang.Object);
+ method public abstract java.nio.file.Path getFileName();
+ method public abstract java.nio.file.FileSystem getFileSystem();
+ method public abstract java.nio.file.Path getName(int);
+ method public abstract int getNameCount();
+ method public abstract java.nio.file.Path getParent();
+ method public abstract java.nio.file.Path getRoot();
+ method public abstract int hashCode();
+ method public abstract boolean isAbsolute();
+ method public abstract java.util.Iterator<java.nio.file.Path> iterator();
+ method public abstract java.nio.file.Path normalize();
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.Path relativize(java.nio.file.Path);
+ method public abstract java.nio.file.Path resolve(java.nio.file.Path);
+ method public abstract java.nio.file.Path resolve(java.lang.String);
+ method public abstract java.nio.file.Path resolveSibling(java.nio.file.Path);
+ method public abstract java.nio.file.Path resolveSibling(java.lang.String);
+ method public abstract boolean startsWith(java.nio.file.Path);
+ method public abstract boolean startsWith(java.lang.String);
+ method public abstract java.nio.file.Path subpath(int, int);
+ method public abstract java.nio.file.Path toAbsolutePath();
+ method public abstract java.io.File toFile();
+ method public abstract java.nio.file.Path toRealPath(java.nio.file.LinkOption...) throws java.io.IOException;
+ method public abstract java.lang.String toString();
+ method public abstract java.net.URI toUri();
+ }
+
+ public abstract interface PathMatcher {
+ method public abstract boolean matches(java.nio.file.Path);
+ }
+
+ public final class Paths {
+ method public static java.nio.file.Path get(java.lang.String, java.lang.String...);
+ method public static java.nio.file.Path get(java.net.URI);
+ }
+
+ public class ProviderMismatchException extends java.lang.IllegalArgumentException {
+ ctor public ProviderMismatchException();
+ ctor public ProviderMismatchException(java.lang.String);
+ }
+
+ public class ProviderNotFoundException extends java.lang.RuntimeException {
+ ctor public ProviderNotFoundException();
+ ctor public ProviderNotFoundException(java.lang.String);
+ }
+
+ public class ReadOnlyFileSystemException extends java.lang.UnsupportedOperationException {
+ ctor public ReadOnlyFileSystemException();
+ }
+
+ public abstract interface SecureDirectoryStream implements java.nio.file.DirectoryStream {
+ method public abstract void deleteDirectory(T) throws java.io.IOException;
+ method public abstract void deleteFile(T) throws java.io.IOException;
+ method public abstract V getFileAttributeView(java.lang.Class<V>);
+ method public abstract V getFileAttributeView(T, java.lang.Class<V>, java.nio.file.LinkOption...);
+ method public abstract void move(T, java.nio.file.SecureDirectoryStream<T>, T) throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel newByteChannel(T, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.SecureDirectoryStream<T> newDirectoryStream(T, java.nio.file.LinkOption...) throws java.io.IOException;
+ }
+
+ public final class StandardCopyOption extends java.lang.Enum implements java.nio.file.CopyOption {
+ method public static java.nio.file.StandardCopyOption valueOf(java.lang.String);
+ method public static final java.nio.file.StandardCopyOption[] values();
+ enum_constant public static final java.nio.file.StandardCopyOption ATOMIC_MOVE;
+ enum_constant public static final java.nio.file.StandardCopyOption COPY_ATTRIBUTES;
+ enum_constant public static final java.nio.file.StandardCopyOption REPLACE_EXISTING;
+ }
+
+ public final class StandardOpenOption extends java.lang.Enum implements java.nio.file.OpenOption {
+ method public static java.nio.file.StandardOpenOption valueOf(java.lang.String);
+ method public static final java.nio.file.StandardOpenOption[] values();
+ enum_constant public static final java.nio.file.StandardOpenOption APPEND;
+ enum_constant public static final java.nio.file.StandardOpenOption CREATE;
+ enum_constant public static final java.nio.file.StandardOpenOption CREATE_NEW;
+ enum_constant public static final java.nio.file.StandardOpenOption DELETE_ON_CLOSE;
+ enum_constant public static final java.nio.file.StandardOpenOption DSYNC;
+ enum_constant public static final java.nio.file.StandardOpenOption READ;
+ enum_constant public static final java.nio.file.StandardOpenOption SPARSE;
+ enum_constant public static final java.nio.file.StandardOpenOption SYNC;
+ enum_constant public static final java.nio.file.StandardOpenOption TRUNCATE_EXISTING;
+ enum_constant public static final java.nio.file.StandardOpenOption WRITE;
+ }
+
+ public final class StandardWatchEventKinds {
+ field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_CREATE;
+ field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_DELETE;
+ field public static final java.nio.file.WatchEvent.Kind<java.nio.file.Path> ENTRY_MODIFY;
+ field public static final java.nio.file.WatchEvent.Kind<java.lang.Object> OVERFLOW;
+ }
+
+ public abstract interface WatchEvent {
+ method public abstract T context();
+ method public abstract int count();
+ method public abstract java.nio.file.WatchEvent.Kind<T> kind();
+ }
+
+ public static abstract interface WatchEvent.Kind {
+ method public abstract java.lang.String name();
+ method public abstract java.lang.Class<T> type();
+ }
+
+ public static abstract interface WatchEvent.Modifier {
+ method public abstract java.lang.String name();
+ }
+
+ public abstract interface WatchKey {
+ method public abstract void cancel();
+ method public abstract boolean isValid();
+ method public abstract java.util.List<java.nio.file.WatchEvent<?>> pollEvents();
+ method public abstract boolean reset();
+ method public abstract java.nio.file.Watchable watchable();
+ }
+
+ public abstract interface WatchService implements java.io.Closeable {
+ method public abstract void close() throws java.io.IOException;
+ method public abstract java.nio.file.WatchKey poll();
+ method public abstract java.nio.file.WatchKey poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+ method public abstract java.nio.file.WatchKey take() throws java.lang.InterruptedException;
+ }
+
+ public abstract interface Watchable {
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+ method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+ }
+
+}
+
+package java.nio.file.attribute {
+
+ public final class AclEntry {
+ method public java.util.Set<java.nio.file.attribute.AclEntryFlag> flags();
+ method public static java.nio.file.attribute.AclEntry.Builder newBuilder();
+ method public static java.nio.file.attribute.AclEntry.Builder newBuilder(java.nio.file.attribute.AclEntry);
+ method public java.util.Set<java.nio.file.attribute.AclEntryPermission> permissions();
+ method public java.nio.file.attribute.UserPrincipal principal();
+ method public java.nio.file.attribute.AclEntryType type();
+ }
+
+ public static final class AclEntry.Builder {
+ method public java.nio.file.attribute.AclEntry build();
+ method public java.nio.file.attribute.AclEntry.Builder setFlags(java.util.Set<java.nio.file.attribute.AclEntryFlag>);
+ method public java.nio.file.attribute.AclEntry.Builder setFlags(java.nio.file.attribute.AclEntryFlag...);
+ method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.util.Set<java.nio.file.attribute.AclEntryPermission>);
+ method public java.nio.file.attribute.AclEntry.Builder setPermissions(java.nio.file.attribute.AclEntryPermission...);
+ method public java.nio.file.attribute.AclEntry.Builder setPrincipal(java.nio.file.attribute.UserPrincipal);
+ method public java.nio.file.attribute.AclEntry.Builder setType(java.nio.file.attribute.AclEntryType);
+ }
+
+ public final class AclEntryFlag extends java.lang.Enum {
+ method public static java.nio.file.attribute.AclEntryFlag valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.AclEntryFlag[] values();
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag DIRECTORY_INHERIT;
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag FILE_INHERIT;
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag INHERIT_ONLY;
+ enum_constant public static final java.nio.file.attribute.AclEntryFlag NO_PROPAGATE_INHERIT;
+ }
+
+ public final class AclEntryPermission extends java.lang.Enum {
+ method public static java.nio.file.attribute.AclEntryPermission valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.AclEntryPermission[] values();
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission APPEND_DATA;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE_CHILD;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission EXECUTE;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ACL;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_ATTRIBUTES;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_DATA;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission READ_NAMED_ATTRS;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission SYNCHRONIZE;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ACL;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_ATTRIBUTES;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_DATA;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_NAMED_ATTRS;
+ enum_constant public static final java.nio.file.attribute.AclEntryPermission WRITE_OWNER;
+ field public static final java.nio.file.attribute.AclEntryPermission ADD_FILE;
+ field public static final java.nio.file.attribute.AclEntryPermission ADD_SUBDIRECTORY;
+ field public static final java.nio.file.attribute.AclEntryPermission LIST_DIRECTORY;
+ }
+
+ public final class AclEntryType extends java.lang.Enum {
+ method public static java.nio.file.attribute.AclEntryType valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.AclEntryType[] values();
+ enum_constant public static final java.nio.file.attribute.AclEntryType ALARM;
+ enum_constant public static final java.nio.file.attribute.AclEntryType ALLOW;
+ enum_constant public static final java.nio.file.attribute.AclEntryType AUDIT;
+ enum_constant public static final java.nio.file.attribute.AclEntryType DENY;
+ }
+
+ public abstract interface AclFileAttributeView implements java.nio.file.attribute.FileOwnerAttributeView {
+ method public abstract java.util.List<java.nio.file.attribute.AclEntry> getAcl() throws java.io.IOException;
+ method public abstract java.lang.String name();
+ method public abstract void setAcl(java.util.List<java.nio.file.attribute.AclEntry>) throws java.io.IOException;
+ }
+
+ public abstract interface AttributeView {
+ method public abstract java.lang.String name();
+ }
+
+ public abstract interface BasicFileAttributeView implements java.nio.file.attribute.FileAttributeView {
+ method public abstract java.lang.String name();
+ method public abstract java.nio.file.attribute.BasicFileAttributes readAttributes() throws java.io.IOException;
+ method public abstract void setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime) throws java.io.IOException;
+ }
+
+ public abstract interface BasicFileAttributes {
+ method public abstract java.nio.file.attribute.FileTime creationTime();
+ method public abstract java.lang.Object fileKey();
+ method public abstract boolean isDirectory();
+ method public abstract boolean isOther();
+ method public abstract boolean isRegularFile();
+ method public abstract boolean isSymbolicLink();
+ method public abstract java.nio.file.attribute.FileTime lastAccessTime();
+ method public abstract java.nio.file.attribute.FileTime lastModifiedTime();
+ method public abstract long size();
+ }
+
+ public abstract interface DosFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView {
+ method public abstract java.lang.String name();
+ method public abstract java.nio.file.attribute.DosFileAttributes readAttributes() throws java.io.IOException;
+ method public abstract void setArchive(boolean) throws java.io.IOException;
+ method public abstract void setHidden(boolean) throws java.io.IOException;
+ method public abstract void setReadOnly(boolean) throws java.io.IOException;
+ method public abstract void setSystem(boolean) throws java.io.IOException;
+ }
+
+ public abstract interface DosFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+ method public abstract boolean isArchive();
+ method public abstract boolean isHidden();
+ method public abstract boolean isReadOnly();
+ method public abstract boolean isSystem();
+ }
+
+ public abstract interface FileAttribute {
+ method public abstract java.lang.String name();
+ method public abstract T value();
+ }
+
+ public abstract interface FileAttributeView implements java.nio.file.attribute.AttributeView {
+ }
+
+ public abstract interface FileOwnerAttributeView implements java.nio.file.attribute.FileAttributeView {
+ method public abstract java.nio.file.attribute.UserPrincipal getOwner() throws java.io.IOException;
+ method public abstract java.lang.String name();
+ method public abstract void setOwner(java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+ }
+
+ public abstract interface FileStoreAttributeView implements java.nio.file.attribute.AttributeView {
+ }
+
+ public final class FileTime implements java.lang.Comparable {
+ method public int compareTo(java.nio.file.attribute.FileTime);
+ method public static java.nio.file.attribute.FileTime from(long, java.util.concurrent.TimeUnit);
+ method public static java.nio.file.attribute.FileTime fromMillis(long);
+ method public long to(java.util.concurrent.TimeUnit);
+ method public long toMillis();
+ }
+
+ public abstract interface GroupPrincipal implements java.nio.file.attribute.UserPrincipal {
+ }
+
+ public abstract interface PosixFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
+ method public abstract java.lang.String name();
+ method public abstract java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
+ method public abstract void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
+ method public abstract void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+ }
+
+ public abstract interface PosixFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
+ method public abstract java.nio.file.attribute.GroupPrincipal group();
+ method public abstract java.nio.file.attribute.UserPrincipal owner();
+ method public abstract java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions();
+ }
+
+ public final class PosixFilePermission extends java.lang.Enum {
+ method public static java.nio.file.attribute.PosixFilePermission valueOf(java.lang.String);
+ method public static final java.nio.file.attribute.PosixFilePermission[] values();
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_EXECUTE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_READ;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_WRITE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_EXECUTE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_READ;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OTHERS_WRITE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_EXECUTE;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_READ;
+ enum_constant public static final java.nio.file.attribute.PosixFilePermission OWNER_WRITE;
+ }
+
+ public final class PosixFilePermissions {
+ method public static java.nio.file.attribute.FileAttribute<java.util.Set<java.nio.file.attribute.PosixFilePermission>> asFileAttribute(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+ method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> fromString(java.lang.String);
+ method public static java.lang.String toString(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+ }
+
+ public abstract interface UserPrincipal implements java.security.Principal {
+ }
+
+ public abstract class UserPrincipalLookupService {
+ ctor protected UserPrincipalLookupService();
+ method public abstract java.nio.file.attribute.GroupPrincipal lookupPrincipalByGroupName(java.lang.String) throws java.io.IOException;
+ method public abstract java.nio.file.attribute.UserPrincipal lookupPrincipalByName(java.lang.String) throws java.io.IOException;
+ }
+
+ public class UserPrincipalNotFoundException extends java.io.IOException {
+ ctor public UserPrincipalNotFoundException(java.lang.String);
+ method public java.lang.String getName();
+ }
+
+}
+
+package java.nio.file.spi {
+
+ public abstract class FileSystemProvider {
+ ctor protected FileSystemProvider();
+ method public abstract void checkAccess(java.nio.file.Path, java.nio.file.AccessMode...) throws java.io.IOException;
+ method public abstract void copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public abstract void createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public void createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public void createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract void delete(java.nio.file.Path) throws java.io.IOException;
+ method public boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
+ method public abstract V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+ method public abstract java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
+ method public abstract java.nio.file.FileSystem getFileSystem(java.net.URI);
+ method public abstract java.nio.file.Path getPath(java.net.URI);
+ method public abstract java.lang.String getScheme();
+ method public static java.util.List<java.nio.file.spi.FileSystemProvider> installedProviders();
+ method public abstract boolean isHidden(java.nio.file.Path) throws java.io.IOException;
+ method public abstract boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
+ method public abstract void move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption...) throws java.io.IOException;
+ method public java.nio.channels.AsynchronousFileChannel newAsynchronousFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
+ method public java.nio.channels.FileChannel newFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+ method public abstract java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+ method public java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+ method public java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
+ method public abstract A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public abstract java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+ method public java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
+ method public abstract void setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+ }
+
+ public abstract class FileTypeDetector {
+ ctor protected FileTypeDetector();
+ method public abstract java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+ }
+
+}
+
package java.security {
public final class AccessControlContext {
- ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
ctor public AccessControlContext(java.security.ProtectionDomain[]);
+ ctor public AccessControlContext(java.security.AccessControlContext, java.security.DomainCombiner);
method public void checkPermission(java.security.Permission) throws java.security.AccessControlException;
method public java.security.DomainCombiner getDomainCombiner();
}
@@ -53831,6 +54805,12 @@
method public static java.security.AccessControlContext getContext();
}
+ public abstract interface AlgorithmConstraints {
+ method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.AlgorithmParameters);
+ method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.security.Key);
+ method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.Key, java.security.AlgorithmParameters);
+ }
+
public class AlgorithmParameterGenerator {
ctor protected AlgorithmParameterGenerator(java.security.AlgorithmParameterGeneratorSpi, java.security.Provider, java.lang.String);
method public final java.security.AlgorithmParameters generateParameters();
@@ -53880,9 +54860,11 @@
}
public final class AllPermission extends java.security.Permission {
- ctor public AllPermission(java.lang.String, java.lang.String);
ctor public AllPermission();
+ ctor public AllPermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
@@ -53896,7 +54878,9 @@
public abstract class BasicPermission extends java.security.Permission implements java.io.Serializable {
ctor public BasicPermission(java.lang.String);
ctor public BasicPermission(java.lang.String, java.lang.String);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
@@ -53925,9 +54909,24 @@
method public boolean implies(java.security.CodeSource);
}
+ public final class CryptoPrimitive extends java.lang.Enum {
+ method public static java.security.CryptoPrimitive valueOf(java.lang.String);
+ method public static final java.security.CryptoPrimitive[] values();
+ enum_constant public static final java.security.CryptoPrimitive BLOCK_CIPHER;
+ enum_constant public static final java.security.CryptoPrimitive KEY_AGREEMENT;
+ enum_constant public static final java.security.CryptoPrimitive KEY_ENCAPSULATION;
+ enum_constant public static final java.security.CryptoPrimitive KEY_WRAP;
+ enum_constant public static final java.security.CryptoPrimitive MAC;
+ enum_constant public static final java.security.CryptoPrimitive MESSAGE_DIGEST;
+ enum_constant public static final java.security.CryptoPrimitive PUBLIC_KEY_ENCRYPTION;
+ enum_constant public static final java.security.CryptoPrimitive SECURE_RANDOM;
+ enum_constant public static final java.security.CryptoPrimitive SIGNATURE;
+ enum_constant public static final java.security.CryptoPrimitive STREAM_CIPHER;
+ }
+
public class DigestException extends java.security.GeneralSecurityException {
- ctor public DigestException(java.lang.String);
ctor public DigestException();
+ ctor public DigestException(java.lang.String);
ctor public DigestException(java.lang.String, java.lang.Throwable);
ctor public DigestException(java.lang.Throwable);
}
@@ -53953,8 +54952,8 @@
}
public class GeneralSecurityException extends java.lang.Exception {
- ctor public GeneralSecurityException(java.lang.String);
ctor public GeneralSecurityException();
+ ctor public GeneralSecurityException(java.lang.String);
ctor public GeneralSecurityException(java.lang.String, java.lang.Throwable);
ctor public GeneralSecurityException(java.lang.Throwable);
}
@@ -53970,8 +54969,8 @@
public abstract deprecated class Identity implements java.security.Principal java.io.Serializable {
ctor protected Identity();
- ctor public Identity(java.lang.String);
ctor public Identity(java.lang.String, java.security.IdentityScope) throws java.security.KeyManagementException;
+ ctor public Identity(java.lang.String);
method public void addCertificate(java.security.Certificate) throws java.security.KeyManagementException;
method public java.security.Certificate[] certificates();
method public final boolean equals(java.lang.Object);
@@ -54002,22 +55001,22 @@
}
public class InvalidAlgorithmParameterException extends java.security.GeneralSecurityException {
- ctor public InvalidAlgorithmParameterException(java.lang.String);
ctor public InvalidAlgorithmParameterException();
+ ctor public InvalidAlgorithmParameterException(java.lang.String);
ctor public InvalidAlgorithmParameterException(java.lang.String, java.lang.Throwable);
ctor public InvalidAlgorithmParameterException(java.lang.Throwable);
}
public class InvalidKeyException extends java.security.KeyException {
- ctor public InvalidKeyException(java.lang.String);
ctor public InvalidKeyException();
+ ctor public InvalidKeyException(java.lang.String);
ctor public InvalidKeyException(java.lang.String, java.lang.Throwable);
ctor public InvalidKeyException(java.lang.Throwable);
}
public class InvalidParameterException extends java.lang.IllegalArgumentException {
- ctor public InvalidParameterException(java.lang.String);
ctor public InvalidParameterException();
+ ctor public InvalidParameterException(java.lang.String);
}
public abstract interface Key implements java.io.Serializable {
@@ -54028,8 +55027,8 @@
}
public class KeyException extends java.security.GeneralSecurityException {
- ctor public KeyException(java.lang.String);
ctor public KeyException();
+ ctor public KeyException(java.lang.String);
ctor public KeyException(java.lang.String, java.lang.Throwable);
ctor public KeyException(java.lang.Throwable);
}
@@ -54056,8 +55055,8 @@
}
public class KeyManagementException extends java.security.KeyException {
- ctor public KeyManagementException(java.lang.String);
ctor public KeyManagementException();
+ ctor public KeyManagementException(java.lang.String);
ctor public KeyManagementException(java.lang.String, java.lang.Throwable);
ctor public KeyManagementException(java.lang.Throwable);
}
@@ -54078,8 +55077,8 @@
method public static java.security.KeyPairGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
method public final java.security.Provider getProvider();
method public void initialize(int);
- method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
method public void initialize(int, java.security.SecureRandom);
+ method public void initialize(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
}
public abstract class KeyPairGeneratorSpi {
@@ -54182,8 +55181,8 @@
}
public class KeyStoreException extends java.security.GeneralSecurityException {
- ctor public KeyStoreException(java.lang.String);
ctor public KeyStoreException();
+ ctor public KeyStoreException(java.lang.String);
ctor public KeyStoreException(java.lang.String, java.lang.Throwable);
ctor public KeyStoreException(java.lang.Throwable);
}
@@ -54245,22 +55244,24 @@
}
public class NoSuchAlgorithmException extends java.security.GeneralSecurityException {
- ctor public NoSuchAlgorithmException(java.lang.String);
ctor public NoSuchAlgorithmException();
+ ctor public NoSuchAlgorithmException(java.lang.String);
ctor public NoSuchAlgorithmException(java.lang.String, java.lang.Throwable);
ctor public NoSuchAlgorithmException(java.lang.Throwable);
}
public class NoSuchProviderException extends java.security.GeneralSecurityException {
- ctor public NoSuchProviderException(java.lang.String);
ctor public NoSuchProviderException();
+ ctor public NoSuchProviderException(java.lang.String);
}
public abstract class Permission implements java.security.Guard java.io.Serializable {
ctor public Permission(java.lang.String);
method public void checkGuard(java.lang.Object) throws java.lang.SecurityException;
+ method public abstract boolean equals(java.lang.Object);
method public abstract java.lang.String getActions();
method public final java.lang.String getName();
+ method public abstract int hashCode();
method public abstract boolean implies(java.security.Permission);
method public java.security.PermissionCollection newPermissionCollection();
}
@@ -54368,8 +55369,8 @@
}
public class ProviderException extends java.lang.RuntimeException {
- ctor public ProviderException(java.lang.String);
ctor public ProviderException();
+ ctor public ProviderException(java.lang.String);
ctor public ProviderException(java.lang.String, java.lang.Throwable);
ctor public ProviderException(java.lang.Throwable);
}
@@ -54379,8 +55380,8 @@
}
public class SecureClassLoader extends java.lang.ClassLoader {
- ctor protected SecureClassLoader();
ctor protected SecureClassLoader(java.lang.ClassLoader);
+ ctor protected SecureClassLoader();
method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.security.CodeSource);
method protected final java.lang.Class<?> defineClass(java.lang.String, java.nio.ByteBuffer, java.security.CodeSource);
method protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
@@ -54413,10 +55414,10 @@
method public static deprecated java.lang.String getAlgorithmProperty(java.lang.String, java.lang.String);
method public static java.util.Set<java.lang.String> getAlgorithms(java.lang.String);
method public static java.lang.String getProperty(java.lang.String);
- method public static synchronized java.security.Provider getProvider(java.lang.String);
- method public static synchronized java.security.Provider[] getProviders();
+ method public static java.security.Provider getProvider(java.lang.String);
+ method public static java.security.Provider[] getProviders();
method public static java.security.Provider[] getProviders(java.lang.String);
- method public static synchronized java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
+ method public static java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
method public static synchronized int insertProviderAt(java.security.Provider, int);
method public static synchronized void removeProvider(java.lang.String);
method public static void setProperty(java.lang.String, java.lang.String);
@@ -54430,6 +55431,7 @@
public abstract class Signature extends java.security.SignatureSpi {
ctor protected Signature(java.lang.String);
method public final java.lang.String getAlgorithm();
+ method public java.security.SignatureSpi getCurrentSpi();
method public static java.security.Signature getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
method public static java.security.Signature getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
method public static java.security.Signature getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
@@ -54457,8 +55459,8 @@
}
public class SignatureException extends java.security.GeneralSecurityException {
- ctor public SignatureException(java.lang.String);
ctor public SignatureException();
+ ctor public SignatureException(java.lang.String);
ctor public SignatureException(java.lang.String, java.lang.Throwable);
ctor public SignatureException(java.lang.Throwable);
}
@@ -54511,17 +55513,19 @@
}
public class UnrecoverableKeyException extends java.security.UnrecoverableEntryException {
- ctor public UnrecoverableKeyException(java.lang.String);
ctor public UnrecoverableKeyException();
+ ctor public UnrecoverableKeyException(java.lang.String);
}
public final class UnresolvedPermission extends java.security.Permission implements java.io.Serializable {
ctor public UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]);
+ method public boolean equals(java.lang.Object);
method public java.lang.String getActions();
method public java.lang.String getUnresolvedActions();
method public java.security.cert.Certificate[] getUnresolvedCerts();
method public java.lang.String getUnresolvedName();
method public java.lang.String getUnresolvedType();
+ method public int hashCode();
method public boolean implies(java.security.Permission);
}
@@ -54595,12 +55599,28 @@
}
public class CRLException extends java.security.GeneralSecurityException {
- ctor public CRLException(java.lang.String);
ctor public CRLException();
+ ctor public CRLException(java.lang.String);
ctor public CRLException(java.lang.String, java.lang.Throwable);
ctor public CRLException(java.lang.Throwable);
}
+ public final class CRLReason extends java.lang.Enum {
+ method public static java.security.cert.CRLReason valueOf(java.lang.String);
+ method public static final java.security.cert.CRLReason[] values();
+ enum_constant public static final java.security.cert.CRLReason AA_COMPROMISE;
+ enum_constant public static final java.security.cert.CRLReason AFFILIATION_CHANGED;
+ enum_constant public static final java.security.cert.CRLReason CA_COMPROMISE;
+ enum_constant public static final java.security.cert.CRLReason CERTIFICATE_HOLD;
+ enum_constant public static final java.security.cert.CRLReason CESSATION_OF_OPERATION;
+ enum_constant public static final java.security.cert.CRLReason KEY_COMPROMISE;
+ enum_constant public static final java.security.cert.CRLReason PRIVILEGE_WITHDRAWN;
+ enum_constant public static final java.security.cert.CRLReason REMOVE_FROM_CRL;
+ enum_constant public static final java.security.cert.CRLReason SUPERSEDED;
+ enum_constant public static final java.security.cert.CRLReason UNSPECIFIED;
+ enum_constant public static final java.security.cert.CRLReason UNUSED;
+ }
+
public abstract interface CRLSelector implements java.lang.Cloneable {
method public abstract java.lang.Object clone();
method public abstract boolean match(java.security.cert.CRL);
@@ -54633,10 +55653,10 @@
}
public class CertPathBuilderException extends java.security.GeneralSecurityException {
- ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
- ctor public CertPathBuilderException(java.lang.Throwable);
- ctor public CertPathBuilderException(java.lang.String);
ctor public CertPathBuilderException();
+ ctor public CertPathBuilderException(java.lang.String);
+ ctor public CertPathBuilderException(java.lang.Throwable);
+ ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
}
public abstract interface CertPathBuilderResult implements java.lang.Cloneable {
@@ -54665,13 +55685,30 @@
}
public class CertPathValidatorException extends java.security.GeneralSecurityException {
- ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
- ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
- ctor public CertPathValidatorException(java.lang.Throwable);
- ctor public CertPathValidatorException(java.lang.String);
ctor public CertPathValidatorException();
+ ctor public CertPathValidatorException(java.lang.String);
+ ctor public CertPathValidatorException(java.lang.Throwable);
+ ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
+ ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
+ ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int, java.security.cert.CertPathValidatorException.Reason);
method public java.security.cert.CertPath getCertPath();
method public int getIndex();
+ method public java.security.cert.CertPathValidatorException.Reason getReason();
+ }
+
+ public static final class CertPathValidatorException.BasicReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+ method public static java.security.cert.CertPathValidatorException.BasicReason valueOf(java.lang.String);
+ method public static final java.security.cert.CertPathValidatorException.BasicReason[] values();
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason ALGORITHM_CONSTRAINED;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason EXPIRED;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason INVALID_SIGNATURE;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason NOT_YET_VALID;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason REVOKED;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNDETERMINED_REVOCATION_STATUS;
+ enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNSPECIFIED;
+ }
+
+ public static abstract interface CertPathValidatorException.Reason implements java.io.Serializable {
}
public abstract interface CertPathValidatorResult implements java.lang.Cloneable {
@@ -54702,10 +55739,10 @@
}
public class CertStoreException extends java.security.GeneralSecurityException {
- ctor public CertStoreException(java.lang.String, java.lang.Throwable);
- ctor public CertStoreException(java.lang.Throwable);
- ctor public CertStoreException(java.lang.String);
ctor public CertStoreException();
+ ctor public CertStoreException(java.lang.String);
+ ctor public CertStoreException(java.lang.Throwable);
+ ctor public CertStoreException(java.lang.String, java.lang.Throwable);
}
public abstract interface CertStoreParameters implements java.lang.Cloneable {
@@ -54735,22 +55772,22 @@
}
public class CertificateEncodingException extends java.security.cert.CertificateException {
- ctor public CertificateEncodingException(java.lang.String);
ctor public CertificateEncodingException();
+ ctor public CertificateEncodingException(java.lang.String);
ctor public CertificateEncodingException(java.lang.String, java.lang.Throwable);
ctor public CertificateEncodingException(java.lang.Throwable);
}
public class CertificateException extends java.security.GeneralSecurityException {
- ctor public CertificateException(java.lang.String);
ctor public CertificateException();
+ ctor public CertificateException(java.lang.String);
ctor public CertificateException(java.lang.String, java.lang.Throwable);
ctor public CertificateException(java.lang.Throwable);
}
public class CertificateExpiredException extends java.security.cert.CertificateException {
- ctor public CertificateExpiredException(java.lang.String);
ctor public CertificateExpiredException();
+ ctor public CertificateExpiredException(java.lang.String);
}
public class CertificateFactory {
@@ -54783,28 +55820,44 @@
}
public class CertificateNotYetValidException extends java.security.cert.CertificateException {
- ctor public CertificateNotYetValidException(java.lang.String);
ctor public CertificateNotYetValidException();
+ ctor public CertificateNotYetValidException(java.lang.String);
}
public class CertificateParsingException extends java.security.cert.CertificateException {
- ctor public CertificateParsingException(java.lang.String);
ctor public CertificateParsingException();
+ ctor public CertificateParsingException(java.lang.String);
ctor public CertificateParsingException(java.lang.String, java.lang.Throwable);
ctor public CertificateParsingException(java.lang.Throwable);
}
+ public class CertificateRevokedException extends java.security.cert.CertificateException {
+ ctor public CertificateRevokedException(java.util.Date, java.security.cert.CRLReason, javax.security.auth.x500.X500Principal, java.util.Map<java.lang.String, java.security.cert.Extension>);
+ method public javax.security.auth.x500.X500Principal getAuthorityName();
+ method public java.util.Map<java.lang.String, java.security.cert.Extension> getExtensions();
+ method public java.util.Date getInvalidityDate();
+ method public java.util.Date getRevocationDate();
+ method public java.security.cert.CRLReason getRevocationReason();
+ }
+
public class CollectionCertStoreParameters implements java.security.cert.CertStoreParameters {
- ctor public CollectionCertStoreParameters();
ctor public CollectionCertStoreParameters(java.util.Collection<?>);
+ ctor public CollectionCertStoreParameters();
method public java.lang.Object clone();
method public java.util.Collection<?> getCollection();
}
+ public abstract interface Extension {
+ method public abstract void encode(java.io.OutputStream) throws java.io.IOException;
+ method public abstract java.lang.String getId();
+ method public abstract byte[] getValue();
+ method public abstract boolean isCritical();
+ }
+
public class LDAPCertStoreParameters implements java.security.cert.CertStoreParameters {
ctor public LDAPCertStoreParameters(java.lang.String, int);
- ctor public LDAPCertStoreParameters();
ctor public LDAPCertStoreParameters(java.lang.String);
+ ctor public LDAPCertStoreParameters();
method public java.lang.Object clone();
method public int getPort();
method public java.lang.String getServerName();
@@ -54871,6 +55924,19 @@
method public void setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>) throws java.security.InvalidAlgorithmParameterException;
}
+ public final class PKIXReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
+ method public static java.security.cert.PKIXReason valueOf(java.lang.String);
+ method public static final java.security.cert.PKIXReason[] values();
+ enum_constant public static final java.security.cert.PKIXReason INVALID_KEY_USAGE;
+ enum_constant public static final java.security.cert.PKIXReason INVALID_NAME;
+ enum_constant public static final java.security.cert.PKIXReason INVALID_POLICY;
+ enum_constant public static final java.security.cert.PKIXReason NAME_CHAINING;
+ enum_constant public static final java.security.cert.PKIXReason NOT_CA_CERT;
+ enum_constant public static final java.security.cert.PKIXReason NO_TRUST_ANCHOR;
+ enum_constant public static final java.security.cert.PKIXReason PATH_TOO_LONG;
+ enum_constant public static final java.security.cert.PKIXReason UNRECOGNIZED_CRIT_EXT;
+ }
+
public abstract interface PolicyNode {
method public abstract java.util.Iterator<? extends java.security.cert.PolicyNode> getChildren();
method public abstract int getDepth();
@@ -54890,8 +55956,8 @@
public class TrustAnchor {
ctor public TrustAnchor(java.security.cert.X509Certificate, byte[]);
- ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
ctor public TrustAnchor(javax.security.auth.x500.X500Principal, java.security.PublicKey, byte[]);
+ ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
method public final javax.security.auth.x500.X500Principal getCA();
method public final java.lang.String getCAName();
method public final java.security.PublicKey getCAPublicKey();
@@ -54924,6 +55990,7 @@
method public javax.security.auth.x500.X500Principal getCertificateIssuer();
method public abstract byte[] getEncoded() throws java.security.cert.CRLException;
method public abstract java.util.Date getRevocationDate();
+ method public java.security.cert.CRLReason getRevocationReason();
method public abstract java.math.BigInteger getSerialNumber();
method public abstract boolean hasExtensions();
method public abstract java.lang.String toString();
@@ -55199,8 +56266,8 @@
}
public class EllipticCurve {
- ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger);
+ ctor public EllipticCurve(java.security.spec.ECField, java.math.BigInteger, java.math.BigInteger, byte[]);
method public java.math.BigInteger getA();
method public java.math.BigInteger getB();
method public java.security.spec.ECField getField();
@@ -55214,15 +56281,15 @@
}
public class InvalidKeySpecException extends java.security.GeneralSecurityException {
- ctor public InvalidKeySpecException(java.lang.String);
ctor public InvalidKeySpecException();
+ ctor public InvalidKeySpecException(java.lang.String);
ctor public InvalidKeySpecException(java.lang.String, java.lang.Throwable);
ctor public InvalidKeySpecException(java.lang.Throwable);
}
public class InvalidParameterSpecException extends java.security.GeneralSecurityException {
- ctor public InvalidParameterSpecException(java.lang.String);
ctor public InvalidParameterSpecException();
+ ctor public InvalidParameterSpecException(java.lang.String);
}
public abstract interface KeySpec {
@@ -55243,8 +56310,8 @@
}
public class PSSParameterSpec implements java.security.spec.AlgorithmParameterSpec {
- ctor public PSSParameterSpec(int);
ctor public PSSParameterSpec(java.lang.String, java.lang.String, java.security.spec.AlgorithmParameterSpec, int, int);
+ ctor public PSSParameterSpec(int);
method public java.lang.String getDigestAlgorithm();
method public java.lang.String getMGFAlgorithm();
method public java.security.spec.AlgorithmParameterSpec getMGFParameters();
@@ -55313,28 +56380,28 @@
public abstract interface Array {
method public abstract void free() throws java.sql.SQLException;
method public abstract java.lang.Object getArray() throws java.sql.SQLException;
+ method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.lang.Object getArray(long, int) throws java.sql.SQLException;
method public abstract java.lang.Object getArray(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
- method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract int getBaseType() throws java.sql.SQLException;
method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
method public abstract java.sql.ResultSet getResultSet() throws java.sql.SQLException;
+ method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.sql.ResultSet getResultSet(long, int) throws java.sql.SQLException;
method public abstract java.sql.ResultSet getResultSet(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
- method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
}
- public class BatchUpdateException extends java.sql.SQLException implements java.io.Serializable {
+ public class BatchUpdateException extends java.sql.SQLException {
+ ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
+ ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
+ ctor public BatchUpdateException(java.lang.String, int[]);
+ ctor public BatchUpdateException(int[]);
ctor public BatchUpdateException();
ctor public BatchUpdateException(java.lang.Throwable);
ctor public BatchUpdateException(int[], java.lang.Throwable);
ctor public BatchUpdateException(java.lang.String, int[], java.lang.Throwable);
ctor public BatchUpdateException(java.lang.String, java.lang.String, int[], java.lang.Throwable);
ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[], java.lang.Throwable);
- ctor public BatchUpdateException(int[]);
- ctor public BatchUpdateException(java.lang.String, int[]);
- ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
- ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
method public int[] getUpdateCounts();
}
@@ -55344,8 +56411,8 @@
method public abstract java.io.InputStream getBinaryStream(long, long) throws java.sql.SQLException;
method public abstract byte[] getBytes(long, int) throws java.sql.SQLException;
method public abstract long length() throws java.sql.SQLException;
- method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
method public abstract long position(byte[], long) throws java.sql.SQLException;
+ method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
method public abstract java.io.OutputStream setBinaryStream(long) throws java.sql.SQLException;
method public abstract int setBytes(long, byte[]) throws java.sql.SQLException;
method public abstract int setBytes(long, byte[], int, int) throws java.sql.SQLException;
@@ -55355,8 +56422,8 @@
public abstract interface CallableStatement implements java.sql.PreparedStatement {
method public abstract java.sql.Array getArray(int) throws java.sql.SQLException;
method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
- method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
+ method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
method public abstract java.sql.Blob getBlob(java.lang.String) throws java.sql.SQLException;
@@ -55451,9 +56518,9 @@
method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
method public abstract void setRowId(java.lang.String, java.sql.RowId) throws java.sql.SQLException;
method public abstract void setSQLXML(java.lang.String, java.sql.SQLXML) throws java.sql.SQLException;
method public abstract void setShort(java.lang.String, short) throws java.sql.SQLException;
@@ -55482,8 +56549,8 @@
method public abstract java.io.Reader getCharacterStream(long, long) throws java.sql.SQLException;
method public abstract java.lang.String getSubString(long, int) throws java.sql.SQLException;
method public abstract long length() throws java.sql.SQLException;
- method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
method public abstract long position(java.lang.String, long) throws java.sql.SQLException;
+ method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
method public abstract java.io.OutputStream setAsciiStream(long) throws java.sql.SQLException;
method public abstract java.io.Writer setCharacterStream(long) throws java.sql.SQLException;
method public abstract int setString(long, java.lang.String) throws java.sql.SQLException;
@@ -55521,10 +56588,10 @@
method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int) throws java.sql.SQLException;
method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int, int) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String) throws java.sql.SQLException;
- method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
- method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) throws java.sql.SQLException;
+ method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
+ method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String[]) throws java.sql.SQLException;
method public abstract void releaseSavepoint(java.sql.Savepoint) throws java.sql.SQLException;
method public abstract void rollback() throws java.sql.SQLException;
@@ -55546,7 +56613,7 @@
field public static final int TRANSACTION_SERIALIZABLE = 8; // 0x8
}
- public class DataTruncation extends java.sql.SQLWarning implements java.io.Serializable {
+ public class DataTruncation extends java.sql.SQLWarning {
ctor public DataTruncation(int, boolean, boolean, int, int);
ctor public DataTruncation(int, boolean, boolean, int, int, java.lang.Throwable);
method public int getDataSize();
@@ -55808,17 +56875,17 @@
}
public class DriverManager {
- method public static void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
- method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
+ method public static synchronized void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
method public static java.sql.Connection getConnection(java.lang.String, java.util.Properties) throws java.sql.SQLException;
method public static java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
+ method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
method public static java.sql.Driver getDriver(java.lang.String) throws java.sql.SQLException;
method public static java.util.Enumeration<java.sql.Driver> getDrivers();
method public static deprecated java.io.PrintStream getLogStream();
method public static java.io.PrintWriter getLogWriter();
method public static int getLoginTimeout();
method public static void println(java.lang.String);
- method public static void registerDriver(java.sql.Driver) throws java.sql.SQLException;
+ method public static synchronized void registerDriver(java.sql.Driver) throws java.sql.SQLException;
method public static deprecated void setLogStream(java.io.PrintStream);
method public static void setLogWriter(java.io.PrintWriter);
method public static void setLoginTimeout(int);
@@ -55897,8 +56964,8 @@
method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(int, int) throws java.sql.SQLException;
method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
- method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
method public abstract void setRef(int, java.sql.Ref) throws java.sql.SQLException;
method public abstract void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
@@ -55915,8 +56982,8 @@
public abstract interface Ref {
method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
- method public abstract java.lang.Object getObject() throws java.sql.SQLException;
method public abstract java.lang.Object getObject(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
+ method public abstract java.lang.Object getObject() throws java.sql.SQLException;
method public abstract void setObject(java.lang.Object) throws java.sql.SQLException;
}
@@ -55934,10 +57001,10 @@
method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
method public abstract java.io.InputStream getAsciiStream(int) throws java.sql.SQLException;
method public abstract java.io.InputStream getAsciiStream(java.lang.String) throws java.sql.SQLException;
- method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
- method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
method public abstract deprecated java.math.BigDecimal getBigDecimal(java.lang.String, int) throws java.sql.SQLException;
+ method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
+ method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
method public abstract java.io.InputStream getBinaryStream(int) throws java.sql.SQLException;
method public abstract java.io.InputStream getBinaryStream(java.lang.String) throws java.sql.SQLException;
method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
@@ -55955,8 +57022,8 @@
method public abstract int getConcurrency() throws java.sql.SQLException;
method public abstract java.lang.String getCursorName() throws java.sql.SQLException;
method public abstract java.sql.Date getDate(int) throws java.sql.SQLException;
- method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Date getDate(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Date getDate(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
method public abstract double getDouble(int) throws java.sql.SQLException;
method public abstract double getDouble(java.lang.String) throws java.sql.SQLException;
@@ -55977,8 +57044,8 @@
method public abstract java.lang.String getNString(int) throws java.sql.SQLException;
method public abstract java.lang.String getNString(java.lang.String) throws java.sql.SQLException;
method public abstract java.lang.Object getObject(int) throws java.sql.SQLException;
- method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.lang.Object getObject(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.lang.Object getObject(java.lang.String, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
method public abstract java.sql.Ref getRef(int) throws java.sql.SQLException;
method public abstract java.sql.Ref getRef(java.lang.String) throws java.sql.SQLException;
@@ -55993,12 +57060,12 @@
method public abstract java.lang.String getString(int) throws java.sql.SQLException;
method public abstract java.lang.String getString(java.lang.String) throws java.sql.SQLException;
method public abstract java.sql.Time getTime(int) throws java.sql.SQLException;
- method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Time getTime(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Time getTime(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
- method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Timestamp getTimestamp(java.lang.String) throws java.sql.SQLException;
+ method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
method public abstract java.sql.Timestamp getTimestamp(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
method public abstract int getType() throws java.sql.SQLException;
method public abstract java.net.URL getURL(int) throws java.sql.SQLException;
@@ -56088,10 +57155,10 @@
method public abstract void updateNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
method public abstract void updateNull(int) throws java.sql.SQLException;
method public abstract void updateNull(java.lang.String) throws java.sql.SQLException;
- method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void updateObject(int, java.lang.Object, int) throws java.sql.SQLException;
- method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+ method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void updateObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
method public abstract void updateRef(int, java.sql.Ref) throws java.sql.SQLException;
method public abstract void updateRef(java.lang.String, java.sql.Ref) throws java.sql.SQLException;
method public abstract void updateRow() throws java.sql.SQLException;
@@ -56170,10 +57237,10 @@
ctor public SQLClientInfoException(java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
- ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
- ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
+ ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
+ ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
method public java.util.Map<java.lang.String, java.sql.ClientInfoStatus> getFailedProperties();
}
@@ -56194,11 +57261,11 @@
ctor public SQLDataException(java.lang.String, java.lang.String, int, java.lang.Throwable);
}
- public class SQLException extends java.lang.Exception implements java.lang.Iterable java.io.Serializable {
- ctor public SQLException();
- ctor public SQLException(java.lang.String);
- ctor public SQLException(java.lang.String, java.lang.String);
+ public class SQLException extends java.lang.Exception implements java.lang.Iterable {
ctor public SQLException(java.lang.String, java.lang.String, int);
+ ctor public SQLException(java.lang.String, java.lang.String);
+ ctor public SQLException(java.lang.String);
+ ctor public SQLException();
ctor public SQLException(java.lang.Throwable);
ctor public SQLException(java.lang.String, java.lang.Throwable);
ctor public SQLException(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -56325,7 +57392,7 @@
method public abstract void writeURL(java.net.URL) throws java.sql.SQLException;
}
- public final class SQLPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
+ public final class SQLPermission extends java.security.BasicPermission {
ctor public SQLPermission(java.lang.String);
ctor public SQLPermission(java.lang.String, java.lang.String);
}
@@ -56396,11 +57463,11 @@
ctor public SQLTransientException(java.lang.String, java.lang.String, int, java.lang.Throwable);
}
- public class SQLWarning extends java.sql.SQLException implements java.io.Serializable {
- ctor public SQLWarning();
- ctor public SQLWarning(java.lang.String);
- ctor public SQLWarning(java.lang.String, java.lang.String);
+ public class SQLWarning extends java.sql.SQLException {
ctor public SQLWarning(java.lang.String, java.lang.String, int);
+ ctor public SQLWarning(java.lang.String, java.lang.String);
+ ctor public SQLWarning(java.lang.String);
+ ctor public SQLWarning();
ctor public SQLWarning(java.lang.Throwable);
ctor public SQLWarning(java.lang.String, java.lang.Throwable);
ctor public SQLWarning(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -56489,15 +57556,15 @@
}
public class Timestamp extends java.util.Date {
- ctor public deprecated Timestamp(int, int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
+ ctor public deprecated Timestamp(int, int, int, int, int, int, int);
ctor public Timestamp(long);
method public boolean after(java.sql.Timestamp);
method public boolean before(java.sql.Timestamp);
method public int compareTo(java.sql.Timestamp);
method public boolean equals(java.sql.Timestamp);
method public int getNanos();
- method public void setNanos(int) throws java.lang.IllegalArgumentException;
- method public static java.sql.Timestamp valueOf(java.lang.String) throws java.lang.IllegalArgumentException;
+ method public void setNanos(int);
+ method public static java.sql.Timestamp valueOf(java.lang.String);
}
public class Types {
@@ -56577,11 +57644,11 @@
}
public class AttributedString {
+ ctor public AttributedString(java.lang.String);
+ ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
ctor public AttributedString(java.text.AttributedCharacterIterator);
ctor public AttributedString(java.text.AttributedCharacterIterator, int, int);
ctor public AttributedString(java.text.AttributedCharacterIterator, int, int, java.text.AttributedCharacterIterator.Attribute[]);
- ctor public AttributedString(java.lang.String);
- ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object);
method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object, int, int);
method public void addAttributes(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>, int, int);
@@ -56591,9 +57658,9 @@
}
public final class Bidi {
+ ctor public Bidi(java.lang.String, int);
ctor public Bidi(java.text.AttributedCharacterIterator);
ctor public Bidi(char[], int, byte[], int, int, int);
- ctor public Bidi(java.lang.String, int);
method public boolean baseIsLeftToRight();
method public java.text.Bidi createLineBidi(int, int);
method public int getBaseLevel();
@@ -56620,7 +57687,7 @@
method public abstract int current();
method public abstract int first();
method public abstract int following(int);
- method public static java.util.Locale[] getAvailableLocales();
+ method public static synchronized java.util.Locale[] getAvailableLocales();
method public static java.text.BreakIterator getCharacterInstance();
method public static java.text.BreakIterator getCharacterInstance(java.util.Locale);
method public static java.text.BreakIterator getLineInstance();
@@ -56632,8 +57699,8 @@
method public static java.text.BreakIterator getWordInstance(java.util.Locale);
method public boolean isBoundary(int);
method public abstract int last();
- method public abstract int next();
method public abstract int next(int);
+ method public abstract int next();
method public int preceding(int);
method public abstract int previous();
method public void setText(java.lang.String);
@@ -56656,11 +57723,11 @@
}
public class ChoiceFormat extends java.text.NumberFormat {
- ctor public ChoiceFormat(double[], java.lang.String[]);
ctor public ChoiceFormat(java.lang.String);
+ ctor public ChoiceFormat(double[], java.lang.String[]);
method public void applyPattern(java.lang.String);
- method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+ method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.Object[] getFormats();
method public double[] getLimits();
method public static final double nextDouble(double);
@@ -56680,8 +57747,8 @@
method public void reset();
method public static final short secondaryOrder(int);
method public void setOffset(int);
- method public void setText(java.text.CharacterIterator);
method public void setText(java.lang.String);
+ method public void setText(java.text.CharacterIterator);
method public static final short tertiaryOrder(int);
field public static final int NULLORDER = -1; // 0xffffffff
}
@@ -56696,18 +57763,18 @@
public abstract class Collator implements java.lang.Cloneable java.util.Comparator {
ctor protected Collator();
method public java.lang.Object clone();
- method public int compare(java.lang.Object, java.lang.Object);
method public abstract int compare(java.lang.String, java.lang.String);
+ method public int compare(java.lang.Object, java.lang.Object);
method public boolean equals(java.lang.String, java.lang.String);
- method public static java.util.Locale[] getAvailableLocales();
+ method public static synchronized java.util.Locale[] getAvailableLocales();
method public abstract java.text.CollationKey getCollationKey(java.lang.String);
- method public int getDecomposition();
- method public static java.text.Collator getInstance();
- method public static java.text.Collator getInstance(java.util.Locale);
- method public int getStrength();
+ method public synchronized int getDecomposition();
+ method public static synchronized java.text.Collator getInstance();
+ method public static synchronized java.text.Collator getInstance(java.util.Locale);
+ method public synchronized int getStrength();
method public abstract int hashCode();
- method public void setDecomposition(int);
- method public void setStrength(int);
+ method public synchronized void setDecomposition(int);
+ method public synchronized void setStrength(int);
field public static final int CANONICAL_DECOMPOSITION = 1; // 0x1
field public static final int FULL_DECOMPOSITION = 2; // 0x2
field public static final int IDENTICAL = 3; // 0x3
@@ -56720,8 +57787,8 @@
public abstract class DateFormat extends java.text.Format {
ctor protected DateFormat();
method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.String format(java.util.Date);
method public abstract java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
+ method public final java.lang.String format(java.util.Date);
method public static java.util.Locale[] getAvailableLocales();
method public java.util.Calendar getCalendar();
method public static final java.text.DateFormat getDateInstance();
@@ -56826,9 +57893,9 @@
ctor public DecimalFormat(java.lang.String, java.text.DecimalFormatSymbols);
method public void applyLocalizedPattern(java.lang.String);
method public void applyPattern(java.lang.String);
+ method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.text.DecimalFormatSymbols getDecimalFormatSymbols();
method public int getGroupingSize();
method public int getMultiplier();
@@ -56864,15 +57931,17 @@
method public java.lang.String getExponentSeparator();
method public char getGroupingSeparator();
method public java.lang.String getInfinity();
- method public static java.text.DecimalFormatSymbols getInstance();
- method public static java.text.DecimalFormatSymbols getInstance(java.util.Locale);
+ method public static final java.text.DecimalFormatSymbols getInstance();
+ method public static final java.text.DecimalFormatSymbols getInstance(java.util.Locale);
method public java.lang.String getInternationalCurrencySymbol();
method public char getMinusSign();
+ method public java.lang.String getMinusSignString();
method public char getMonetaryDecimalSeparator();
method public java.lang.String getNaN();
method public char getPatternSeparator();
method public char getPerMill();
method public char getPercent();
+ method public java.lang.String getPercentString();
method public char getZeroDigit();
method public void setCurrency(java.util.Currency);
method public void setCurrencySymbol(java.lang.String);
@@ -56909,8 +57978,8 @@
method public final java.lang.String format(java.lang.Object);
method public abstract java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object);
- method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
method public abstract java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+ method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
}
public static class Format.Field extends java.text.AttributedCharacterIterator.Attribute {
@@ -56918,17 +57987,17 @@
}
public class MessageFormat extends java.text.Format {
- ctor public MessageFormat(java.lang.String, java.util.Locale);
ctor public MessageFormat(java.lang.String);
+ ctor public MessageFormat(java.lang.String, java.util.Locale);
method public void applyPattern(java.lang.String);
method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public static java.lang.String format(java.lang.String, java.lang.Object...);
+ method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
method public java.text.Format[] getFormats();
method public java.text.Format[] getFormatsByArgumentIndex();
method public java.util.Locale getLocale();
- method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
+ method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
method public void setFormat(int, java.text.Format);
method public void setFormatByArgumentIndex(int, java.text.Format);
@@ -56959,11 +58028,11 @@
public abstract class NumberFormat extends java.text.Format {
ctor protected NumberFormat();
- method public final java.lang.String format(double);
- method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
- method public final java.lang.String format(long);
- method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+ method public final java.lang.String format(double);
+ method public final java.lang.String format(long);
+ method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+ method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
method public static java.util.Locale[] getAvailableLocales();
method public java.util.Currency getCurrency();
method public static final java.text.NumberFormat getCurrencyInstance();
@@ -56983,8 +58052,8 @@
method public java.math.RoundingMode getRoundingMode();
method public boolean isGroupingUsed();
method public boolean isParseIntegerOnly();
- method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+ method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
method public void setCurrency(java.util.Currency);
method public void setGroupingUsed(boolean);
@@ -57028,10 +58097,10 @@
public class RuleBasedCollator extends java.text.Collator {
ctor public RuleBasedCollator(java.lang.String) throws java.text.ParseException;
- method public int compare(java.lang.String, java.lang.String);
- method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+ method public synchronized int compare(java.lang.String, java.lang.String);
method public java.text.CollationElementIterator getCollationElementIterator(java.lang.String);
- method public java.text.CollationKey getCollationKey(java.lang.String);
+ method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+ method public synchronized java.text.CollationKey getCollationKey(java.lang.String);
method public java.lang.String getRules();
method public int hashCode();
}
@@ -57039,8 +58108,8 @@
public class SimpleDateFormat extends java.text.DateFormat {
ctor public SimpleDateFormat();
ctor public SimpleDateFormat(java.lang.String);
- ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
+ ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
method public void applyLocalizedPattern(java.lang.String);
method public void applyPattern(java.lang.String);
method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
@@ -57187,7 +58256,7 @@
method public int size();
}
- public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.RandomAccess java.io.Serializable {
+ public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
ctor public ArrayList(int);
ctor public ArrayList();
ctor public ArrayList(java.util.Collection<? extends E>);
@@ -57200,109 +58269,109 @@
public class Arrays {
method public static java.util.List<T> asList(T...);
- method public static int binarySearch(byte[], byte);
- method public static int binarySearch(byte[], int, int, byte);
+ method public static int binarySearch(long[], long);
+ method public static int binarySearch(long[], int, int, long);
+ method public static int binarySearch(int[], int);
+ method public static int binarySearch(int[], int, int, int);
+ method public static int binarySearch(short[], short);
+ method public static int binarySearch(short[], int, int, short);
method public static int binarySearch(char[], char);
method public static int binarySearch(char[], int, int, char);
+ method public static int binarySearch(byte[], byte);
+ method public static int binarySearch(byte[], int, int, byte);
method public static int binarySearch(double[], double);
method public static int binarySearch(double[], int, int, double);
method public static int binarySearch(float[], float);
method public static int binarySearch(float[], int, int, float);
- method public static int binarySearch(int[], int);
- method public static int binarySearch(int[], int, int, int);
- method public static int binarySearch(long[], long);
- method public static int binarySearch(long[], int, int, long);
method public static int binarySearch(java.lang.Object[], java.lang.Object);
method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object);
method public static int binarySearch(T[], T, java.util.Comparator<? super T>);
method public static int binarySearch(T[], int, int, T, java.util.Comparator<? super T>);
- method public static int binarySearch(short[], short);
- method public static int binarySearch(short[], int, int, short);
- method public static boolean[] copyOf(boolean[], int);
- method public static byte[] copyOf(byte[], int);
- method public static char[] copyOf(char[], int);
- method public static double[] copyOf(double[], int);
- method public static float[] copyOf(float[], int);
- method public static int[] copyOf(int[], int);
- method public static long[] copyOf(long[], int);
- method public static short[] copyOf(short[], int);
method public static T[] copyOf(T[], int);
method public static T[] copyOf(U[], int, java.lang.Class<? extends T[]>);
- method public static boolean[] copyOfRange(boolean[], int, int);
- method public static byte[] copyOfRange(byte[], int, int);
- method public static char[] copyOfRange(char[], int, int);
- method public static double[] copyOfRange(double[], int, int);
- method public static float[] copyOfRange(float[], int, int);
- method public static int[] copyOfRange(int[], int, int);
- method public static long[] copyOfRange(long[], int, int);
- method public static short[] copyOfRange(short[], int, int);
+ method public static byte[] copyOf(byte[], int);
+ method public static short[] copyOf(short[], int);
+ method public static int[] copyOf(int[], int);
+ method public static long[] copyOf(long[], int);
+ method public static char[] copyOf(char[], int);
+ method public static float[] copyOf(float[], int);
+ method public static double[] copyOf(double[], int);
+ method public static boolean[] copyOf(boolean[], int);
method public static T[] copyOfRange(T[], int, int);
method public static T[] copyOfRange(U[], int, int, java.lang.Class<? extends T[]>);
+ method public static byte[] copyOfRange(byte[], int, int);
+ method public static short[] copyOfRange(short[], int, int);
+ method public static int[] copyOfRange(int[], int, int);
+ method public static long[] copyOfRange(long[], int, int);
+ method public static char[] copyOfRange(char[], int, int);
+ method public static float[] copyOfRange(float[], int, int);
+ method public static double[] copyOfRange(double[], int, int);
+ method public static boolean[] copyOfRange(boolean[], int, int);
method public static boolean deepEquals(java.lang.Object[], java.lang.Object[]);
method public static int deepHashCode(java.lang.Object[]);
method public static java.lang.String deepToString(java.lang.Object[]);
- method public static boolean equals(byte[], byte[]);
+ method public static boolean equals(long[], long[]);
+ method public static boolean equals(int[], int[]);
method public static boolean equals(short[], short[]);
method public static boolean equals(char[], char[]);
- method public static boolean equals(int[], int[]);
- method public static boolean equals(long[], long[]);
- method public static boolean equals(float[], float[]);
- method public static boolean equals(double[], double[]);
+ method public static boolean equals(byte[], byte[]);
method public static boolean equals(boolean[], boolean[]);
+ method public static boolean equals(double[], double[]);
+ method public static boolean equals(float[], float[]);
method public static boolean equals(java.lang.Object[], java.lang.Object[]);
- method public static void fill(byte[], byte);
- method public static void fill(byte[], int, int, byte);
+ method public static void fill(long[], long);
+ method public static void fill(long[], int, int, long);
+ method public static void fill(int[], int);
+ method public static void fill(int[], int, int, int);
method public static void fill(short[], short);
method public static void fill(short[], int, int, short);
method public static void fill(char[], char);
method public static void fill(char[], int, int, char);
- method public static void fill(int[], int);
- method public static void fill(int[], int, int, int);
- method public static void fill(long[], long);
- method public static void fill(long[], int, int, long);
- method public static void fill(float[], float);
- method public static void fill(float[], int, int, float);
- method public static void fill(double[], double);
- method public static void fill(double[], int, int, double);
+ method public static void fill(byte[], byte);
+ method public static void fill(byte[], int, int, byte);
method public static void fill(boolean[], boolean);
method public static void fill(boolean[], int, int, boolean);
+ method public static void fill(double[], double);
+ method public static void fill(double[], int, int, double);
+ method public static void fill(float[], float);
+ method public static void fill(float[], int, int, float);
method public static void fill(java.lang.Object[], java.lang.Object);
method public static void fill(java.lang.Object[], int, int, java.lang.Object);
- method public static int hashCode(boolean[]);
+ method public static int hashCode(long[]);
method public static int hashCode(int[]);
method public static int hashCode(short[]);
method public static int hashCode(char[]);
method public static int hashCode(byte[]);
- method public static int hashCode(long[]);
+ method public static int hashCode(boolean[]);
method public static int hashCode(float[]);
method public static int hashCode(double[]);
method public static int hashCode(java.lang.Object[]);
- method public static void sort(byte[]);
- method public static void sort(byte[], int, int);
- method public static void sort(char[]);
- method public static void sort(char[], int, int);
- method public static void sort(double[]);
- method public static void sort(double[], int, int);
- method public static void sort(float[]);
- method public static void sort(float[], int, int);
method public static void sort(int[]);
method public static void sort(int[], int, int);
method public static void sort(long[]);
method public static void sort(long[], int, int);
method public static void sort(short[]);
method public static void sort(short[], int, int);
+ method public static void sort(char[]);
+ method public static void sort(char[], int, int);
+ method public static void sort(byte[]);
+ method public static void sort(byte[], int, int);
+ method public static void sort(float[]);
+ method public static void sort(float[], int, int);
+ method public static void sort(double[]);
+ method public static void sort(double[], int, int);
method public static void sort(java.lang.Object[]);
method public static void sort(java.lang.Object[], int, int);
- method public static void sort(T[], int, int, java.util.Comparator<? super T>);
method public static void sort(T[], java.util.Comparator<? super T>);
- method public static java.lang.String toString(boolean[]);
- method public static java.lang.String toString(byte[]);
- method public static java.lang.String toString(char[]);
- method public static java.lang.String toString(double[]);
- method public static java.lang.String toString(float[]);
- method public static java.lang.String toString(int[]);
+ method public static void sort(T[], int, int, java.util.Comparator<? super T>);
method public static java.lang.String toString(long[]);
+ method public static java.lang.String toString(int[]);
method public static java.lang.String toString(short[]);
+ method public static java.lang.String toString(char[]);
+ method public static java.lang.String toString(byte[]);
+ method public static java.lang.String toString(boolean[]);
+ method public static java.lang.String toString(float[]);
+ method public static java.lang.String toString(double[]);
method public static java.lang.String toString(java.lang.Object[]);
}
@@ -57313,8 +58382,8 @@
method public void andNot(java.util.BitSet);
method public int cardinality();
method public void clear(int);
- method public void clear();
method public void clear(int, int);
+ method public void clear();
method public java.lang.Object clone();
method public void flip(int);
method public void flip(int, int);
@@ -57330,8 +58399,8 @@
method public int previousSetBit(int);
method public void set(int);
method public void set(int, boolean);
- method public void set(int, int, boolean);
method public void set(int, int);
+ method public void set(int, int, boolean);
method public int size();
method public byte[] toByteArray();
method public long[] toLongArray();
@@ -57363,10 +58432,10 @@
method public java.util.Map<java.lang.String, java.lang.Integer> getDisplayNames(int, int, java.util.Locale);
method public int getFirstDayOfWeek();
method public abstract int getGreatestMinimum(int);
- method public static synchronized java.util.Calendar getInstance();
- method public static synchronized java.util.Calendar getInstance(java.util.Locale);
- method public static synchronized java.util.Calendar getInstance(java.util.TimeZone);
- method public static synchronized java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
+ method public static java.util.Calendar getInstance();
+ method public static java.util.Calendar getInstance(java.util.TimeZone);
+ method public static java.util.Calendar getInstance(java.util.Locale);
+ method public static java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
method public abstract int getLeastMaximum(int);
method public abstract int getMaximum(int);
method public int getMinimalDaysInFirstWeek();
@@ -57374,11 +58443,14 @@
method public final java.util.Date getTime();
method public long getTimeInMillis();
method public java.util.TimeZone getTimeZone();
+ method public int getWeekYear();
+ method public int getWeeksInWeekYear();
method protected final int internalGet(int);
method public boolean isLenient();
method public final boolean isSet(int);
- method public void roll(int, int);
+ method public boolean isWeekDateSupported();
method public abstract void roll(int, boolean);
+ method public void roll(int, int);
method public void set(int, int);
method public final void set(int, int, int);
method public final void set(int, int, int, int, int);
@@ -57389,6 +58461,7 @@
method public final void setTime(java.util.Date);
method public void setTimeInMillis(long);
method public void setTimeZone(java.util.TimeZone);
+ method public void setWeekDate(int, int, int);
field public static final int ALL_STYLES = 0; // 0x0
field public static final int AM = 0; // 0x0
field public static final int AM_PM = 9; // 0x9
@@ -57505,15 +58578,15 @@
method public static java.util.Collection<T> synchronizedCollection(java.util.Collection<T>);
method public static java.util.List<T> synchronizedList(java.util.List<T>);
method public static java.util.Map<K, V> synchronizedMap(java.util.Map<K, V>);
- method public static java.util.Set<E> synchronizedSet(java.util.Set<E>);
+ method public static java.util.Set<T> synchronizedSet(java.util.Set<T>);
method public static java.util.SortedMap<K, V> synchronizedSortedMap(java.util.SortedMap<K, V>);
- method public static java.util.SortedSet<E> synchronizedSortedSet(java.util.SortedSet<E>);
- method public static java.util.Collection<E> unmodifiableCollection(java.util.Collection<? extends E>);
- method public static java.util.List<E> unmodifiableList(java.util.List<? extends E>);
+ method public static java.util.SortedSet<T> synchronizedSortedSet(java.util.SortedSet<T>);
+ method public static java.util.Collection<T> unmodifiableCollection(java.util.Collection<? extends T>);
+ method public static java.util.List<T> unmodifiableList(java.util.List<? extends T>);
method public static java.util.Map<K, V> unmodifiableMap(java.util.Map<? extends K, ? extends V>);
- method public static java.util.Set<E> unmodifiableSet(java.util.Set<? extends E>);
+ method public static java.util.Set<T> unmodifiableSet(java.util.Set<? extends T>);
method public static java.util.SortedMap<K, V> unmodifiableSortedMap(java.util.SortedMap<K, ? extends V>);
- method public static java.util.SortedSet<E> unmodifiableSortedSet(java.util.SortedSet<E>);
+ method public static java.util.SortedSet<T> unmodifiableSortedSet(java.util.SortedSet<T>);
field public static final java.util.List EMPTY_LIST;
field public static final java.util.Map EMPTY_MAP;
field public static final java.util.Set EMPTY_SET;
@@ -57527,8 +58600,8 @@
public class ConcurrentModificationException extends java.lang.RuntimeException {
ctor public ConcurrentModificationException();
ctor public ConcurrentModificationException(java.lang.String);
- ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
ctor public ConcurrentModificationException(java.lang.Throwable);
+ ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
}
public final class Currency implements java.io.Serializable {
@@ -57539,16 +58612,17 @@
method public java.lang.String getDisplayName(java.util.Locale);
method public static java.util.Currency getInstance(java.lang.String);
method public static java.util.Currency getInstance(java.util.Locale);
+ method public int getNumericCode();
method public java.lang.String getSymbol();
method public java.lang.String getSymbol(java.util.Locale);
}
public class Date implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
ctor public Date();
+ ctor public Date(long);
ctor public deprecated Date(int, int, int);
ctor public deprecated Date(int, int, int, int, int);
ctor public deprecated Date(int, int, int, int, int, int);
- ctor public Date(long);
ctor public deprecated Date(java.lang.String);
method public static deprecated long UTC(int, int, int, int, int, int);
method public boolean after(java.util.Date);
@@ -57626,7 +58700,7 @@
ctor public EmptyStackException();
}
- public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
+ public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
ctor public EnumMap(java.lang.Class<K>);
ctor public EnumMap(java.util.EnumMap<K, ? extends V>);
ctor public EnumMap(java.util.Map<K, ? extends V>);
@@ -57659,8 +58733,8 @@
}
public abstract class EventListenerProxy implements java.util.EventListener {
- ctor public EventListenerProxy(java.util.EventListener);
- method public java.util.EventListener getListener();
+ ctor public EventListenerProxy(T);
+ method public T getListener();
}
public class EventObject implements java.io.Serializable {
@@ -57669,14 +58743,14 @@
field protected transient java.lang.Object source;
}
- public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException {
ctor public FormatFlagsConversionMismatchException(java.lang.String, char);
method public char getConversion();
method public java.lang.String getFlags();
}
public abstract interface Formattable {
- method public abstract void formatTo(java.util.Formatter, int, int, int) throws java.util.IllegalFormatException;
+ method public abstract void formatTo(java.util.Formatter, int, int, int);
}
public class FormattableFlags {
@@ -57696,10 +58770,10 @@
ctor public Formatter(java.io.File) throws java.io.FileNotFoundException;
ctor public Formatter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
ctor public Formatter(java.io.File, java.lang.String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+ ctor public Formatter(java.io.PrintStream);
ctor public Formatter(java.io.OutputStream);
ctor public Formatter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
ctor public Formatter(java.io.OutputStream, java.lang.String, java.util.Locale) throws java.io.UnsupportedEncodingException;
- ctor public Formatter(java.io.PrintStream);
method public void close();
method public void flush();
method public java.util.Formatter format(java.lang.String, java.lang.Object...);
@@ -57716,18 +58790,18 @@
enum_constant public static final java.util.Formatter.BigDecimalLayoutForm SCIENTIFIC;
}
- public class FormatterClosedException extends java.lang.IllegalStateException implements java.io.Serializable {
+ public class FormatterClosedException extends java.lang.IllegalStateException {
ctor public FormatterClosedException();
}
public class GregorianCalendar extends java.util.Calendar {
ctor public GregorianCalendar();
+ ctor public GregorianCalendar(java.util.TimeZone);
+ ctor public GregorianCalendar(java.util.Locale);
+ ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
ctor public GregorianCalendar(int, int, int);
ctor public GregorianCalendar(int, int, int, int, int);
ctor public GregorianCalendar(int, int, int, int, int, int);
- ctor public GregorianCalendar(java.util.Locale);
- ctor public GregorianCalendar(java.util.TimeZone);
- ctor public GregorianCalendar(java.util.TimeZone, java.util.Locale);
method public void add(int, int);
method protected void computeFields();
method protected void computeTime();
@@ -57737,16 +58811,17 @@
method public int getMaximum(int);
method public int getMinimum(int);
method public boolean isLeapYear(int);
+ method public final boolean isWeekDateSupported();
method public void roll(int, boolean);
method public void setGregorianChange(java.util.Date);
field public static final int AD = 1; // 0x1
field public static final int BC = 0; // 0x0
}
- public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
- ctor public HashMap();
- ctor public HashMap(int);
+ public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
ctor public HashMap(int, float);
+ ctor public HashMap(int);
+ ctor public HashMap();
ctor public HashMap(java.util.Map<? extends K, ? extends V>);
method public java.lang.Object clone();
method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
@@ -57754,36 +58829,36 @@
public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
ctor public HashSet();
- ctor public HashSet(int);
- ctor public HashSet(int, float);
ctor public HashSet(java.util.Collection<? extends E>);
+ ctor public HashSet(int, float);
+ ctor public HashSet(int);
method public java.lang.Object clone();
method public java.util.Iterator<E> iterator();
method public int size();
}
public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable {
- ctor public Hashtable();
- ctor public Hashtable(int);
ctor public Hashtable(int, float);
+ ctor public Hashtable(int);
+ ctor public Hashtable();
ctor public Hashtable(java.util.Map<? extends K, ? extends V>);
method public synchronized void clear();
method public synchronized java.lang.Object clone();
- method public boolean contains(java.lang.Object);
+ method public synchronized boolean contains(java.lang.Object);
method public synchronized boolean containsKey(java.lang.Object);
- method public synchronized boolean containsValue(java.lang.Object);
+ method public boolean containsValue(java.lang.Object);
method public synchronized java.util.Enumeration<V> elements();
- method public synchronized java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+ method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
method public synchronized V get(java.lang.Object);
method public synchronized boolean isEmpty();
- method public synchronized java.util.Set<K> keySet();
+ method public java.util.Set<K> keySet();
method public synchronized java.util.Enumeration<K> keys();
method public synchronized V put(K, V);
method public synchronized void putAll(java.util.Map<? extends K, ? extends V>);
method protected void rehash();
method public synchronized V remove(java.lang.Object);
method public synchronized int size();
- method public synchronized java.util.Collection<V> values();
+ method public java.util.Collection<V> values();
}
public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
@@ -57794,21 +58869,21 @@
method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
}
- public class IllegalFormatCodePointException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class IllegalFormatCodePointException extends java.util.IllegalFormatException {
ctor public IllegalFormatCodePointException(int);
method public int getCodePoint();
}
- public class IllegalFormatConversionException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class IllegalFormatConversionException extends java.util.IllegalFormatException {
ctor public IllegalFormatConversionException(char, java.lang.Class<?>);
method public java.lang.Class<?> getArgumentClass();
method public char getConversion();
}
- public class IllegalFormatException extends java.lang.IllegalArgumentException implements java.io.Serializable {
+ public class IllegalFormatException extends java.lang.IllegalArgumentException {
}
- public class IllegalFormatFlagsException extends java.util.IllegalFormatException implements java.io.Serializable {
+ public class IllegalFormatFlagsException extends java.util.IllegalFormatException {
ctor public IllegalFormatFlagsException(java.lang.String);
method public java.lang.String getFlags();
}
@@ -57830,14 +58905,14 @@
method public int getErrorIndex();
}
- public class InputMismatchException extends java.util.NoSuchElementException implements java.io.Serializable {
+ public class InputMismatchException extends java.util.NoSuchElementException {
ctor public InputMismatchException();
ctor public InputMismatchException(java.lang.String);
}
public class InvalidPropertiesFormatException extends java.io.IOException {
- ctor public InvalidPropertiesFormatException(java.lang.String);
ctor public InvalidPropertiesFormatException(java.lang.Throwable);
+ ctor public InvalidPropertiesFormatException(java.lang.String);
}
public abstract interface Iterator {
@@ -57846,23 +58921,23 @@
method public abstract void remove();
}
- public class LinkedHashMap extends java.util.HashMap {
- ctor public LinkedHashMap();
- ctor public LinkedHashMap(int);
+ public class LinkedHashMap extends java.util.HashMap implements java.util.Map {
ctor public LinkedHashMap(int, float);
- ctor public LinkedHashMap(int, float, boolean);
+ ctor public LinkedHashMap(int);
+ ctor public LinkedHashMap();
ctor public LinkedHashMap(java.util.Map<? extends K, ? extends V>);
+ ctor public LinkedHashMap(int, float, boolean);
method protected boolean removeEldestEntry(java.util.Map.Entry<K, V>);
}
public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
- ctor public LinkedHashSet();
- ctor public LinkedHashSet(int);
ctor public LinkedHashSet(int, float);
+ ctor public LinkedHashSet(int);
+ ctor public LinkedHashSet();
ctor public LinkedHashSet(java.util.Collection<? extends E>);
}
- public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.util.Queue java.io.Serializable {
+ public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable {
ctor public LinkedList();
ctor public LinkedList(java.util.Collection<? extends E>);
method public void addFirst(E);
@@ -57893,10 +58968,10 @@
}
public abstract interface List implements java.util.Collection {
- method public abstract void add(int, E);
method public abstract boolean add(E);
- method public abstract boolean addAll(int, java.util.Collection<? extends E>);
+ method public abstract void add(int, E);
method public abstract boolean addAll(java.util.Collection<? extends E>);
+ method public abstract boolean addAll(int, java.util.Collection<? extends E>);
method public abstract void clear();
method public abstract boolean contains(java.lang.Object);
method public abstract boolean containsAll(java.util.Collection<?>);
@@ -57909,8 +58984,8 @@
method public abstract int lastIndexOf(java.lang.Object);
method public abstract java.util.ListIterator<E> listIterator();
method public abstract java.util.ListIterator<E> listIterator(int);
- method public abstract E remove(int);
method public abstract boolean remove(java.lang.Object);
+ method public abstract E remove(int);
method public abstract boolean removeAll(java.util.Collection<?>);
method public abstract boolean retainAll(java.util.Collection<?>);
method public abstract E set(int, E);
@@ -57940,14 +59015,15 @@
}
public final class Locale implements java.lang.Cloneable java.io.Serializable {
- ctor public Locale(java.lang.String);
- ctor public Locale(java.lang.String, java.lang.String);
ctor public Locale(java.lang.String, java.lang.String, java.lang.String);
+ ctor public Locale(java.lang.String, java.lang.String);
+ ctor public Locale(java.lang.String);
method public java.lang.Object clone();
method public static java.util.Locale forLanguageTag(java.lang.String);
method public static java.util.Locale[] getAvailableLocales();
method public java.lang.String getCountry();
method public static java.util.Locale getDefault();
+ method public static java.util.Locale getDefault(java.util.Locale.Category);
method public final java.lang.String getDisplayCountry();
method public java.lang.String getDisplayCountry(java.util.Locale);
method public final java.lang.String getDisplayLanguage();
@@ -57960,8 +59036,8 @@
method public java.lang.String getDisplayVariant(java.util.Locale);
method public java.lang.String getExtension(char);
method public java.util.Set<java.lang.Character> getExtensionKeys();
- method public java.lang.String getISO3Country();
- method public java.lang.String getISO3Language();
+ method public java.lang.String getISO3Country() throws java.util.MissingResourceException;
+ method public java.lang.String getISO3Language() throws java.util.MissingResourceException;
method public static java.lang.String[] getISOCountries();
method public static java.lang.String[] getISOLanguages();
method public java.lang.String getLanguage();
@@ -57971,6 +59047,7 @@
method public java.lang.String getUnicodeLocaleType(java.lang.String);
method public java.lang.String getVariant();
method public static synchronized void setDefault(java.util.Locale);
+ method public static synchronized void setDefault(java.util.Locale.Category, java.util.Locale);
method public java.lang.String toLanguageTag();
method public final java.lang.String toString();
field public static final java.util.Locale CANADA;
@@ -58016,6 +59093,13 @@
method public java.util.Locale.Builder setVariant(java.lang.String);
}
+ public static final class Locale.Category extends java.lang.Enum {
+ method public static java.util.Locale.Category valueOf(java.lang.String);
+ method public static final java.util.Locale.Category[] values();
+ enum_constant public static final java.util.Locale.Category DISPLAY;
+ enum_constant public static final java.util.Locale.Category FORMAT;
+ }
+
public abstract interface Map {
method public abstract void clear();
method public abstract boolean containsKey(java.lang.Object);
@@ -58118,15 +59202,15 @@
public class Observable {
ctor public Observable();
- method public void addObserver(java.util.Observer);
- method protected void clearChanged();
- method public int countObservers();
+ method public synchronized void addObserver(java.util.Observer);
+ method protected synchronized void clearChanged();
+ method public synchronized int countObservers();
method public synchronized void deleteObserver(java.util.Observer);
method public synchronized void deleteObservers();
- method public boolean hasChanged();
+ method public synchronized boolean hasChanged();
method public void notifyObservers();
method public void notifyObservers(java.lang.Object);
- method protected void setChanged();
+ method protected synchronized void setChanged();
}
public abstract interface Observer {
@@ -58155,16 +59239,16 @@
method public java.lang.String getProperty(java.lang.String, java.lang.String);
method public void list(java.io.PrintStream);
method public void list(java.io.PrintWriter);
- method public synchronized void load(java.io.InputStream) throws java.io.IOException;
method public synchronized void load(java.io.Reader) throws java.io.IOException;
+ method public synchronized void load(java.io.InputStream) throws java.io.IOException;
method public synchronized void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
method public java.util.Enumeration<?> propertyNames();
method public deprecated void save(java.io.OutputStream, java.lang.String);
- method public java.lang.Object setProperty(java.lang.String, java.lang.String);
- method public synchronized void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
- method public synchronized void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+ method public synchronized java.lang.Object setProperty(java.lang.String, java.lang.String);
+ method public void store(java.io.Writer, java.lang.String) throws java.io.IOException;
+ method public void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
method public void storeToXML(java.io.OutputStream, java.lang.String) throws java.io.IOException;
- method public synchronized void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
+ method public void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
method public java.util.Set<java.lang.String> stringPropertyNames();
field protected java.util.Properties defaults;
}
@@ -58192,7 +59276,7 @@
public class Random implements java.io.Serializable {
ctor public Random();
ctor public Random(long);
- method protected synchronized int next(int);
+ method protected int next(int);
method public boolean nextBoolean();
method public void nextBytes(byte[]);
method public double nextDouble();
@@ -58209,14 +59293,14 @@
public abstract class ResourceBundle {
ctor public ResourceBundle();
- method public static void clearCache();
- method public static void clearCache(java.lang.ClassLoader);
+ method public static final void clearCache();
+ method public static final void clearCache(java.lang.ClassLoader);
method public boolean containsKey(java.lang.String);
- method public static java.util.ResourceBundle getBundle(java.lang.String) throws java.util.MissingResourceException;
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) throws java.util.MissingResourceException;
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
- method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
+ method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
+ method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader);
method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle.Control);
method public abstract java.util.Enumeration<java.lang.String> getKeys();
method public java.util.Locale getLocale();
@@ -58233,10 +59317,10 @@
public static class ResourceBundle.Control {
ctor protected ResourceBundle.Control();
method public java.util.List<java.util.Locale> getCandidateLocales(java.lang.String, java.util.Locale);
- method public static java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
+ method public static final java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
method public java.util.Locale getFallbackLocale(java.lang.String, java.util.Locale);
method public java.util.List<java.lang.String> getFormats(java.lang.String);
- method public static java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
+ method public static final java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
method public long getTimeToLive(java.lang.String, java.util.Locale);
method public boolean needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long);
method public java.util.ResourceBundle newBundle(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, boolean) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException;
@@ -58250,23 +59334,25 @@
}
public final class Scanner implements java.io.Closeable java.util.Iterator {
- ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
- ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
- ctor public Scanner(java.lang.String);
+ ctor public Scanner(java.lang.Readable);
ctor public Scanner(java.io.InputStream);
ctor public Scanner(java.io.InputStream, java.lang.String);
- ctor public Scanner(java.lang.Readable);
+ ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
+ ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
+ ctor public Scanner(java.nio.file.Path) throws java.io.IOException;
+ ctor public Scanner(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+ ctor public Scanner(java.lang.String);
ctor public Scanner(java.nio.channels.ReadableByteChannel);
ctor public Scanner(java.nio.channels.ReadableByteChannel, java.lang.String);
method public void close();
method public java.util.regex.Pattern delimiter();
- method public java.lang.String findInLine(java.util.regex.Pattern);
method public java.lang.String findInLine(java.lang.String);
- method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
+ method public java.lang.String findInLine(java.util.regex.Pattern);
method public java.lang.String findWithinHorizon(java.lang.String, int);
+ method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
method public boolean hasNext();
- method public boolean hasNext(java.util.regex.Pattern);
method public boolean hasNext(java.lang.String);
+ method public boolean hasNext(java.util.regex.Pattern);
method public boolean hasNextBigDecimal();
method public boolean hasNextBigInteger();
method public boolean hasNextBigInteger(int);
@@ -58286,8 +59372,8 @@
method public java.util.Locale locale();
method public java.util.regex.MatchResult match();
method public java.lang.String next();
- method public java.lang.String next(java.util.regex.Pattern);
method public java.lang.String next(java.lang.String);
+ method public java.lang.String next(java.util.regex.Pattern);
method public java.math.BigDecimal nextBigDecimal();
method public java.math.BigInteger nextBigInteger();
method public java.math.BigInteger nextBigInteger(int);
@@ -58354,12 +59440,12 @@
method public int getRawOffset();
method public boolean inDaylightTime(java.util.Date);
method public void setDSTSavings(int);
- method public void setEndRule(int, int, int);
method public void setEndRule(int, int, int, int);
+ method public void setEndRule(int, int, int);
method public void setEndRule(int, int, int, int, boolean);
method public void setRawOffset(int);
- method public void setStartRule(int, int, int);
method public void setStartRule(int, int, int, int);
+ method public void setStartRule(int, int, int);
method public void setStartRule(int, int, int, int, boolean);
method public void setStartYear(int);
method public boolean useDaylightTime();
@@ -58370,11 +59456,14 @@
public abstract interface SortedMap implements java.util.Map {
method public abstract java.util.Comparator<? super K> comparator();
+ method public abstract java.util.Set<java.util.Map.Entry<K, V>> entrySet();
method public abstract K firstKey();
method public abstract java.util.SortedMap<K, V> headMap(K);
+ method public abstract java.util.Set<K> keySet();
method public abstract K lastKey();
method public abstract java.util.SortedMap<K, V> subMap(K, K);
method public abstract java.util.SortedMap<K, V> tailMap(K);
+ method public abstract java.util.Collection<V> values();
}
public abstract interface SortedSet implements java.util.Set {
@@ -58396,9 +59485,9 @@
}
public class StringTokenizer implements java.util.Enumeration {
- ctor public StringTokenizer(java.lang.String);
- ctor public StringTokenizer(java.lang.String, java.lang.String);
ctor public StringTokenizer(java.lang.String, java.lang.String, boolean);
+ ctor public StringTokenizer(java.lang.String, java.lang.String);
+ ctor public StringTokenizer(java.lang.String);
method public int countTokens();
method public boolean hasMoreElements();
method public boolean hasMoreTokens();
@@ -58410,21 +59499,22 @@
public abstract class TimeZone implements java.lang.Cloneable java.io.Serializable {
ctor public TimeZone();
method public java.lang.Object clone();
- method public static synchronized java.lang.String[] getAvailableIDs();
method public static synchronized java.lang.String[] getAvailableIDs(int);
+ method public static synchronized java.lang.String[] getAvailableIDs();
method public int getDSTSavings();
- method public static synchronized java.util.TimeZone getDefault();
+ method public static java.util.TimeZone getDefault();
method public final java.lang.String getDisplayName();
method public final java.lang.String getDisplayName(java.util.Locale);
method public final java.lang.String getDisplayName(boolean, int);
method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
method public java.lang.String getID();
- method public int getOffset(long);
method public abstract int getOffset(int, int, int, int, int, int);
+ method public int getOffset(long);
method public abstract int getRawOffset();
method public static synchronized java.util.TimeZone getTimeZone(java.lang.String);
method public boolean hasSameRules(java.util.TimeZone);
method public abstract boolean inDaylightTime(java.util.Date);
+ method public boolean observesDaylightTime();
method public static synchronized void setDefault(java.util.TimeZone);
method public void setID(java.lang.String);
method public abstract void setRawOffset(int);
@@ -58434,14 +59524,14 @@
}
public class Timer {
- ctor public Timer(java.lang.String, boolean);
- ctor public Timer(java.lang.String);
- ctor public Timer(boolean);
ctor public Timer();
+ ctor public Timer(boolean);
+ ctor public Timer(java.lang.String);
+ ctor public Timer(java.lang.String, boolean);
method public void cancel();
method public int purge();
- method public void schedule(java.util.TimerTask, java.util.Date);
method public void schedule(java.util.TimerTask, long);
+ method public void schedule(java.util.TimerTask, java.util.Date);
method public void schedule(java.util.TimerTask, long, long);
method public void schedule(java.util.TimerTask, java.util.Date, long);
method public void scheduleAtFixedRate(java.util.TimerTask, long, long);
@@ -58460,10 +59550,10 @@
ctor public TooManyListenersException(java.lang.String);
}
- public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable java.util.SortedMap {
+ public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable {
ctor public TreeMap();
- ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
ctor public TreeMap(java.util.Comparator<? super K>);
+ ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
ctor public TreeMap(java.util.SortedMap<K, ? extends V>);
method public java.util.Map.Entry<K, V> ceilingEntry(K);
method public K ceilingKey(K);
@@ -58495,8 +59585,8 @@
public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable {
ctor public TreeSet();
- ctor public TreeSet(java.util.Collection<? extends E>);
ctor public TreeSet(java.util.Comparator<? super E>);
+ ctor public TreeSet(java.util.Collection<? extends E>);
ctor public TreeSet(java.util.SortedSet<E>);
method public E ceiling(E);
method public java.lang.Object clone();
@@ -58546,9 +59636,9 @@
}
public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
- ctor public Vector();
- ctor public Vector(int);
ctor public Vector(int, int);
+ ctor public Vector(int);
+ ctor public Vector();
ctor public Vector(java.util.Collection<? extends E>);
method public synchronized void addElement(E);
method public synchronized int capacity();
@@ -58558,7 +59648,7 @@
method public java.util.Enumeration<E> elements();
method public synchronized void ensureCapacity(int);
method public synchronized E firstElement();
- method public E get(int);
+ method public synchronized E get(int);
method public synchronized int indexOf(java.lang.Object, int);
method public synchronized void insertElementAt(E, int);
method public synchronized E lastElement();
@@ -58576,9 +59666,9 @@
}
public class WeakHashMap extends java.util.AbstractMap implements java.util.Map {
- ctor public WeakHashMap();
- ctor public WeakHashMap(int);
ctor public WeakHashMap(int, float);
+ ctor public WeakHashMap(int);
+ ctor public WeakHashMap();
ctor public WeakHashMap(java.util.Map<? extends K, ? extends V>);
method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
}
@@ -59816,16 +60906,16 @@
public class Attributes implements java.lang.Cloneable java.util.Map {
ctor public Attributes();
- ctor public Attributes(java.util.jar.Attributes);
ctor public Attributes(int);
+ ctor public Attributes(java.util.jar.Attributes);
method public void clear();
method public java.lang.Object clone();
method public boolean containsKey(java.lang.Object);
method public boolean containsValue(java.lang.Object);
method public java.util.Set<java.util.Map.Entry<java.lang.Object, java.lang.Object>> entrySet();
method public java.lang.Object get(java.lang.Object);
- method public java.lang.String getValue(java.util.jar.Attributes.Name);
method public java.lang.String getValue(java.lang.String);
+ method public java.lang.String getValue(java.util.jar.Attributes.Name);
method public boolean isEmpty();
method public java.util.Set<java.lang.Object> keySet();
method public java.lang.Object put(java.lang.Object, java.lang.Object);
@@ -59873,19 +60963,20 @@
}
public class JarFile extends java.util.zip.ZipFile {
+ ctor public JarFile(java.lang.String) throws java.io.IOException;
+ ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
ctor public JarFile(java.io.File) throws java.io.IOException;
ctor public JarFile(java.io.File, boolean) throws java.io.IOException;
ctor public JarFile(java.io.File, boolean, int) throws java.io.IOException;
- ctor public JarFile(java.lang.String) throws java.io.IOException;
- ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
method public java.util.jar.JarEntry getJarEntry(java.lang.String);
method public java.util.jar.Manifest getManifest() throws java.io.IOException;
+ method public boolean hasClassPathAttribute() throws java.io.IOException;
field public static final java.lang.String MANIFEST_NAME = "META-INF/MANIFEST.MF";
}
public class JarInputStream extends java.util.zip.ZipInputStream {
- ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
ctor public JarInputStream(java.io.InputStream) throws java.io.IOException;
+ ctor public JarInputStream(java.io.InputStream, boolean) throws java.io.IOException;
method public java.util.jar.Manifest getManifest();
method public java.util.jar.JarEntry getNextJarEntry() throws java.io.IOException;
}
@@ -59909,7 +61000,7 @@
}
public abstract class Pack200 {
- method public static java.util.jar.Pack200.Packer newPacker();
+ method public static synchronized java.util.jar.Pack200.Packer newPacker();
method public static java.util.jar.Pack200.Unpacker newUnpacker();
}
@@ -59963,7 +61054,7 @@
public class ErrorManager {
ctor public ErrorManager();
- method public void error(java.lang.String, java.lang.Exception, int);
+ method public synchronized void error(java.lang.String, java.lang.Exception, int);
field public static final int CLOSE_FAILURE = 3; // 0x3
field public static final int FLUSH_FAILURE = 2; // 0x2
field public static final int FORMAT_FAILURE = 5; // 0x5
@@ -59973,11 +61064,11 @@
}
public class FileHandler extends java.util.logging.StreamHandler {
- ctor public FileHandler() throws java.io.IOException;
- ctor public FileHandler(java.lang.String) throws java.io.IOException;
- ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException;
- ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException;
- ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException;
+ ctor public FileHandler() throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String) throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException, java.lang.SecurityException;
+ ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException, java.lang.SecurityException;
}
public abstract interface Filter {
@@ -59987,28 +61078,28 @@
public abstract class Formatter {
ctor protected Formatter();
method public abstract java.lang.String format(java.util.logging.LogRecord);
- method public java.lang.String formatMessage(java.util.logging.LogRecord);
+ method public synchronized java.lang.String formatMessage(java.util.logging.LogRecord);
method public java.lang.String getHead(java.util.logging.Handler);
method public java.lang.String getTail(java.util.logging.Handler);
}
public abstract class Handler {
ctor protected Handler();
- method public abstract void close();
+ method public abstract void close() throws java.lang.SecurityException;
method public abstract void flush();
method public java.lang.String getEncoding();
method public java.util.logging.ErrorManager getErrorManager();
method public java.util.logging.Filter getFilter();
method public java.util.logging.Formatter getFormatter();
- method public java.util.logging.Level getLevel();
+ method public synchronized java.util.logging.Level getLevel();
method public boolean isLoggable(java.util.logging.LogRecord);
method public abstract void publish(java.util.logging.LogRecord);
method protected void reportError(java.lang.String, java.lang.Exception, int);
- method public void setEncoding(java.lang.String) throws java.io.UnsupportedEncodingException;
+ method public void setEncoding(java.lang.String) throws java.lang.SecurityException, java.io.UnsupportedEncodingException;
method public void setErrorManager(java.util.logging.ErrorManager);
- method public void setFilter(java.util.logging.Filter);
- method public void setFormatter(java.util.logging.Formatter);
- method public void setLevel(java.util.logging.Level);
+ method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+ method public void setFormatter(java.util.logging.Formatter) throws java.lang.SecurityException;
+ method public synchronized void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
}
public class Level implements java.io.Serializable {
@@ -60018,7 +61109,7 @@
method public java.lang.String getName();
method public java.lang.String getResourceBundleName();
method public final int intValue();
- method public static java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
+ method public static synchronized java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
method public final java.lang.String toString();
field public static final java.util.logging.Level ALL;
field public static final java.util.logging.Level CONFIG;
@@ -60033,18 +61124,18 @@
public class LogManager {
ctor protected LogManager();
- method public synchronized boolean addLogger(java.util.logging.Logger);
- method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
- method public void checkAccess();
+ method public boolean addLogger(java.util.logging.Logger);
+ method public void addPropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+ method public void checkAccess() throws java.lang.SecurityException;
method public static java.util.logging.LogManager getLogManager();
- method public synchronized java.util.logging.Logger getLogger(java.lang.String);
- method public synchronized java.util.Enumeration<java.lang.String> getLoggerNames();
- method public static java.util.logging.LoggingMXBean getLoggingMXBean();
+ method public java.util.logging.Logger getLogger(java.lang.String);
+ method public java.util.Enumeration<java.lang.String> getLoggerNames();
+ method public static synchronized java.util.logging.LoggingMXBean getLoggingMXBean();
method public java.lang.String getProperty(java.lang.String);
- method public void readConfiguration() throws java.io.IOException;
- method public void readConfiguration(java.io.InputStream) throws java.io.IOException;
- method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
- method public synchronized void reset();
+ method public void readConfiguration() throws java.io.IOException, java.lang.SecurityException;
+ method public void readConfiguration(java.io.InputStream) throws java.io.IOException, java.lang.SecurityException;
+ method public void removePropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+ method public void reset() throws java.lang.SecurityException;
field public static final java.lang.String LOGGING_MXBEAN_NAME = "java.util.logging:type=Logging";
}
@@ -60078,7 +61169,7 @@
public class Logger {
ctor protected Logger(java.lang.String, java.lang.String);
- method public void addHandler(java.util.logging.Handler);
+ method public void addHandler(java.util.logging.Handler) throws java.lang.SecurityException;
method public void config(java.lang.String);
method public void entering(java.lang.String, java.lang.String);
method public void entering(java.lang.String, java.lang.String, java.lang.Object);
@@ -60091,7 +61182,7 @@
method public static java.util.logging.Logger getAnonymousLogger();
method public static java.util.logging.Logger getAnonymousLogger(java.lang.String);
method public java.util.logging.Filter getFilter();
- method public static java.util.logging.Logger getGlobal();
+ method public static final java.util.logging.Logger getGlobal();
method public java.util.logging.Handler[] getHandlers();
method public java.util.logging.Level getLevel();
method public static java.util.logging.Logger getLogger(java.lang.String);
@@ -60103,11 +61194,11 @@
method public boolean getUseParentHandlers();
method public void info(java.lang.String);
method public boolean isLoggable(java.util.logging.Level);
+ method public void log(java.util.logging.LogRecord);
method public void log(java.util.logging.Level, java.lang.String);
method public void log(java.util.logging.Level, java.lang.String, java.lang.Object);
method public void log(java.util.logging.Level, java.lang.String, java.lang.Object[]);
method public void log(java.util.logging.Level, java.lang.String, java.lang.Throwable);
- method public void log(java.util.logging.LogRecord);
method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String);
method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
@@ -60116,9 +61207,9 @@
method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
- method public void removeHandler(java.util.logging.Handler);
- method public void setFilter(java.util.logging.Filter);
- method public void setLevel(java.util.logging.Level);
+ method public void removeHandler(java.util.logging.Handler) throws java.lang.SecurityException;
+ method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+ method public void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
method public void setParent(java.util.logging.Logger);
method public void setUseParentHandlers(boolean);
method public void severe(java.lang.String);
@@ -60135,24 +61226,24 @@
method public abstract void setLoggerLevel(java.lang.String, java.lang.String);
}
- public final class LoggingPermission extends java.security.BasicPermission implements java.security.Guard java.io.Serializable {
- ctor public LoggingPermission(java.lang.String, java.lang.String);
+ public final class LoggingPermission extends java.security.BasicPermission {
+ ctor public LoggingPermission(java.lang.String, java.lang.String) throws java.lang.IllegalArgumentException;
}
public class MemoryHandler extends java.util.logging.Handler {
ctor public MemoryHandler();
ctor public MemoryHandler(java.util.logging.Handler, int, java.util.logging.Level);
- method public void close();
+ method public void close() throws java.lang.SecurityException;
method public void flush();
- method public java.util.logging.Level getPushLevel();
+ method public synchronized java.util.logging.Level getPushLevel();
method public synchronized void publish(java.util.logging.LogRecord);
- method public void push();
- method public void setPushLevel(java.util.logging.Level);
+ method public synchronized void push();
+ method public void setPushLevel(java.util.logging.Level) throws java.lang.SecurityException;
}
public class SimpleFormatter extends java.util.logging.Formatter {
ctor public SimpleFormatter();
- method public java.lang.String format(java.util.logging.LogRecord);
+ method public synchronized java.lang.String format(java.util.logging.LogRecord);
}
public class SocketHandler extends java.util.logging.StreamHandler {
@@ -60163,10 +61254,10 @@
public class StreamHandler extends java.util.logging.Handler {
ctor public StreamHandler();
ctor public StreamHandler(java.io.OutputStream, java.util.logging.Formatter);
- method public void close();
- method public void flush();
+ method public synchronized void close() throws java.lang.SecurityException;
+ method public synchronized void flush();
method public synchronized void publish(java.util.logging.LogRecord);
- method protected void setOutputStream(java.io.OutputStream);
+ method protected synchronized void setOutputStream(java.io.OutputStream) throws java.lang.SecurityException;
}
public class XMLFormatter extends java.util.logging.Formatter {
@@ -60236,12 +61327,12 @@
}
public class InvalidPreferencesFormatException extends java.lang.Exception {
+ ctor public InvalidPreferencesFormatException(java.lang.Throwable);
ctor public InvalidPreferencesFormatException(java.lang.String);
ctor public InvalidPreferencesFormatException(java.lang.String, java.lang.Throwable);
- ctor public InvalidPreferencesFormatException(java.lang.Throwable);
}
- public class NodeChangeEvent extends java.util.EventObject implements java.io.Serializable {
+ public class NodeChangeEvent extends java.util.EventObject {
ctor public NodeChangeEvent(java.util.prefs.Preferences, java.util.prefs.Preferences);
method public java.util.prefs.Preferences getChild();
method public java.util.prefs.Preferences getParent();
@@ -60252,7 +61343,7 @@
method public abstract void childRemoved(java.util.prefs.NodeChangeEvent);
}
- public class PreferenceChangeEvent extends java.util.EventObject implements java.io.Serializable {
+ public class PreferenceChangeEvent extends java.util.EventObject {
ctor public PreferenceChangeEvent(java.util.prefs.Preferences, java.lang.String, java.lang.String);
method public java.lang.String getKey();
method public java.lang.String getNewValue();
@@ -60333,8 +61424,8 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
}
public class DeflaterOutputStream extends java.io.FilterOutputStream {
- ctor public DeflaterOutputStream(java.io.OutputStream);
- ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
- ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
- ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
- ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int, boolean);
+ ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, int);
+ ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater, boolean);
+ ctor public DeflaterOutputStream(java.io.OutputStream, java.util.zip.Deflater);
+ ctor public DeflaterOutputStream(java.io.OutputStream, boolean);
+ ctor public DeflaterOutputStream(java.io.OutputStream);
method protected void deflate() throws java.io.IOException;
method public void finish() throws java.io.IOException;
field protected byte[] buf;
@@ -60490,49 +61582,50 @@
}
public class GZIPInputStream extends java.util.zip.InflaterInputStream {
- ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
ctor public GZIPInputStream(java.io.InputStream, int) throws java.io.IOException;
+ ctor public GZIPInputStream(java.io.InputStream) throws java.io.IOException;
field public static final int GZIP_MAGIC = 35615; // 0x8b1f
field protected java.util.zip.CRC32 crc;
field protected boolean eos;
}
public class GZIPOutputStream extends java.util.zip.DeflaterOutputStream {
- ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
- ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
ctor public GZIPOutputStream(java.io.OutputStream, int) throws java.io.IOException;
ctor public GZIPOutputStream(java.io.OutputStream, int, boolean) throws java.io.IOException;
+ ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
+ ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
field protected java.util.zip.CRC32 crc;
}
public class Inflater {
- ctor public Inflater();
ctor public Inflater(boolean);
- method public synchronized void end();
- method public synchronized boolean finished();
- method public synchronized int getAdler();
- method public synchronized long getBytesRead();
- method public synchronized long getBytesWritten();
- method public synchronized int getRemaining();
- method public synchronized int getTotalIn();
- method public synchronized int getTotalOut();
+ ctor public Inflater();
+ method public void end();
+ method public boolean finished();
+ method public int getAdler();
+ method public long getBytesRead();
+ method public long getBytesWritten();
+ method public int getRemaining();
+ method public int getTotalIn();
+ method public int getTotalOut();
+ method public int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
method public int inflate(byte[]) throws java.util.zip.DataFormatException;
- method public synchronized int inflate(byte[], int, int) throws java.util.zip.DataFormatException;
- method public synchronized boolean needsDictionary();
- method public synchronized boolean needsInput();
- method public synchronized void reset();
- method public synchronized void setDictionary(byte[]);
- method public synchronized void setDictionary(byte[], int, int);
- method public synchronized void setInput(byte[]);
- method public synchronized void setInput(byte[], int, int);
+ method public boolean needsDictionary();
+ method public boolean needsInput();
+ method public void reset();
+ method public void setDictionary(byte[], int, int);
+ method public void setDictionary(byte[]);
+ method public void setInput(byte[], int, int);
+ method public void setInput(byte[]);
}
public class InflaterInputStream extends java.io.FilterInputStream {
- ctor public InflaterInputStream(java.io.InputStream);
- ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater, int);
+ ctor public InflaterInputStream(java.io.InputStream, java.util.zip.Inflater);
+ ctor public InflaterInputStream(java.io.InputStream);
method protected void fill() throws java.io.IOException;
field protected byte[] buf;
+ field protected boolean closed;
field protected java.util.zip.Inflater inf;
field protected int len;
}
@@ -60620,9 +61713,12 @@
}
public class ZipFile implements java.io.Closeable {
- ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
ctor public ZipFile(java.lang.String) throws java.io.IOException;
ctor public ZipFile(java.io.File, int) throws java.io.IOException;
+ ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
+ ctor public ZipFile(java.io.File, int, java.nio.charset.Charset) throws java.io.IOException;
+ ctor public ZipFile(java.lang.String, java.nio.charset.Charset) throws java.io.IOException;
+ ctor public ZipFile(java.io.File, java.nio.charset.Charset) throws java.io.IOException;
method public void close() throws java.io.IOException;
method public java.util.Enumeration<? extends java.util.zip.ZipEntry> entries();
method public java.lang.String getComment();
@@ -60676,6 +61772,7 @@
public class ZipInputStream extends java.util.zip.InflaterInputStream {
ctor public ZipInputStream(java.io.InputStream);
+ ctor public ZipInputStream(java.io.InputStream, java.nio.charset.Charset);
method public void closeEntry() throws java.io.IOException;
method protected java.util.zip.ZipEntry createZipEntry(java.lang.String);
method public java.util.zip.ZipEntry getNextEntry() throws java.io.IOException;
@@ -60723,6 +61820,7 @@
public class ZipOutputStream extends java.util.zip.DeflaterOutputStream {
ctor public ZipOutputStream(java.io.OutputStream);
+ ctor public ZipOutputStream(java.io.OutputStream, java.nio.charset.Charset);
method public void closeEntry() throws java.io.IOException;
method public void putNextEntry(java.util.zip.ZipEntry) throws java.io.IOException;
method public void setComment(java.lang.String);
@@ -60782,8 +61880,8 @@
}
public class BadPaddingException extends java.security.GeneralSecurityException {
- ctor public BadPaddingException(java.lang.String);
ctor public BadPaddingException();
+ ctor public BadPaddingException(java.lang.String);
}
public class Cipher {
@@ -60894,14 +61992,14 @@
method public final int getOutputSize(int) throws java.lang.IllegalStateException;
method public final java.security.Provider getProvider();
method public final void init(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
- method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+ method public final void init(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final boolean isCryptoAllowed(java.security.Key) throws javax.crypto.ExemptionMechanismException;
}
public class ExemptionMechanismException extends java.security.GeneralSecurityException {
- ctor public ExemptionMechanismException(java.lang.String);
ctor public ExemptionMechanismException();
+ ctor public ExemptionMechanismException(java.lang.String);
}
public abstract class ExemptionMechanismSpi {
@@ -60910,13 +62008,13 @@
method protected abstract int engineGenExemptionBlob(byte[], int) throws javax.crypto.ExemptionMechanismException, javax.crypto.ShortBufferException;
method protected abstract int engineGetOutputSize(int);
method protected abstract void engineInit(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
- method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method protected abstract void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
+ method protected abstract void engineInit(java.security.Key, java.security.AlgorithmParameters) throws javax.crypto.ExemptionMechanismException, java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
}
public class IllegalBlockSizeException extends java.security.GeneralSecurityException {
- ctor public IllegalBlockSizeException(java.lang.String);
ctor public IllegalBlockSizeException();
+ ctor public IllegalBlockSizeException(java.lang.String);
}
public class KeyAgreement {
@@ -60954,19 +62052,19 @@
method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
method public final java.security.Provider getProvider();
+ method public final void init(java.security.SecureRandom);
method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
method public final void init(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
method public final void init(int);
method public final void init(int, java.security.SecureRandom);
- method public final void init(java.security.SecureRandom);
}
public abstract class KeyGeneratorSpi {
ctor public KeyGeneratorSpi();
method protected abstract javax.crypto.SecretKey engineGenerateKey();
+ method protected abstract void engineInit(java.security.SecureRandom);
method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException;
method protected abstract void engineInit(int, java.security.SecureRandom);
- method protected abstract void engineInit(java.security.SecureRandom);
}
public class Mac implements java.lang.Cloneable {
@@ -60981,12 +62079,12 @@
method public static final javax.crypto.Mac getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
method public final int getMacLength();
method public final java.security.Provider getProvider();
- method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final void init(java.security.Key) throws java.security.InvalidKeyException;
+ method public final void init(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
method public final void reset();
method public final void update(byte) throws java.lang.IllegalStateException;
- method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
method public final void update(byte[]) throws java.lang.IllegalStateException;
+ method public final void update(byte[], int, int) throws java.lang.IllegalStateException;
method public final void update(java.nio.ByteBuffer);
}
@@ -61003,8 +62101,8 @@
}
public class NoSuchPaddingException extends java.security.GeneralSecurityException {
- ctor public NoSuchPaddingException(java.lang.String);
ctor public NoSuchPaddingException();
+ ctor public NoSuchPaddingException(java.lang.String);
}
public class NullCipher extends javax.crypto.Cipher {
@@ -61045,8 +62143,8 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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.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.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 @@
}
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 @@
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 @@
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 @@
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 @@
method public abstract void setMaxRows(int) throws java.sql.SQLException;
method public abstract void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
method public abstract void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
- method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
method public abstract void setNCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+ method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+ method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
+ method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
+ method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
+ method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
method public abstract void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
method public abstract void setNClob(int, java.io.Reader) throws java.sql.SQLException;
- method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
- method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
- method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
- method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(int, int) throws java.sql.SQLException;
- method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
+ method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
- method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
- method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
- method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
+ method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
+ method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
+ method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
method public abstract void setPassword(java.lang.String) throws java.sql.SQLException;
method public abstract void setQueryTimeout(int) throws java.sql.SQLException;
method public abstract void setReadOnly(boolean) throws java.sql.SQLException;
@@ -62775,8 +63943,8 @@
method public abstract void setTime(java.lang.String, java.sql.Time) throws java.sql.SQLException;
method public abstract void setTime(java.lang.String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
- method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp) throws java.sql.SQLException;
+ method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
method public abstract void setTransactionIsolation(int) throws java.sql.SQLException;
method public abstract void setType(int) throws java.sql.SQLException;
@@ -62786,7 +63954,7 @@
method public abstract void setUsername(java.lang.String) throws java.sql.SQLException;
}
- public class RowSetEvent extends java.util.EventObject implements java.io.Serializable {
+ public class RowSetEvent extends java.util.EventObject {
ctor public RowSetEvent(javax.sql.RowSet);
}
@@ -62833,8 +64001,8 @@
}
public class StatementEvent extends java.util.EventObject {
- ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement);
+ ctor public StatementEvent(javax.sql.PooledConnection, java.sql.PreparedStatement, java.sql.SQLException);
method public java.sql.SQLException getSQLException();
method public java.sql.PreparedStatement getStatement();
}
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 83d4152..a2ef410 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -119,6 +119,7 @@
import java.net.InetAddress;
import java.text.DateFormat;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -814,8 +815,13 @@
// Tell the VMRuntime about the application, unless it is shared
// inside a process.
if (!sharable) {
+ final List<String> codePaths = new ArrayList<>();
+ codePaths.add(appInfo.sourceDir);
+ if (appInfo.splitSourceDirs != null) {
+ Collections.addAll(codePaths, appInfo.splitSourceDirs);
+ }
VMRuntime.registerAppInfo(appInfo.packageName, appInfo.dataDir,
- appInfo.processName);
+ codePaths.toArray(new String[codePaths.size()]));
}
}
diff --git a/core/java/android/app/ApplicationLoaders.java b/core/java/android/app/ApplicationLoaders.java
index 413c369..7d0d1b4 100644
--- a/core/java/android/app/ApplicationLoaders.java
+++ b/core/java/android/app/ApplicationLoaders.java
@@ -27,7 +27,8 @@
return gApplicationLoaders;
}
- public ClassLoader getClassLoader(String zip, String libPath, ClassLoader parent)
+ public ClassLoader getClassLoader(String zip, boolean isBundled, String librarySearchPath,
+ String libraryPermittedPath, ClassLoader parent)
{
/*
* This is the parent we use if they pass "null" in. In theory
@@ -55,7 +56,8 @@
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, zip);
PathClassLoader pathClassloader =
- new PathClassLoader(zip, libPath, parent);
+ new PathClassLoader(zip, isBundled, librarySearchPath,
+ libraryPermittedPath, parent);
Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
mLoaders.put(zip, pathClassloader);
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index c2bf28a..763cb1c 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -359,7 +359,24 @@
}
}
- final String lib = TextUtils.join(File.pathSeparator, libPaths);
+ String libraryPermittedPath = mAppDir + File.pathSeparator + mDataDir;
+ boolean isBundledApp = false;
+
+ if (mApplicationInfo.isSystemApp()) {
+ isBundledApp = true;
+ // Add path to system libraries to libPaths;
+ // Access to system libs should be limited
+ // to bundled applications; this is why updated
+ // system apps are not included.
+ libPaths.add(System.getProperty("java.library.path"));
+
+ // This is necessary to grant bundled apps access to
+ // libraries located in subdirectories of /system/lib
+ libraryPermittedPath += File.pathSeparator +
+ System.getProperty("java.library.path");
+ }
+
+ final String librarySearchPath = TextUtils.join(File.pathSeparator, libPaths);
/*
* With all the combination done (if necessary, actually
@@ -367,14 +384,15 @@
*/
if (ActivityThread.localLOGV)
- Slog.v(ActivityThread.TAG, "Class path: " + zip + ", JNI path: " + lib);
+ Slog.v(ActivityThread.TAG, "Class path: " + zip +
+ ", JNI path: " + librarySearchPath);
// Temporarily disable logging of disk reads on the Looper thread
// as this is early and necessary.
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
- mClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip, lib,
- mBaseClassLoader);
+ mClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip, isBundledApp,
+ librarySearchPath, libraryPermittedPath, mBaseClassLoader);
StrictMode.setThreadPolicy(oldPolicy);
} else {
diff --git a/core/java/android/app/NativeActivity.java b/core/java/android/app/NativeActivity.java
index 2e05edb..dcf1c80 100644
--- a/core/java/android/app/NativeActivity.java
+++ b/core/java/android/app/NativeActivity.java
@@ -35,6 +35,8 @@
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
+import dalvik.system.BaseDexClassLoader;
+
import java.io.File;
/**
@@ -93,7 +95,9 @@
private native long loadNativeCode(String path, String funcname, MessageQueue queue,
String internalDataPath, String obbPath, String externalDataPath, int sdkVersion,
- AssetManager assetMgr, byte[] savedState);
+ AssetManager assetMgr, byte[] savedState, ClassLoader classLoader, String libraryPath,
+ String isolationPath);
+ private native String getDlError();
private native void unloadNativeCode(long handle);
private native void onStartNative(long handle);
private native void onResumeNative(long handle);
@@ -157,15 +161,10 @@
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException("Error getting activity info", e);
}
-
- String path = null;
-
- File libraryFile = new File(ai.applicationInfo.nativeLibraryDir,
- System.mapLibraryName(libname));
- if (libraryFile.exists()) {
- path = libraryFile.getPath();
- }
-
+
+ BaseDexClassLoader classLoader = (BaseDexClassLoader) getClassLoader();
+ String path = classLoader.findLibrary(libname);
+
if (path == null) {
throw new IllegalArgumentException("Unable to find native library: " + libname);
}
@@ -176,10 +175,13 @@
mNativeHandle = loadNativeCode(path, funcname, Looper.myQueue(),
getAbsolutePath(getFilesDir()), getAbsolutePath(getObbDir()),
getAbsolutePath(getExternalFilesDir(null)),
- Build.VERSION.SDK_INT, getAssets(), nativeSavedState);
+ Build.VERSION.SDK_INT, getAssets(), nativeSavedState,
+ classLoader, classLoader.getLdLibraryPath(),
+ classLoader.getLibraryPermittedPath());
if (mNativeHandle == 0) {
- throw new IllegalArgumentException("Unable to load native library: " + path);
+ throw new UnsatisfiedLinkError(
+ "Unable to load native library \"" + path + "\": " + getDlError());
}
super.onCreate(savedInstanceState);
}
diff --git a/core/java/android/content/pm/ManifestDigest.java b/core/java/android/content/pm/ManifestDigest.java
index 1fbef7a..e7dc764 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 @@
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 @@
}
};
-}
\ 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 99bd390..549829d 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -81,9 +81,10 @@
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/database/sqlite/SQLiteConnection.java b/core/java/android/database/sqlite/SQLiteConnection.java
index 3cda39a..a762f59 100644
--- a/core/java/android/database/sqlite/SQLiteConnection.java
+++ b/core/java/android/database/sqlite/SQLiteConnection.java
@@ -26,6 +26,7 @@
import android.os.CancellationSignal;
import android.os.OperationCanceledException;
import android.os.ParcelFileDescriptor;
+import android.os.Trace;
import android.util.Log;
import android.util.LruCache;
import android.util.Printer;
@@ -1330,6 +1331,10 @@
}
}
operation.mCookie = newOperationCookieLocked(index);
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_DATABASE)) {
+ Trace.asyncTraceBegin(Trace.TRACE_TAG_DATABASE, operation.getTraceMethodName(),
+ operation.mCookie);
+ }
mIndex = index;
return operation.mCookie;
}
@@ -1367,6 +1372,10 @@
private boolean endOperationDeferLogLocked(int cookie) {
final Operation operation = getOperationLocked(cookie);
if (operation != null) {
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_DATABASE)) {
+ Trace.asyncTraceEnd(Trace.TRACE_TAG_DATABASE, operation.getTraceMethodName(),
+ operation.mCookie);
+ }
operation.mEndTime = System.currentTimeMillis();
operation.mFinished = true;
return SQLiteDebug.DEBUG_LOG_SLOW_QUERIES && SQLiteDebug.shouldLogSlowQuery(
@@ -1439,6 +1448,12 @@
}
private static final class Operation {
+ // Trim all SQL statements to 256 characters inside the trace marker.
+ // This limit gives plenty of context while leaving space for other
+ // entries in the trace buffer (and ensures atrace doesn't truncate the
+ // marker for us, potentially losing metadata in the process).
+ private static final int MAX_TRACE_METHOD_NAME_LEN = 256;
+
public long mStartTime;
public long mEndTime;
public String mKind;
@@ -1492,6 +1507,13 @@
return mException != null ? "failed" : "succeeded";
}
+ private String getTraceMethodName() {
+ String methodName = mKind + " " + mSql;
+ if (methodName.length() > MAX_TRACE_METHOD_NAME_LEN)
+ return methodName.substring(0, MAX_TRACE_METHOD_NAME_LEN);
+ return methodName;
+ }
+
private String getFormattedStartTime() {
// Note: SimpleDateFormat is not thread-safe, cannot be compile-time created, and is
// relatively expensive to create during preloading. This method is only used
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 1fc69c0..e884c02 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -47,6 +47,8 @@
import java.util.LinkedHashMap;
import java.util.List;
+import static android.system.OsConstants.*;
+
/**
* The Camera class is used to set image capture settings, start/stop preview,
* snap pictures, and retrieve frames for encoding for video. This class is a
@@ -173,13 +175,6 @@
private final Object mAutoFocusCallbackLock = new Object();
private static final int NO_ERROR = 0;
- private static final int EACCESS = -13;
- private static final int ENODEV = -19;
- private static final int EBUSY = -16;
- private static final int EINVAL = -22;
- private static final int ENOSYS = -38;
- private static final int EUSERS = -87;
- private static final int EOPNOTSUPP = -95;
/**
* Broadcast Action: A new picture is taken by the camera, and the entry of
@@ -415,30 +410,28 @@
private Camera(int cameraId, int halVersion) {
int err = cameraInitVersion(cameraId, halVersion);
if (checkInitErrors(err)) {
- switch(err) {
- case EACCESS:
- throw new RuntimeException("Fail to connect to camera service");
- case ENODEV:
- throw new RuntimeException("Camera initialization failed");
- case ENOSYS:
- throw new RuntimeException("Camera initialization failed because some methods"
- + " are not implemented");
- case EOPNOTSUPP:
- throw new RuntimeException("Camera initialization failed because the hal"
- + " version is not supported by this device");
- case EINVAL:
- throw new RuntimeException("Camera initialization failed because the input"
- + " arugments are invalid");
- case EBUSY:
- throw new RuntimeException("Camera initialization failed because the camera"
- + " device was already opened");
- case EUSERS:
- throw new RuntimeException("Camera initialization failed because the max"
- + " number of camera devices were already opened");
- default:
- // Should never hit this.
- throw new RuntimeException("Unknown camera error");
+ if (err == -EACCES) {
+ throw new RuntimeException("Fail to connect to camera service");
+ } else if (err == -ENODEV) {
+ throw new RuntimeException("Camera initialization failed");
+ } else if (err == -ENOSYS) {
+ throw new RuntimeException("Camera initialization failed because some methods"
+ + " are not implemented");
+ } else if (err == -EOPNOTSUPP) {
+ throw new RuntimeException("Camera initialization failed because the hal"
+ + " version is not supported by this device");
+ } else if (err == -EINVAL) {
+ throw new RuntimeException("Camera initialization failed because the input"
+ + " arugments are invalid");
+ } else if (err == -EBUSY) {
+ throw new RuntimeException("Camera initialization failed because the camera"
+ + " device was already opened");
+ } else if (err == -EUSERS) {
+ throw new RuntimeException("Camera initialization failed because the max"
+ + " number of camera devices were already opened");
}
+ // Should never hit this.
+ throw new RuntimeException("Unknown camera error");
}
}
@@ -490,15 +483,13 @@
Camera(int cameraId) {
int err = cameraInitNormal(cameraId);
if (checkInitErrors(err)) {
- switch(err) {
- case EACCESS:
- throw new RuntimeException("Fail to connect to camera service");
- case ENODEV:
- throw new RuntimeException("Camera initialization failed");
- default:
- // Should never hit this.
- throw new RuntimeException("Unknown camera error");
+ if (err == -EACCES) {
+ throw new RuntimeException("Fail to connect to camera service");
+ } else if (err == -ENODEV) {
+ throw new RuntimeException("Camera initialization failed");
}
+ // Should never hit this.
+ throw new RuntimeException("Unknown camera error");
}
}
diff --git a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
index 6b8e113..798c941 100644
--- a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
+++ b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
@@ -43,6 +43,9 @@
import java.util.ArrayList;
import java.util.List;
+import static android.system.OsConstants.EACCES;
+import static android.system.OsConstants.ENODEV;
+
/**
* Compatibility implementation of the Camera2 API binder interface.
*
@@ -88,6 +91,14 @@
mSurfaceIdCounter = 0;
}
+ private static int translateErrorsFromCamera1(int errorCode) {
+ if (errorCode == -EACCES) {
+ return CameraBinderDecorator.PERMISSION_DENIED;
+ }
+
+ return errorCode;
+ }
+
/**
* Create a separate looper/thread for the camera to run on; open the camera.
*
@@ -382,7 +393,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot submit request, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -402,7 +413,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot submit request list, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -421,7 +432,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot cancel request, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -442,7 +453,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot begin configure, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -462,7 +473,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot end configure, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
ArrayList<Surface> surfaces = null;
@@ -490,7 +501,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot delete stream, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -515,7 +526,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot create stream, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -552,7 +563,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot create default request, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
CameraMetadataNative template;
@@ -585,7 +596,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot wait until idle, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -605,7 +616,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot flush, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
synchronized(mConfigureLock) {
@@ -627,7 +638,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot prepare stream, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
// LEGACY doesn't support actual prepare, just signal success right away
@@ -647,7 +658,7 @@
}
if (mLegacyDevice.isClosed()) {
Log.e(TAG, "Cannot tear down stream, device has been closed.");
- return CameraBinderDecorator.ENODEV;
+ return -ENODEV;
}
// LEGACY doesn't support actual teardown, so just a no-op
diff --git a/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java b/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java
index 4b7cfbf..4501e81 100644
--- a/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java
+++ b/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java
@@ -19,6 +19,8 @@
import android.hardware.camera2.utils.CameraBinderDecorator;
import android.util.AndroidException;
+import static android.system.OsConstants.ENODEV;
+
/**
* Utility class containing exception handling used solely by the compatibility mode shim.
*/
@@ -51,18 +53,15 @@
* exceptions.</p>
*
* @param errorFlag error to throw as an exception.
- * @throws {@link BufferQueueAbandonedException} for {@link CameraBinderDecorator#ENODEV}.
+ * @throws {@link BufferQueueAbandonedException} for -ENODEV.
* @throws {@link UnsupportedOperationException} for an unknown negative error code.
* @return {@code errorFlag} if the value was non-negative, throws otherwise.
*/
public static int throwOnError(int errorFlag) throws BufferQueueAbandonedException {
- switch (errorFlag) {
- case CameraBinderDecorator.NO_ERROR: {
- return CameraBinderDecorator.NO_ERROR;
- }
- case CameraBinderDecorator.BAD_VALUE: {
- throw new BufferQueueAbandonedException();
- }
+ if (errorFlag == CameraBinderDecorator.NO_ERROR) {
+ return CameraBinderDecorator.NO_ERROR;
+ } else if (errorFlag == -ENODEV) {
+ throw new BufferQueueAbandonedException();
}
if (errorFlag < 0) {
diff --git a/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java b/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java
index 1aee794..162edc9 100644
--- a/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java
+++ b/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java
@@ -22,6 +22,7 @@
import static android.hardware.camera2.CameraAccessException.CAMERA_ERROR;
import static android.hardware.camera2.CameraAccessException.MAX_CAMERAS_IN_USE;
import static android.hardware.camera2.CameraAccessException.CAMERA_DEPRECATED_HAL;
+import static android.system.OsConstants.*;
import android.os.DeadObjectException;
import android.os.RemoteException;
@@ -37,12 +38,12 @@
public class CameraBinderDecorator {
public static final int NO_ERROR = 0;
- public static final int PERMISSION_DENIED = -1;
- public static final int ALREADY_EXISTS = -17;
- public static final int BAD_VALUE = -22;
- public static final int DEAD_OBJECT = -32;
- public static final int INVALID_OPERATION = -38;
- public static final int TIMED_OUT = -110;
+ public static final int PERMISSION_DENIED = -EPERM;
+ public static final int ALREADY_EXISTS = -EEXIST;
+ public static final int BAD_VALUE = -EINVAL;
+ public static final int DEAD_OBJECT = -ENOSYS;
+ public static final int INVALID_OPERATION = -EPIPE;
+ public static final int TIMED_OUT = -ETIMEDOUT;
/**
* TODO: add as error codes in Errors.h
@@ -52,12 +53,6 @@
* - NOT_SUPPORTED
* - TOO_MANY_USERS
*/
- public static final int EACCES = -13;
- public static final int EBUSY = -16;
- public static final int ENODEV = -19;
- public static final int EOPNOTSUPP = -95;
- public static final int EUSERS = -87;
-
static class CameraBinderDecoratorListener implements Decorator.DecoratorListener {
@@ -101,35 +96,34 @@
* @param errorFlag error to throw as an exception.
*/
public static void throwOnError(int errorFlag) {
- switch (errorFlag) {
- case NO_ERROR:
- return;
- case PERMISSION_DENIED:
- throw new SecurityException("Lacking privileges to access camera service");
- case ALREADY_EXISTS:
- // This should be handled at the call site. Typically this isn't bad,
- // just means we tried to do an operation that already completed.
- return;
- case BAD_VALUE:
- throw new IllegalArgumentException("Bad argument passed to camera service");
- case DEAD_OBJECT:
- throw new CameraRuntimeException(CAMERA_DISCONNECTED);
- case TIMED_OUT:
- throw new CameraRuntimeException(CAMERA_ERROR,
- "Operation timed out in camera service");
- case EACCES:
- throw new CameraRuntimeException(CAMERA_DISABLED);
- case EBUSY:
- throw new CameraRuntimeException(CAMERA_IN_USE);
- case EUSERS:
- throw new CameraRuntimeException(MAX_CAMERAS_IN_USE);
- case ENODEV:
- throw new CameraRuntimeException(CAMERA_DISCONNECTED);
- case EOPNOTSUPP:
- throw new CameraRuntimeException(CAMERA_DEPRECATED_HAL);
- case INVALID_OPERATION:
- throw new CameraRuntimeException(CAMERA_ERROR,
- "Illegal state encountered in camera service.");
+ if (errorFlag == NO_ERROR) {
+ return;
+ } else if (errorFlag == PERMISSION_DENIED) {
+ throw new SecurityException("Lacking privileges to access camera service");
+ } else if (errorFlag == ALREADY_EXISTS) {
+ // This should be handled at the call site. Typically this isn't bad,
+ // just means we tried to do an operation that already completed.
+ return;
+ } else if (errorFlag == BAD_VALUE) {
+ throw new IllegalArgumentException("Bad argument passed to camera service");
+ } else if (errorFlag == DEAD_OBJECT) {
+ throw new CameraRuntimeException(CAMERA_DISCONNECTED);
+ } else if (errorFlag == TIMED_OUT) {
+ throw new CameraRuntimeException(CAMERA_ERROR,
+ "Operation timed out in camera service");
+ } else if (errorFlag == -EACCES) {
+ throw new CameraRuntimeException(CAMERA_DISABLED);
+ } else if (errorFlag == -EBUSY) {
+ throw new CameraRuntimeException(CAMERA_IN_USE);
+ } else if (errorFlag == -EUSERS) {
+ throw new CameraRuntimeException(MAX_CAMERAS_IN_USE);
+ } else if (errorFlag == -ENODEV) {
+ throw new CameraRuntimeException(CAMERA_DISCONNECTED);
+ } else if (errorFlag == -EOPNOTSUPP) {
+ throw new CameraRuntimeException(CAMERA_DEPRECATED_HAL);
+ } else if (errorFlag == INVALID_OPERATION) {
+ throw new CameraRuntimeException(CAMERA_ERROR,
+ "Illegal state encountered in camera service.");
}
/**
diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java
index c85e97b..d490409 100644
--- a/core/java/android/hardware/soundtrigger/SoundTrigger.java
+++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java
@@ -25,6 +25,8 @@
import java.util.Arrays;
import java.util.UUID;
+import static android.system.OsConstants.*;
+
/**
* The SoundTrigger class provides access via JNI to the native service managing
* the sound trigger HAL.
@@ -35,11 +37,11 @@
public static final int STATUS_OK = 0;
public static final int STATUS_ERROR = Integer.MIN_VALUE;
- public static final int STATUS_PERMISSION_DENIED = -1;
- public static final int STATUS_NO_INIT = -19;
- public static final int STATUS_BAD_VALUE = -22;
- public static final int STATUS_DEAD_OBJECT = -32;
- public static final int STATUS_INVALID_OPERATION = -38;
+ public static final int STATUS_PERMISSION_DENIED = -EPERM;
+ public static final int STATUS_NO_INIT = -ENODEV;
+ public static final int STATUS_BAD_VALUE = -EINVAL;
+ public static final int STATUS_DEAD_OBJECT = -EPIPE;
+ public static final int STATUS_INVALID_OPERATION = -ENOSYS;
/*****************************************************************************
* A ModuleProperties describes a given sound trigger hardware module
diff --git a/core/java/android/net/http/SslCertificate.java b/core/java/android/net/http/SslCertificate.java
index 5b60c0d..2715af0 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 @@
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/BaseBundle.java b/core/java/android/os/BaseBundle.java
index c373308..532070e 100644
--- a/core/java/android/os/BaseBundle.java
+++ b/core/java/android/os/BaseBundle.java
@@ -31,7 +31,9 @@
private static final String TAG = "Bundle";
static final boolean DEBUG = false;
+ // Keep in sync with frameworks/native/libs/binder/PersistableBundle.cpp.
static final int BUNDLE_MAGIC = 0x4C444E42; // 'B' 'N' 'D' 'L'
+
static final Parcel EMPTY_PARCEL;
static {
@@ -1307,6 +1309,8 @@
* @param parcel The parcel to copy this bundle to.
*/
void writeToParcelInner(Parcel parcel, int flags) {
+ // Keep implementation in sync with writeToParcel() in
+ // frameworks/native/libs/binder/PersistableBundle.cpp.
if (mParcelledData != null) {
if (mParcelledData == EMPTY_PARCEL) {
parcel.writeInt(0);
@@ -1344,6 +1348,8 @@
* @param parcel The parcel to overwrite this bundle from.
*/
void readFromParcelInner(Parcel parcel) {
+ // Keep implementation in sync with readFromParcel() in
+ // frameworks/native/libs/binder/PersistableBundle.cpp.
int length = parcel.readInt();
if (length < 0) {
throw new RuntimeException("Bad length in parcel: " + length);
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index 9b68f90..2631247 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -204,6 +204,7 @@
private static final Parcel[] sOwnedPool = new Parcel[POOL_SIZE];
private static final Parcel[] sHolderPool = new Parcel[POOL_SIZE];
+ // Keep in sync with frameworks/native/libs/binder/PersistableBundle.cpp.
private static final int VAL_NULL = -1;
private static final int VAL_STRING = 0;
private static final int VAL_INTEGER = 1;
@@ -704,6 +705,8 @@
writeInt(-1);
return;
}
+ // Keep the format of this Parcel in sync with writeToParcelInner() in
+ // frameworks/native/libs/binder/PersistableBundle.cpp.
final int N = val.size();
writeInt(N);
if (DEBUG_ARRAY_MAP) {
@@ -1370,7 +1373,13 @@
// Must be before Parcelable
writeInt(VAL_BUNDLE);
writeBundle((Bundle) v);
+ } else if (v instanceof PersistableBundle) {
+ writeInt(VAL_PERSISTABLEBUNDLE);
+ writePersistableBundle((PersistableBundle) v);
} else if (v instanceof Parcelable) {
+ // IMPOTANT: cases for classes that implement Parcelable must
+ // come before the Parcelable case, so that their specific VAL_*
+ // types will be written.
writeInt(VAL_PARCELABLE);
writeParcelable((Parcelable) v, 0);
} else if (v instanceof Short) {
@@ -1426,9 +1435,6 @@
} else if (v instanceof Byte) {
writeInt(VAL_BYTE);
writeInt((Byte) v);
- } else if (v instanceof PersistableBundle) {
- writeInt(VAL_PERSISTABLEBUNDLE);
- writePersistableBundle((PersistableBundle) v);
} else if (v instanceof Size) {
writeInt(VAL_SIZE);
writeSize((Size) v);
diff --git a/core/java/android/os/PersistableBundle.aidl b/core/java/android/os/PersistableBundle.aidl
index 5b05873..94e8607 100644
--- a/core/java/android/os/PersistableBundle.aidl
+++ b/core/java/android/os/PersistableBundle.aidl
@@ -2,19 +2,19 @@
**
** Copyright 2014, 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
+** 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
+** 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
+** 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.os;
-parcelable PersistableBundle;
+parcelable PersistableBundle cpp_header "binder/PersistableBundle.h";
diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java
index 8e06fa7..4113de2 100644
--- a/core/java/android/os/RecoverySystem.java
+++ b/core/java/android/os/RecoverySystem.java
@@ -44,11 +44,8 @@
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 @@
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 @@
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 @@
}
}
- // 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.
+ // Parse the signature
+ PKCS7 block =
+ new PKCS7(new ByteArrayInputStream(eocd, commentSize+22-signatureStart, signatureStart));
- 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");
- }
// 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 @@
// 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);
- }
- int read = raf.read(buffer, 0, size);
- sig.update(buffer, 0, read);
- soFar += read;
+ 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;
- 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);
- }
+ int lastPercent = 0;
+ long lastPublishTime = startTimeMillis;
+
+ @Override
+ public int read() throws IOException {
+ throw new UnsupportedOperationException();
}
- }
+
+ @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 @@
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/os/Trace.java b/core/java/android/os/Trace.java
index 7529c52..9e8103a 100644
--- a/core/java/android/os/Trace.java
+++ b/core/java/android/os/Trace.java
@@ -79,6 +79,8 @@
public static final long TRACE_TAG_PACKAGE_MANAGER = 1L << 18;
/** @hide */
public static final long TRACE_TAG_SYSTEM_SERVER = 1L << 19;
+ /** @hide */
+ public static final long TRACE_TAG_DATABASE = 1L << 20;
private static final long TRACE_TAG_NOT_READY = 1L << 63;
private static final int MAX_SECTION_NAME_LEN = 127;
diff --git a/core/java/android/security/net/config/ApplicationConfig.java b/core/java/android/security/net/config/ApplicationConfig.java
index 254f59e..4de36cd 100644
--- a/core/java/android/security/net/config/ApplicationConfig.java
+++ b/core/java/android/security/net/config/ApplicationConfig.java
@@ -68,7 +68,7 @@
*/
public NetworkSecurityConfig getConfigForHostname(String hostname) {
ensureInitialized();
- if (hostname.isEmpty() || mConfigs == null) {
+ if (hostname == null || hostname.isEmpty() || mConfigs == null) {
return mDefaultConfig;
}
if (hostname.charAt(0) == '.') {
diff --git a/core/java/android/security/net/config/CertificateSource.java b/core/java/android/security/net/config/CertificateSource.java
index 2b7829e..7e3601e 100644
--- a/core/java/android/security/net/config/CertificateSource.java
+++ b/core/java/android/security/net/config/CertificateSource.java
@@ -23,4 +23,5 @@
public interface CertificateSource {
Set<X509Certificate> getCertificates();
X509Certificate findBySubjectAndPublicKey(X509Certificate cert);
+ X509Certificate findByIssuerAndSignature(X509Certificate cert);
}
diff --git a/core/java/android/security/net/config/CertificatesEntryRef.java b/core/java/android/security/net/config/CertificatesEntryRef.java
index 1d15e19..ff728ef 100644
--- a/core/java/android/security/net/config/CertificatesEntryRef.java
+++ b/core/java/android/security/net/config/CertificatesEntryRef.java
@@ -51,4 +51,13 @@
return new TrustAnchor(foundCert, mOverridesPins);
}
+
+ public TrustAnchor findByIssuerAndSignature(X509Certificate cert) {
+ X509Certificate foundCert = mSource.findByIssuerAndSignature(cert);
+ if (foundCert == null) {
+ return null;
+ }
+
+ return new TrustAnchor(foundCert, mOverridesPins);
+ }
}
diff --git a/core/java/android/security/net/config/DirectoryCertificateSource.java b/core/java/android/security/net/config/DirectoryCertificateSource.java
index 92c7092..bf29efa 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.util.Set;
import libcore.io.IoUtils;
+import com.android.org.conscrypt.Hex;
import com.android.org.conscrypt.NativeCrypto;
import javax.security.auth.x500.X500Principal;
@@ -94,6 +95,21 @@
});
}
+ @Override
+ public X509Certificate findByIssuerAndSignature(final X509Certificate cert) {
+ return findCert(cert.getIssuerX500Principal(), new CertSelector() {
+ @Override
+ public boolean match(X509Certificate ca) {
+ try {
+ cert.verify(ca.getPublicKey());
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+ });
+ }
+
private static interface CertSelector {
boolean match(X509Certificate cert);
}
@@ -121,7 +137,7 @@
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/security/net/config/KeyStoreCertificateSource.java b/core/java/android/security/net/config/KeyStoreCertificateSource.java
index 7a01a64..b6105cd 100644
--- a/core/java/android/security/net/config/KeyStoreCertificateSource.java
+++ b/core/java/android/security/net/config/KeyStoreCertificateSource.java
@@ -80,4 +80,14 @@
}
return anchor.getTrustedCert();
}
+
+ @Override
+ public X509Certificate findByIssuerAndSignature(X509Certificate cert) {
+ ensureInitialized();
+ java.security.cert.TrustAnchor anchor = mIndex.findByIssuerAndSignature(cert);
+ if (anchor == null) {
+ return null;
+ }
+ return anchor.getTrustedCert();
+ }
}
diff --git a/core/java/android/security/net/config/ManifestConfigSource.java b/core/java/android/security/net/config/ManifestConfigSource.java
index bf1fb8a..0e137cd 100644
--- a/core/java/android/security/net/config/ManifestConfigSource.java
+++ b/core/java/android/security/net/config/ManifestConfigSource.java
@@ -79,7 +79,9 @@
if (DBG) {
Log.d(LOG_TAG, "No Network Security Config specified, using platform default");
}
- source = new DefaultConfigSource();
+ boolean usesCleartextTraffic =
+ (info.flags & ApplicationInfo.FLAG_USES_CLEARTEXT_TRAFFIC) != 0;
+ source = new DefaultConfigSource(usesCleartextTraffic);
}
mConfigSource = source;
return mConfigSource;
@@ -87,9 +89,18 @@
}
private static final class DefaultConfigSource implements ConfigSource {
+
+ private final NetworkSecurityConfig mDefaultConfig;
+
+ public DefaultConfigSource(boolean usesCleartextTraffic) {
+ mDefaultConfig = NetworkSecurityConfig.getDefaultBuilder()
+ .setCleartextTrafficPermitted(usesCleartextTraffic)
+ .build();
+ }
+
@Override
public NetworkSecurityConfig getDefaultConfig() {
- return NetworkSecurityConfig.DEFAULT;
+ return mDefaultConfig;
}
@Override
diff --git a/core/java/android/security/net/config/NetworkSecurityConfig.java b/core/java/android/security/net/config/NetworkSecurityConfig.java
index 2ab07b5..0a2edff 100644
--- a/core/java/android/security/net/config/NetworkSecurityConfig.java
+++ b/core/java/android/security/net/config/NetworkSecurityConfig.java
@@ -134,6 +134,17 @@
return null;
}
+ /** @hide */
+ public TrustAnchor findTrustAnchorByIssuerAndSignature(X509Certificate cert) {
+ for (CertificatesEntryRef ref : mCertificatesEntryRefs) {
+ TrustAnchor anchor = ref.findByIssuerAndSignature(cert);
+ if (anchor != null) {
+ return anchor;
+ }
+ }
+ return null;
+ }
+
/**
* Return a {@link Builder} for the default {@code NetworkSecurityConfig}.
*
diff --git a/core/java/android/security/net/config/NetworkSecurityTrustManager.java b/core/java/android/security/net/config/NetworkSecurityTrustManager.java
index 6013c1e..982ed68 100644
--- a/core/java/android/security/net/config/NetworkSecurityTrustManager.java
+++ b/core/java/android/security/net/config/NetworkSecurityTrustManager.java
@@ -46,17 +46,13 @@
throw new NullPointerException("config must not be null");
}
mNetworkSecurityConfig = config;
- // TODO: Create our own better KeyStoreImpl
try {
+ TrustedCertificateStoreAdapter certStore = new TrustedCertificateStoreAdapter(config);
+ // Provide an empty KeyStore since TrustManagerImpl doesn't support null KeyStores.
+ // TrustManagerImpl will use certStore to lookup certificates.
KeyStore store = KeyStore.getInstance(KeyStore.getDefaultType());
store.load(null);
- int certNum = 0;
- for (TrustAnchor anchor : mNetworkSecurityConfig.getTrustAnchors()) {
- store.setEntry(String.valueOf(certNum++),
- new KeyStore.TrustedCertificateEntry(anchor.certificate),
- null);
- }
- mDelegate = new TrustManagerImpl(store);
+ mDelegate = new TrustManagerImpl(store, null, certStore);
} catch (GeneralSecurityException | IOException e) {
throw new RuntimeException(e);
}
diff --git a/core/java/android/security/net/config/ResourceCertificateSource.java b/core/java/android/security/net/config/ResourceCertificateSource.java
index b007f8f..e489c2c 100644
--- a/core/java/android/security/net/config/ResourceCertificateSource.java
+++ b/core/java/android/security/net/config/ResourceCertificateSource.java
@@ -90,4 +90,14 @@
}
return anchor.getTrustedCert();
}
+
+ @Override
+ public X509Certificate findByIssuerAndSignature(X509Certificate cert) {
+ ensureInitialized();
+ java.security.cert.TrustAnchor anchor = mIndex.findByIssuerAndSignature(cert);
+ if (anchor == null) {
+ return null;
+ }
+ return anchor.getTrustedCert();
+ }
}
diff --git a/core/java/android/security/net/config/RootTrustManager.java b/core/java/android/security/net/config/RootTrustManager.java
index e307ad0..b4e58e6 100644
--- a/core/java/android/security/net/config/RootTrustManager.java
+++ b/core/java/android/security/net/config/RootTrustManager.java
@@ -71,6 +71,10 @@
*/
public List<X509Certificate> checkServerTrusted(X509Certificate[] certs, String authType,
String hostname) throws CertificateException {
+ if (hostname == null && mConfig.hasPerDomainConfigs()) {
+ throw new CertificateException(
+ "Domain specific configurations require that the hostname be provided");
+ }
NetworkSecurityConfig config = mConfig.getConfigForHostname(hostname);
return config.getTrustManager().checkServerTrusted(certs, authType, hostname);
}
diff --git a/core/java/android/security/net/config/TrustedCertificateStoreAdapter.java b/core/java/android/security/net/config/TrustedCertificateStoreAdapter.java
new file mode 100644
index 0000000..4a90f82
--- /dev/null
+++ b/core/java/android/security/net/config/TrustedCertificateStoreAdapter.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2015 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.security.net.config;
+
+import java.io.File;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.util.Date;
+import java.util.Set;
+
+import com.android.org.conscrypt.TrustedCertificateStore;
+
+/** @hide */
+public class TrustedCertificateStoreAdapter extends TrustedCertificateStore {
+ private final NetworkSecurityConfig mConfig;
+
+ public TrustedCertificateStoreAdapter(NetworkSecurityConfig config) {
+ mConfig = config;
+ }
+
+ @Override
+ public X509Certificate findIssuer(X509Certificate cert) {
+ TrustAnchor anchor = mConfig.findTrustAnchorByIssuerAndSignature(cert);
+ if (anchor == null) {
+ return null;
+ }
+ return anchor.certificate;
+ }
+
+ @Override
+ public X509Certificate getTrustAnchor(X509Certificate cert) {
+ TrustAnchor anchor = mConfig.findTrustAnchorBySubjectAndPublicKey(cert);
+ if (anchor == null) {
+ return null;
+ }
+ return anchor.certificate;
+ }
+
+ @Override
+ public boolean isUserAddedCertificate(X509Certificate cert) {
+ // isUserAddedCertificate is used only for pinning overrides, so use overridesPins here.
+ TrustAnchor anchor = mConfig.findTrustAnchorBySubjectAndPublicKey(cert);
+ if (anchor == null) {
+ return false;
+ }
+ return anchor.overridesPins;
+ }
+
+ @Override
+ public File getCertificateFile(File dir, X509Certificate x) {
+ // getCertificateFile is only used for tests, do not support it here.
+ throw new UnsupportedOperationException();
+ }
+
+ // The methods below are exposed in TrustedCertificateStore but not used by conscrypt, do not
+ // support them.
+
+ @Override
+ public Certificate getCertificate(String alias) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Certificate getCertificate(String alias, boolean includeDeletedSystem) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Date getCreationDate(String alias) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Set<String> aliases() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Set<String> userAliases() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Set<String> allSystemAliases() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean containsAlias(String alias) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getCertificateAlias(Certificate c) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getCertificateAlias(Certificate c, boolean includeDeletedSystem) {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/core/java/android/util/jar/StrictJarFile.java b/core/java/android/util/jar/StrictJarFile.java
new file mode 100644
index 0000000..fd57806
--- /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 0000000..dbb466c
--- /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 0000000..9881bb0
--- /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 0000000..ca2aec1
--- /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/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index f6119e2..db147ab 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -145,9 +145,10 @@
@Override
boolean initialize(Surface surface) throws OutOfResourcesException {
+ boolean status = !mInitialized;
mInitialized = true;
updateEnabledState(surface);
- boolean status = nInitialize(mNativeProxy, surface);
+ nInitialize(mNativeProxy, surface);
return status;
}
@@ -503,7 +504,7 @@
private static native boolean nLoadSystemProperties(long nativeProxy);
private static native void nSetName(long nativeProxy, String name);
- private static native boolean nInitialize(long nativeProxy, Surface window);
+ private static native void nInitialize(long nativeProxy, Surface window);
private static native void nUpdateSurface(long nativeProxy, Surface window);
private static native boolean nPauseSurface(long nativeProxy, Surface window);
private static native void nSetup(long nativeProxy, int width, int height,
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
index 8186378..d23f26d 100644
--- a/core/java/com/android/internal/os/Zygote.java
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -145,8 +145,9 @@
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/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 4bcfa4c..67ed85a 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -519,7 +519,7 @@
String args[] = {
"--setuid=1000",
"--setgid=1000",
- "--setgroups=1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1018,1021,1032,3001,3002,3003,3006,3007,3009",
+ "--setgroups=1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1018,1021,1032,3001,3002,3003,3006,3007,3009,3010",
"--capabilities=" + capabilities + "," + capabilities,
"--nice-name=system_server",
"--runtime-args",
diff --git a/core/java/com/android/internal/util/HexDump.java b/core/java/com/android/internal/util/HexDump.java
index 3c7b7ac..7be95d8 100644
--- a/core/java/com/android/internal/util/HexDump.java
+++ b/core/java/com/android/internal/util/HexDump.java
@@ -19,28 +19,29 @@
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 @@
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 @@
{
result.append(" ");
}
-
+
for (int i = 0 ; i < lineIndex ; i++)
{
if (line[i] > ' ' && line[i] < '~')
@@ -87,10 +88,10 @@
}
}
}
-
+
return result.toString();
}
-
+
public static String toHexString(byte b)
{
return toHexString(toByteArray(b));
@@ -98,48 +99,59 @@
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 @@
throw new RuntimeException ("Invalid hex char '" + c + "'");
}
-
+
public static byte[] hexStringToByteArray(String hexString)
{
int length = hexString.length();
@@ -158,7 +170,15 @@
{
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 4c68e01..d9ede93 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -93,6 +93,7 @@
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 \
@@ -251,7 +252,8 @@
libminikin \
libprocessgroup \
libnativebridge \
- libradio_metadata
+ libradio_metadata \
+ libnativeloader
LOCAL_SHARED_LIBRARIES += \
libhwui \
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index b8aa2f0..6a71d5f 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -176,6 +176,7 @@
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 @@
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 @@
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_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp
index 95be3f2..88a56d2 100644
--- a/core/jni/android_app_NativeActivity.cpp
+++ b/core/jni/android_app_NativeActivity.cpp
@@ -21,6 +21,8 @@
#include <dlfcn.h>
#include <fcntl.h>
+#include <memory>
+
#include <android_runtime/android_app_NativeActivity.h>
#include <android_runtime/android_util_AssetManager.h>
#include <android_runtime/android_view_Surface.h>
@@ -39,6 +41,7 @@
#include "android_view_KeyEvent.h"
#include "nativebridge/native_bridge.h"
+#include "nativeloader/native_loader.h"
#include "core_jni_helpers.h"
@@ -255,18 +258,19 @@
static jlong
loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName,
jobject messageQueue, jstring internalDataDir, jstring obbDir,
- jstring externalDataDir, jint sdkVersion,
- jobject jAssetMgr, jbyteArray savedState)
-{
+ jstring externalDataDir, jint sdkVersion, jobject jAssetMgr,
+ jbyteArray savedState, jobject classLoader, jstring libraryPath,
+ jstring isolationPath) {
if (kLogTrace) {
ALOGD("loadNativeCode_native");
}
const char* pathStr = env->GetStringUTFChars(path, NULL);
- NativeCode* code = NULL;
+ std::unique_ptr<NativeCode> code;
bool needNativeBridge = false;
- void* handle = dlopen(pathStr, RTLD_LAZY);
+ void* handle = OpenNativeLibrary(env, sdkVersion, pathStr, classLoader,
+ false, libraryPath, isolationPath);
if (handle == NULL) {
if (NativeBridgeIsSupported(pathStr)) {
handle = NativeBridgeLoadLibrary(pathStr, RTLD_LAZY);
@@ -284,26 +288,23 @@
funcPtr = dlsym(handle, funcStr);
}
- code = new NativeCode(handle, (ANativeActivity_createFunc*)funcPtr);
+ code.reset(new NativeCode(handle, (ANativeActivity_createFunc*)funcPtr));
env->ReleaseStringUTFChars(funcName, funcStr);
if (code->createActivityFunc == NULL) {
ALOGW("ANativeActivity_onCreate not found");
- delete code;
return 0;
}
code->messageQueue = android_os_MessageQueue_getMessageQueue(env, messageQueue);
if (code->messageQueue == NULL) {
ALOGW("Unable to retrieve native MessageQueue");
- delete code;
return 0;
}
int msgpipe[2];
if (pipe(msgpipe)) {
ALOGW("could not create pipe: %s", strerror(errno));
- delete code;
return 0;
}
code->mainWorkRead = msgpipe[0];
@@ -315,12 +316,11 @@
SLOGW_IF(result != 0, "Could not make main work write pipe "
"non-blocking: %s", strerror(errno));
code->messageQueue->getLooper()->addFd(
- code->mainWorkRead, 0, ALOOPER_EVENT_INPUT, mainWorkCallback, code);
+ code->mainWorkRead, 0, ALOOPER_EVENT_INPUT, mainWorkCallback, code.get());
code->ANativeActivity::callbacks = &code->callbacks;
if (env->GetJavaVM(&code->vm) < 0) {
ALOGW("NativeActivity GetJavaVM failed");
- delete code;
return 0;
}
code->env = env;
@@ -356,14 +356,18 @@
rawSavedSize = env->GetArrayLength(savedState);
}
- code->createActivityFunc(code, rawSavedState, rawSavedSize);
+ code->createActivityFunc(code.get(), rawSavedState, rawSavedSize);
if (rawSavedState != NULL) {
env->ReleaseByteArrayElements(savedState, rawSavedState, 0);
}
}
- return (jlong)code;
+ return (jlong)code.release();
+}
+
+static jstring getDlError_native(JNIEnv* env, jobject clazz) {
+ return env->NewStringUTF(dlerror());
}
static void
@@ -651,8 +655,10 @@
}
static const JNINativeMethod g_methods[] = {
- { "loadNativeCode", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[B)J",
- (void*)loadNativeCode_native },
+ { "loadNativeCode",
+ "(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[BLjava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)J",
+ (void*)loadNativeCode_native },
+ { "getDlError", "()Ljava/lang/String;", (void*) getDlError_native },
{ "unloadNativeCode", "(J)V", (void*)unloadNativeCode_native },
{ "onStartNative", "(J)V", (void*)onStart_native },
{ "onResumeNative", "(J)V", (void*)onResume_native },
diff --git a/core/jni/android_util_jar_StrictJarFile.cpp b/core/jni/android_util_jar_StrictJarFile.cpp
new file mode 100644
index 0000000..7f8f708
--- /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/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index dae9751..7b2a40b 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -262,11 +262,11 @@
env->ReleaseStringUTFChars(jname, name);
}
-static jboolean android_view_ThreadedRenderer_initialize(JNIEnv* env, jobject clazz,
+static void android_view_ThreadedRenderer_initialize(JNIEnv* env, jobject clazz,
jlong proxyPtr, jobject jsurface) {
RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
sp<ANativeWindow> window = android_view_Surface_getNativeWindow(env, jsurface);
- return proxy->initialize(window);
+ proxy->initialize(window);
}
static void android_view_ThreadedRenderer_updateSurface(JNIEnv* env, jobject clazz,
@@ -461,7 +461,7 @@
{ "nDeleteProxy", "(J)V", (void*) android_view_ThreadedRenderer_deleteProxy },
{ "nLoadSystemProperties", "(J)Z", (void*) android_view_ThreadedRenderer_loadSystemProperties },
{ "nSetName", "(JLjava/lang/String;)V", (void*) android_view_ThreadedRenderer_setName },
- { "nInitialize", "(JLandroid/view/Surface;)Z", (void*) android_view_ThreadedRenderer_initialize },
+ { "nInitialize", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_initialize },
{ "nUpdateSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_updateSurface },
{ "nPauseSurface", "(JLandroid/view/Surface;)Z", (void*) android_view_ThreadedRenderer_pauseSurface },
{ "nSetup", "(JIIFII)V", (void*) android_view_ThreadedRenderer_setup },
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index b081568..041e693 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -581,7 +581,7 @@
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.");
}
@@ -606,31 +606,31 @@
jint mount_external, jstring se_info, jstring se_name,
jintArray fdsToClose, jstring instructionSet, jstring appDataDir) {
jlong capabilities = 0;
+
+ // Grant CAP_WAKE_ALARM to the Bluetooth process.
if (uid == AID_BLUETOOTH) {
- // Grant CAP_WAKE_ALARM and CAP_BLOCK_SUSPEND to the Bluetooth process.
- capabilities |= (1LL << CAP_WAKE_ALARM);
- capabilities |= (1LL << CAP_BLOCK_SUSPEND);
+ capabilities |= (1LL << CAP_WAKE_ALARM);
+ }
- // Add the Bluetooth process to the system group.
- jsize length = env->GetArrayLength(reinterpret_cast<jarray>(gids));
- jintArray gids_with_system = env->NewIntArray(length + 1);
- if (!gids_with_system) {
- RuntimeAbort(env, __LINE__, "could not allocate java array for gids");
+ // Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"
+ bool gid_wakelock_found = false;
+ if (gid == AID_WAKELOCK) {
+ gid_wakelock_found = true;
+ } else if (gids != NULL) {
+ jsize gids_num = env->GetArrayLength(gids);
+ ScopedIntArrayRO ar(env, gids);
+ if (ar.get() == NULL) {
+ RuntimeAbort(env, __LINE__, "Bad gids array");
+ }
+ for (int i = 0; i < gids_num; i++) {
+ if (ar[i] == AID_WAKELOCK) {
+ gid_wakelock_found = true;
+ break;
}
-
- jint *gids_elements = env->GetIntArrayElements(gids, NULL);
- jint *gids_with_system_elements = env->GetIntArrayElements(gids_with_system, NULL);
-
- if (!gids_elements || !gids_with_system_elements) {
- RuntimeAbort(env, __LINE__, "could not allocate arrays for gids");
- }
-
- gids_with_system_elements[0] = AID_SYSTEM;
- memcpy(&gids_with_system_elements[1], &gids_elements[0], length * sizeof(jint));
-
- env->ReleaseIntArrayElements(gids, gids_elements, JNI_ABORT);
- env->ReleaseIntArrayElements(gids_with_system, gids_with_system_elements, 0);
- gids = gids_with_system;
+ }
+ }
+ if (gid_wakelock_found) {
+ capabilities |= (1LL << CAP_BLOCK_SUSPEND);
}
return ForkAndSpecializeCommon(env, uid, gid, gids, debug_flags,
@@ -674,7 +674,7 @@
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/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 09cceb6..afcb8f8 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -597,14 +597,14 @@
<!-- Allows an application to access the IMS call service: making and
modifying a call
- <p>Protection level: signature|system
+ <p>Protection level: signature|privileged
@hide
-->
<permission android:name="android.permission.ACCESS_IMS_CALL_SERVICE"
android:permissionGroup="android.permission-group.PHONE"
android:label="@string/permlab_accessImsCallService"
android:description="@string/permdesc_accessImsCallService"
- android:protectionLevel="signature|system" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows an application to read the user's call log.
<p class="note"><strong>Note:</strong> If your app uses the
@@ -871,7 +871,7 @@
<!-- @SystemApi @hide Allows an application to modify cell broadcasts through the content provider.
<p>Not for use by third-party applications. -->
<permission android:name="android.permission.MODIFY_CELL_BROADCASTS"
- android:protectionLevel="signature|system" />
+ android:protectionLevel="signature|privileged" />
<!-- =============================================================== -->
<!-- Permissions for setting the device alarm -->
@@ -892,16 +892,16 @@
<eat-comment />
<!-- Allows an application to modify and remove existing voicemails in the system
- <p>Protection level: system|signature
+ <p>Protection level: signature|privileged
-->
<permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows an application to read voicemails in the system.
- <p>Protection level: system|signature
+ <p>Protection level: signature|privileged
-->
<permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- ======================================= -->
<!-- Permissions for accessing location info -->
@@ -1037,7 +1037,7 @@
allow or disallow phonebook access or message access.
This is not available to third party applications. -->
<permission android:name="android.permission.BLUETOOTH_PRIVILEGED"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Control access to email providers exclusively for Bluetooth
@hide
@@ -1275,26 +1275,26 @@
corresponds to a device SIM.
@hide -->
<permission android:name="android.permission.REGISTER_SIM_SUBSCRIPTION"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- @SystemApi Protects the ability to register any PhoneAccount with
PhoneAccount#CAPABILITY_CALL_PROVIDER.
@hide -->
<permission android:name="android.permission.REGISTER_CALL_PROVIDER"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- @SystemApi Protects the ability to register any PhoneAccount with
PhoneAccount#CAPABILITY_CONNECTION_MANAGER
@hide -->
<permission android:name="android.permission.REGISTER_CONNECTION_MANAGER"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Must be required by a {@link android.telecom.InCallService},
to ensure that only the system can bind to it.
- <p>Protection level: system|signature
+ <p>Protection level: signature|privileged
-->
<permission android:name="android.permission.BIND_INCALL_SERVICE"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Must be required by a {@link android.telecom.ConnectionService},
to ensure that only the system can bind to it.
@@ -1303,24 +1303,24 @@
@SystemApi
@hide -->
<permission android:name="android.permission.BIND_CONNECTION_SERVICE"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Must be required by a {@link android.telecom.ConnectionService},
to ensure that only the system can bind to it.
- <p>Protection level: system|signature
+ <p>Protection level: signature|privileged
-->
<permission android:name="android.permission.BIND_TELECOM_CONNECTION_SERVICE"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- @SystemApi Allows an application to control the in-call experience.
@hide -->
<permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows an application to receive STK related commands.
@hide -->
<permission android:name="android.permission.RECEIVE_STK_COMMANDS"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- ================================== -->
<!-- Permissions for sdcard interaction -->
@@ -1669,12 +1669,12 @@
<!-- @SystemApi Allows mounting and unmounting file systems for removable storage.
<p>Not for use by third-party applications.-->
<permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- @SystemApi Allows formatting file systems for removable storage.
<p>Not for use by third-party applications. -->
<permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows access to ASEC non-destructive API calls
@hide -->
@@ -2322,7 +2322,7 @@
access the network and acquire wakelocks.
<p>Not for use by third-party applications. -->
<permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Permission an application must hold in order to use
{@link android.provider.Settings#ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS}.
@@ -2530,7 +2530,7 @@
<!-- Allows managing (adding, removing) fingerprint templates. Reserved for the system. @hide -->
<permission android:name="android.permission.MANAGE_FINGERPRINT"
- android:protectionLevel="system|signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows an app to reset fingerprint attempt counter. Reserved for the system. @hide -->
<permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT"
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index c1a2038..b66a4ab 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1002,6 +1002,10 @@
<!-- Light sensor event rate in milliseconds for automatic brightness control. -->
<integer name="config_autoBrightnessLightSensorRate">250</integer>
+ <!-- The maximum range of gamma adjustment possible using the screen
+ auto-brightness adjustment setting. -->
+ <fraction name="config_autoBrightnessAdjustmentMaxGamma">300%</fraction>
+
<!-- If we allow automatic adjustment of screen brightness while dozing, how many times we want
to reduce it to preserve the battery. Value of 100% means no scaling. -->
<fraction name="config_screenAutoBrightnessDozeScaleFactor">100%</fraction>
@@ -1019,6 +1023,9 @@
adapt to the environment. This mode may be better suited for watches. -->
<bool name="config_autoBrightnessResetAmbientLuxAfterWarmUp">true</bool>
+ <!-- Period of time in which to consider light samples in milliseconds. -->
+ <integer name="config_autoBrightnessAmbientLightHorizon">10000</integer>
+
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
@@ -2349,7 +2356,7 @@
<!-- Set initial MaxRetry value for operators -->
<integer name="config_mdc_initial_max_retry">1</integer>
- <!-- The OEM specified sensor type for the gesture to launch the camear app. -->
+ <!-- The OEM specified sensor type for the gesture to launch the camera app. -->
<integer name="config_cameraLaunchGestureSensorType">-1</integer>
<!-- The OEM specified sensor string type for the gesture to launch camera app, this value
must match the value of config_cameraLaunchGestureSensorType in OEM's HAL -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 3c9327d..dffaa77 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1689,6 +1689,8 @@
<java-symbol type="id" name="replace_message" />
<java-symbol type="fraction" name="config_dimBehindFadeDuration" />
<java-symbol type="fraction" name="config_screenAutoBrightnessDozeScaleFactor" />
+ <java-symbol type="fraction" name="config_autoBrightnessAdjustmentMaxGamma" />
+ <java-symbol type="integer" name="config_autoBrightnessAmbientLightHorizon"/>
<java-symbol type="integer" name="config_autoBrightnessBrighteningLightDebounce"/>
<java-symbol type="integer" name="config_autoBrightnessDarkeningLightDebounce"/>
<java-symbol type="integer" name="config_autoBrightnessLightSensorRate"/>
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 0000000..951e87a
--- /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/data/etc/platform.xml b/data/etc/platform.xml
index 350310c..4d1e25b 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -44,6 +44,7 @@
<permission name="android.permission.BLUETOOTH_STACK" >
<group gid="net_bt_stack" />
+ <group gid="wakelock" />
</permission>
<permission name="android.permission.NET_TUNNELING" >
diff --git a/libs/common_time/common_time_server.cpp b/libs/common_time/common_time_server.cpp
index 01372e0..f72ffaa 100644
--- a/libs/common_time/common_time_server.cpp
+++ b/libs/common_time/common_time_server.cpp
@@ -143,7 +143,7 @@
// Create the eventfd we will use to signal our thread to wake up when
// needed.
- mWakeupThreadFD = eventfd(0, EFD_NONBLOCK);
+ mWakeupThreadFD = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
// seed the random number generator (used to generated timeline IDs)
srand48(static_cast<unsigned int>(systemTime()));
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index aa73d44..2763e89 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -117,7 +117,7 @@
void Caches::terminate() {
if (!mInitialized) return;
- mRegionMesh.release();
+ mRegionMesh.reset(nullptr);
fboCache.clear();
diff --git a/libs/hwui/GammaFontRenderer.cpp b/libs/hwui/GammaFontRenderer.cpp
index 0bcd83a..070c3d7 100644
--- a/libs/hwui/GammaFontRenderer.cpp
+++ b/libs/hwui/GammaFontRenderer.cpp
@@ -194,7 +194,7 @@
void Lookup3GammaFontRenderer::clear() {
for (int i = 0; i < kGammaCount; i++) {
- mRenderers[i].release();
+ mRenderers[i].reset(nullptr);
}
}
@@ -215,7 +215,7 @@
if (count <= 1 || min < 0) return;
- mRenderers[min].release();
+ mRenderers[min].reset(nullptr);
// Also eliminate the caches for large glyphs, as they consume significant memory
for (int i = 0; i < kGammaCount; ++i) {
diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp
index e16865e..62eeb43 100644
--- a/libs/hwui/Layer.cpp
+++ b/libs/hwui/Layer.cpp
@@ -251,7 +251,7 @@
void Layer::cancelDefer() {
renderNode = nullptr;
deferredUpdateScheduled = false;
- deferredList.release();
+ deferredList.reset(nullptr);
}
void Layer::flush() {
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 6dfb6e8..87a703c 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -110,12 +110,11 @@
mSwapBehavior = swapBehavior;
}
-bool CanvasContext::initialize(ANativeWindow* window) {
+void CanvasContext::initialize(ANativeWindow* window) {
setSurface(window);
- if (mCanvas) return false;
+ if (mCanvas) return;
mCanvas = new OpenGLRenderer(mRenderThread.renderState());
mCanvas->initProperties();
- return true;
}
void CanvasContext::updateSurface(ANativeWindow* window) {
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index f2fa9cd..1e6f830 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -67,7 +67,7 @@
// Won't take effect until next EGLSurface creation
void setSwapBehavior(SwapBehavior swapBehavior);
- bool initialize(ANativeWindow* window);
+ void initialize(ANativeWindow* window);
void updateSurface(ANativeWindow* window);
bool pauseSurface(ANativeWindow* window);
bool hasSurface() { return mNativeWindow.get(); }
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 6d9acd4..30f0073 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -140,14 +140,15 @@
}
CREATE_BRIDGE2(initialize, CanvasContext* context, ANativeWindow* window) {
- return (void*) args->context->initialize(args->window);
+ args->context->initialize(args->window);
+ return nullptr;
}
-bool RenderProxy::initialize(const sp<ANativeWindow>& window) {
+void RenderProxy::initialize(const sp<ANativeWindow>& window) {
SETUP_TASK(initialize);
args->context = mContext;
args->window = window.get();
- return (bool) postAndWait(task);
+ post(task);
}
CREATE_BRIDGE2(updateSurface, CanvasContext* context, ANativeWindow* window) {
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index 5febbe0..db03b29 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -67,7 +67,7 @@
ANDROID_API bool loadSystemProperties();
ANDROID_API void setName(const char* name);
- ANDROID_API bool initialize(const sp<ANativeWindow>& window);
+ ANDROID_API void initialize(const sp<ANativeWindow>& window);
ANDROID_API void updateSurface(const sp<ANativeWindow>& window);
ANDROID_API bool pauseSurface(const sp<ANativeWindow>& window);
ANDROID_API void setup(int width, int height, float lightRadius,
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
index 57969ba..6f74203 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
@@ -129,7 +129,7 @@
int res = mUtils.getCameraService().supportsCameraApi(cameraId, API_VERSION_2);
- if (res != CameraBinderTestUtils.NO_ERROR && res != CameraBinderTestUtils.EOPNOTSUPP) {
+ if (res != CameraBinderTestUtils.NO_ERROR && res != -android.system.OsConstants.EOPNOTSUPP) {
fail("Camera service returned bad value when queried if it supports camera2 api: "
+ res + " for camera ID " + cameraId);
}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java
index 6be538a..5c4b23b 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java
@@ -2,6 +2,7 @@
package com.android.mediaframeworktest.integration;
import static org.junit.Assert.assertNotNull;
+import static android.system.OsConstants.*;
import android.content.Context;
import android.content.pm.FeatureInfo;
@@ -18,11 +19,10 @@
static final String CAMERA_SERVICE_BINDER_NAME = "media.camera";
protected static final int USE_CALLING_UID = -1;
- protected static final int BAD_VALUE = -22;
- protected static final int INVALID_OPERATION = -38;
- protected static final int ALREADY_EXISTS = -17;
+ protected static final int BAD_VALUE = -EINVAL;
+ protected static final int INVALID_OPERATION = -ENOSYS;
+ protected static final int ALREADY_EXISTS = -EEXIST;
public static final int NO_ERROR = 0;
- public static final int EOPNOTSUPP = -95;
private final Context mContext;
public CameraBinderTestUtils(Context context) {
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraUtilsBinderDecoratorTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraUtilsBinderDecoratorTest.java
index 727af78..33c6388 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraUtilsBinderDecoratorTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraUtilsBinderDecoratorTest.java
@@ -27,6 +27,7 @@
import static org.mockito.Mockito.*;
import static android.hardware.camera2.utils.CameraBinderDecorator.*;
import static android.hardware.camera2.CameraAccessException.*;
+import static android.system.OsConstants.*;
import junit.framework.Assert;
@@ -78,9 +79,9 @@
when(mock.doSomethingAlreadyExists()).thenReturn(ALREADY_EXISTS);
when(mock.doSomethingBadValue()).thenReturn(BAD_VALUE);
when(mock.doSomethingDeadObject()).thenReturn(DEAD_OBJECT);
- when(mock.doSomethingBadPolicy()).thenReturn(EACCES);
- when(mock.doSomethingDeviceBusy()).thenReturn(EBUSY);
- when(mock.doSomethingNoSuchDevice()).thenReturn(ENODEV);
+ when(mock.doSomethingBadPolicy()).thenReturn(-EACCES);
+ when(mock.doSomethingDeviceBusy()).thenReturn(-EBUSY);
+ when(mock.doSomethingNoSuchDevice()).thenReturn(-ENODEV);
when(mock.doSomethingUnknownErrorCode()).thenReturn(SOME_ARBITRARY_NEGATIVE_INT);
when(mock.doSomethingThrowDeadObjectException()).thenThrow(new DeadObjectException());
when(mock.doSomethingThrowTransactionTooLargeException()).thenThrow(
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java
index e9f1095..16ea0e4 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java
@@ -128,6 +128,7 @@
private boolean mPendingStateChanged;
private boolean mPendingRecheckAll;
private long mCollapseTime;
+ private int mLastActiveStream;
public VolumeDialog(Context context, int windowType, VolumeDialogController controller,
ZenModeController zenModeController, Callback callback) {
@@ -273,10 +274,14 @@
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom,
int oldLeft, int oldTop, int oldRight, int oldBottom) {
- final boolean moved = oldLeft != left || oldTop != top;
+ final boolean moved = mLastActiveStream != mActiveStream ||
+ oldLeft != left || oldTop != top;
if (D.BUG) Log.d(TAG, "onLayoutChange moved=" + moved
+ " old=" + new Rect(oldLeft, oldTop, oldRight, oldBottom).toShortString()
- + " new=" + new Rect(left,top,right,bottom).toShortString());
+ + "," + mLastActiveStream
+ + " new=" + new Rect(left,top,right,bottom).toShortString()
+ + "," + mActiveStream);
+ mLastActiveStream = mActiveStream;
if (moved) {
for (int i = 0; i < mDialogContentView.getChildCount(); i++) {
final View c = mDialogContentView.getChildAt(i);
diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
index 3337714..07ec843 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
@@ -511,7 +511,7 @@
GregorianCalendar weekRange = new GregorianCalendar();
final long now = weekRange.getTimeInMillis();
setToMidnight(weekRange);
- weekRange.roll(Calendar.DATE, 6);
+ weekRange.add(Calendar.DATE, 6);
final long nextAlarmMs = mController.getNextAlarm();
if (nextAlarmMs > 0) {
GregorianCalendar nextAlarm = new GregorianCalendar();
diff --git a/preloaded-classes b/preloaded-classes
index 4d7a6e1..8e8faf46 100644
--- a/preloaded-classes
+++ b/preloaded-classes
@@ -1765,6 +1765,7 @@
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.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.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/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index b61f90e..85d0821 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -316,25 +316,9 @@
}
public void updateRunningAccounts() {
- mRunningAccounts = AccountManagerService.getSingleton().getRunningAccounts();
-
- if (mBootCompleted) {
- doDatabaseCleanup();
- }
-
- AccountAndUser[] accounts = mRunningAccounts;
- for (ActiveSyncContext currentSyncContext : mActiveSyncContexts) {
- if (!containsAccountAndUser(accounts,
- currentSyncContext.mSyncOperation.target.account,
- currentSyncContext.mSyncOperation.target.userId)) {
- Log.d(TAG, "canceling sync since the account is no longer running");
- sendSyncFinishedOrCanceledMessage(currentSyncContext,
- null /* no result since this is a cancel */);
- }
- }
- // we must do this since we don't bother scheduling alarms when
- // the accounts are not set yet
- sendCheckAlarmsMessage();
+ if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "sending MESSAGE_ACCOUNTS_UPDATED");
+ // Update accounts in handler thread.
+ mSyncHandler.sendEmptyMessage(SyncHandler.MESSAGE_ACCOUNTS_UPDATED);
}
private void doDatabaseCleanup() {
@@ -2099,6 +2083,7 @@
* obj: {@link com.android.server.content.SyncManager.ActiveSyncContext}
*/
private static final int MESSAGE_MONITOR_SYNC = 8;
+ private static final int MESSAGE_ACCOUNTS_UPDATED = 9;
public final SyncNotificationInfo mSyncNotificationInfo = new SyncNotificationInfo();
private Long mAlarmScheduleTime = null;
@@ -2216,6 +2201,13 @@
// to also take into account the periodic syncs.
earliestFuturePollTime = scheduleReadyPeriodicSyncs();
switch (msg.what) {
+ case SyncHandler.MESSAGE_ACCOUNTS_UPDATED:
+ if (Log.isLoggable(TAG, Log.VERBOSE)) {
+ Log.v(TAG, "handleSyncHandlerMessage: MESSAGE_ACCOUNTS_UPDATED");
+ }
+ updateRunningAccountsH();
+ break;
+
case SyncHandler.MESSAGE_CANCEL:
SyncStorageEngine.EndPoint endpoint = (SyncStorageEngine.EndPoint) msg.obj;
Bundle extras = msg.peekData();
@@ -2764,6 +2756,28 @@
return nextReadyToRunTime;
}
+ private void updateRunningAccountsH() {
+ mRunningAccounts = AccountManagerService.getSingleton().getRunningAccounts();
+
+ if (mBootCompleted) {
+ doDatabaseCleanup();
+ }
+
+ AccountAndUser[] accounts = mRunningAccounts;
+ for (ActiveSyncContext currentSyncContext : mActiveSyncContexts) {
+ if (!containsAccountAndUser(accounts,
+ currentSyncContext.mSyncOperation.target.account,
+ currentSyncContext.mSyncOperation.target.userId)) {
+ Log.d(TAG, "canceling sync since the account is no longer running");
+ sendSyncFinishedOrCanceledMessage(currentSyncContext,
+ null /* no result since this is a cancel */);
+ }
+ }
+ // we must do this since we don't bother scheduling alarms when
+ // the accounts are not set yet
+ sendCheckAlarmsMessage();
+ }
+
private boolean isSyncNotUsingNetworkH(ActiveSyncContext activeSyncContext) {
final long bytesTransferredCurrent =
getTotalBytesTransferredByUid(activeSyncContext.mSyncAdapterUid);
diff --git a/services/core/java/com/android/server/display/AutomaticBrightnessController.java b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
index e15bca6..1908f72 100644
--- a/services/core/java/com/android/server/display/AutomaticBrightnessController.java
+++ b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
@@ -49,23 +49,12 @@
// If true, enables the use of the screen auto-brightness adjustment setting.
private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT = true;
- // The maximum range of gamma adjustment possible using the screen
- // auto-brightness adjustment setting.
- private static final float SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT_MAX_GAMMA = 3.0f;
-
- // Period of time in which to consider light samples in milliseconds.
- private static final int AMBIENT_LIGHT_HORIZON = 10000;
-
// Hysteresis constraints for brightening or darkening.
// The recent lux must have changed by at least this fraction relative to the
// current ambient lux before a change will be considered.
private static final float BRIGHTENING_LIGHT_HYSTERESIS = 0.10f;
private static final float DARKENING_LIGHT_HYSTERESIS = 0.20f;
- // The intercept used for the weighting calculation. This is used in order to keep all possible
- // weighting values positive.
- private static final int WEIGHTING_INTERCEPT = AMBIENT_LIGHT_HORIZON;
-
// How long the current sensor reading is assumed to be valid beyond the current time.
// This provides a bit of prediction, as well as ensures that the weight for the last sample is
// non-zero, which in turn ensures that the total weight is non-zero.
@@ -132,6 +121,13 @@
// and only then decide whether to change brightness.
private final boolean mResetAmbientLuxAfterWarmUpConfig;
+ // Period of time in which to consider light samples in milliseconds.
+ private final int mAmbientLightHorizon;
+
+ // The intercept used for the weighting calculation. This is used in order to keep all possible
+ // weighting values positive.
+ private final int mWeightingIntercept;
+
// Amount of time to delay auto-brightness after screen on while waiting for
// the light sensor to warm-up in milliseconds.
// May be 0 if no warm-up is required.
@@ -179,6 +175,10 @@
// The screen auto-brightness adjustment factor in the range -1 (dimmer) to 1 (brighter)
private float mScreenAutoBrightnessAdjustment = 0.0f;
+ // The maximum range of gamma adjustment possible using the screen
+ // auto-brightness adjustment setting.
+ private float mScreenAutoBrightnessAdjustmentMaxGamma;
+
// The last screen auto-brightness gamma. (For printing in dump() only.)
private float mLastScreenAutoBrightnessGamma = 1.0f;
@@ -197,7 +197,8 @@
SensorManager sensorManager, Spline autoBrightnessSpline, int lightSensorWarmUpTime,
int brightnessMin, int brightnessMax, float dozeScaleFactor,
int lightSensorRate, long brighteningLightDebounceConfig,
- long darkeningLightDebounceConfig, boolean resetAmbientLuxAfterWarmUpConfig) {
+ long darkeningLightDebounceConfig, boolean resetAmbientLuxAfterWarmUpConfig,
+ int ambientLightHorizon, float autoBrightnessAdjustmentMaxGamma ) {
mCallbacks = callbacks;
mTwilight = LocalServices.getService(TwilightManager.class);
mSensorManager = sensorManager;
@@ -210,9 +211,12 @@
mBrighteningLightDebounceConfig = brighteningLightDebounceConfig;
mDarkeningLightDebounceConfig = darkeningLightDebounceConfig;
mResetAmbientLuxAfterWarmUpConfig = resetAmbientLuxAfterWarmUpConfig;
+ mAmbientLightHorizon = ambientLightHorizon;
+ mWeightingIntercept = ambientLightHorizon;
+ mScreenAutoBrightnessAdjustmentMaxGamma = autoBrightnessAdjustmentMaxGamma;
mHandler = new AutomaticBrightnessHandler(looper);
- mAmbientLightRingBuffer = new AmbientLightRingBuffer(mLightSensorRate);
+ mAmbientLightRingBuffer = new AmbientLightRingBuffer(mLightSensorRate, mAmbientLightHorizon);
if (!DEBUG_PRETEND_LIGHT_SENSOR_ABSENT) {
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
@@ -266,6 +270,7 @@
pw.println(" mLightSensorEnabled=" + mLightSensorEnabled);
pw.println(" mLightSensorEnableTime=" + TimeUtils.formatUptime(mLightSensorEnableTime));
pw.println(" mAmbientLux=" + mAmbientLux);
+ pw.println(" mAmbientLightHorizon=" + mAmbientLightHorizon);
pw.println(" mBrighteningLuxThreshold=" + mBrighteningLuxThreshold);
pw.println(" mDarkeningLuxThreshold=" + mDarkeningLuxThreshold);
pw.println(" mLastObservedLux=" + mLastObservedLux);
@@ -274,6 +279,7 @@
pw.println(" mAmbientLightRingBuffer=" + mAmbientLightRingBuffer);
pw.println(" mScreenAutoBrightness=" + mScreenAutoBrightness);
pw.println(" mScreenAutoBrightnessAdjustment=" + mScreenAutoBrightnessAdjustment);
+ pw.println(" mScreenAutoBrightnessAdjustmentMaxGamma=" + mScreenAutoBrightnessAdjustmentMaxGamma);
pw.println(" mLastScreenAutoBrightnessGamma=" + mLastScreenAutoBrightnessGamma);
pw.println(" mDozing=" + mDozing);
}
@@ -309,7 +315,7 @@
private void applyLightSensorMeasurement(long time, float lux) {
mRecentLightSamples++;
- mAmbientLightRingBuffer.prune(time - AMBIENT_LIGHT_HORIZON);
+ mAmbientLightRingBuffer.prune(time - mAmbientLightHorizon);
mAmbientLightRingBuffer.push(time, lux);
// Remember this sample value.
@@ -360,14 +366,14 @@
return sum / totalWeight;
}
- private static float calculateWeight(long startDelta, long endDelta) {
+ private float calculateWeight(long startDelta, long endDelta) {
return weightIntegral(endDelta) - weightIntegral(startDelta);
}
- // Evaluates the integral of y = x + WEIGHTING_INTERCEPT. This is always positive for the
+ // Evaluates the integral of y = x + mWeightingIntercept. This is always positive for the
// horizon we're looking at and provides a non-linear weighting for light samples.
- private static float weightIntegral(long x) {
- return x * (x * 0.5f + WEIGHTING_INTERCEPT);
+ private float weightIntegral(long x) {
+ return x * (x * 0.5f + mWeightingIntercept);
}
private long nextAmbientLightBrighteningTransition(long time) {
@@ -396,7 +402,7 @@
private void updateAmbientLux() {
long time = SystemClock.uptimeMillis();
- mAmbientLightRingBuffer.prune(time - AMBIENT_LIGHT_HORIZON);
+ mAmbientLightRingBuffer.prune(time - mAmbientLightHorizon);
updateAmbientLux(time);
}
@@ -470,7 +476,7 @@
if (USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT
&& mScreenAutoBrightnessAdjustment != 0.0f) {
- final float adjGamma = MathUtils.pow(SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT_MAX_GAMMA,
+ final float adjGamma = MathUtils.pow(mScreenAutoBrightnessAdjustmentMaxGamma,
Math.min(1.0f, Math.max(-1.0f, -mScreenAutoBrightnessAdjustment)));
gamma *= adjGamma;
if (DEBUG) {
@@ -653,8 +659,8 @@
private int mEnd;
private int mCount;
- public AmbientLightRingBuffer(long lightSensorRate) {
- mCapacity = (int) Math.ceil(AMBIENT_LIGHT_HORIZON * BUFFER_SLACK / lightSensorRate);
+ public AmbientLightRingBuffer(long lightSensorRate, int ambientLightHorizon) {
+ mCapacity = (int) Math.ceil(ambientLightHorizon * BUFFER_SLACK / lightSensorRate);
mRingLux = new float[mCapacity];
mRingTime = new long[mCapacity];
}
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 7b49530..433d887 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -311,6 +311,11 @@
com.android.internal.R.integer.config_autoBrightnessDarkeningLightDebounce);
boolean autoBrightnessResetAmbientLuxAfterWarmUp = resources.getBoolean(
com.android.internal.R.bool.config_autoBrightnessResetAmbientLuxAfterWarmUp);
+ int ambientLightHorizon = resources.getInteger(
+ com.android.internal.R.integer.config_autoBrightnessAmbientLightHorizon);
+ float autoBrightnessAdjustmentMaxGamma = resources.getFraction(
+ com.android.internal.R.fraction.config_autoBrightnessAdjustmentMaxGamma,
+ 1, 1);
if (mUseSoftwareAutoBrightnessConfig) {
int[] lux = resources.getIntArray(
@@ -348,7 +353,8 @@
lightSensorWarmUpTimeConfig, screenBrightnessRangeMinimum,
mScreenBrightnessRangeMaximum, dozeScaleFactor, lightSensorRate,
brighteningLightDebounce, darkeningLightDebounce,
- autoBrightnessResetAmbientLuxAfterWarmUp);
+ autoBrightnessResetAmbientLuxAfterWarmUp,
+ ambientLightHorizon, autoBrightnessAdjustmentMaxGamma);
}
}
diff --git a/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
index 8fc979c..cc25c8c 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 @@
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 b6742a1..d798518 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 @@
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 b12795c..68bde35 100644
--- a/test-runner/Android.mk
+++ b/test-runner/Android.mk
@@ -20,7 +20,7 @@
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/tests/NetworkSecurityConfigTest/src/android/security/net/config/TestCertificateSource.java b/tests/NetworkSecurityConfigTest/src/android/security/net/config/TestCertificateSource.java
index 69b2a9d..0c36063 100644
--- a/tests/NetworkSecurityConfigTest/src/android/security/net/config/TestCertificateSource.java
+++ b/tests/NetworkSecurityConfigTest/src/android/security/net/config/TestCertificateSource.java
@@ -44,4 +44,12 @@
}
return anchor.getTrustedCert();
}
+
+ public X509Certificate findByIssuerAndSignature(X509Certificate cert) {
+ java.security.cert.TrustAnchor anchor = mIndex.findByIssuerAndSignature(cert);
+ if (anchor == null) {
+ return null;
+ }
+ return anchor.getTrustedCert();
+ }
}
diff --git a/tests/NetworkSecurityConfigTest/src/android/security/net/config/XmlConfigTests.java b/tests/NetworkSecurityConfigTest/src/android/security/net/config/XmlConfigTests.java
index 998bb68..35e3ef4 100644
--- a/tests/NetworkSecurityConfigTest/src/android/security/net/config/XmlConfigTests.java
+++ b/tests/NetworkSecurityConfigTest/src/android/security/net/config/XmlConfigTests.java
@@ -22,6 +22,7 @@
import android.util.ArraySet;
import android.util.Pair;
import java.io.IOException;
+import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import java.security.KeyStore;
@@ -34,6 +35,7 @@
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLHandshakeException;
+import javax.net.ssl.SSLSocket;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
@@ -103,6 +105,15 @@
TestUtils.assertConnectionFails(context, "developer.android.com", 443);
TestUtils.assertUrlConnectionFails(context, "google.com", 443);
TestUtils.assertUrlConnectionSucceeds(context, "android.com", 443);
+ // Check that sockets created without the hostname fail with per-domain configs
+ SSLSocket socket = (SSLSocket) context.getSocketFactory()
+ .createSocket(InetAddress.getByName("android.com"), 443);
+ try {
+ socket.startHandshake();
+ socket.getInputStream();
+ fail();
+ } catch (IOException expected) {
+ }
}
public void testBasicPinning() throws Exception {
diff --git a/tools/layoutlib/Android.mk b/tools/layoutlib/Android.mk
index 61ddb04..53bfc15 100644
--- a/tools/layoutlib/Android.mk
+++ b/tools/layoutlib/Android.mk
@@ -30,6 +30,9 @@
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 @@
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 @@
$(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) \