--- a/jdk/src/share/classes/com/sun/jdi/AbsentInformationException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/AbsentInformationException.java Wed Oct 09 13:07:58 2013 -0700
@@ -31,6 +31,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class AbsentInformationException extends Exception
{
private static final long serialVersionUID = 4988939309582416373L;
--- a/jdk/src/share/classes/com/sun/jdi/Accessible.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Accessible.java Wed Oct 09 13:07:58 2013 -0700
@@ -36,6 +36,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface Accessible {
/**
--- a/jdk/src/share/classes/com/sun/jdi/ArrayReference.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ArrayReference.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface ArrayReference extends ObjectReference {
/**
--- a/jdk/src/share/classes/com/sun/jdi/ArrayType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ArrayType.java Wed Oct 09 13:07:58 2013 -0700
@@ -38,6 +38,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface ArrayType extends ReferenceType {
/**
--- a/jdk/src/share/classes/com/sun/jdi/BooleanType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/BooleanType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,5 +35,6 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface BooleanType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/BooleanValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/BooleanValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface BooleanValue extends PrimitiveValue
-{
+@jdk.Exported
+public interface BooleanValue extends PrimitiveValue {
+
/**
* Returns this BooleanValue as a boolean.
*
--- a/jdk/src/share/classes/com/sun/jdi/Bootstrap.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Bootstrap.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,6 +34,7 @@
* @since 1.3
*/
+@jdk.Exported
public class Bootstrap extends Object {
/**
--- a/jdk/src/share/classes/com/sun/jdi/ByteType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ByteType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-public interface ByteType extends PrimitiveType
-{
+@jdk.Exported
+public interface ByteType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/ByteValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ByteValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,8 +33,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface ByteValue extends PrimitiveValue, Comparable<ByteValue>
-{
+@jdk.Exported
+public interface ByteValue extends PrimitiveValue, Comparable<ByteValue> {
+
/**
* Returns this ByteValue as a <code>byte</code>.
*
--- a/jdk/src/share/classes/com/sun/jdi/CharType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/CharType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-public interface CharType extends PrimitiveType
-{
+@jdk.Exported
+public interface CharType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/CharValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/CharValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface CharValue extends PrimitiveValue, Comparable<CharValue>
-{
+@jdk.Exported
+public interface CharValue extends PrimitiveValue, Comparable<CharValue> {
+
/**
* Returns this CharValue as a <code>char</code>.
*
--- a/jdk/src/share/classes/com/sun/jdi/ClassLoaderReference.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ClassLoaderReference.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface ClassLoaderReference extends ObjectReference {
/**
--- a/jdk/src/share/classes/com/sun/jdi/ClassNotLoadedException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ClassNotLoadedException.java Wed Oct 09 13:07:58 2013 -0700
@@ -67,6 +67,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class ClassNotLoadedException extends Exception
{
private static final long serialVersionUID = -6242978768444298722L;
--- a/jdk/src/share/classes/com/sun/jdi/ClassNotPreparedException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ClassNotPreparedException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class ClassNotPreparedException extends RuntimeException {
private static final long serialVersionUID = -6120698967144079642L;
public ClassNotPreparedException()
--- a/jdk/src/share/classes/com/sun/jdi/ClassObjectReference.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ClassObjectReference.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface ClassObjectReference extends ObjectReference {
/**
--- a/jdk/src/share/classes/com/sun/jdi/ClassType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ClassType.java Wed Oct 09 13:07:58 2013 -0700
@@ -41,6 +41,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface ClassType extends ReferenceType {
/**
* Gets the superclass of this class.
--- a/jdk/src/share/classes/com/sun/jdi/DoubleType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/DoubleType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-public interface DoubleType extends PrimitiveType
-{
+@jdk.Exported
+public interface DoubleType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/DoubleValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/DoubleValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface DoubleValue extends PrimitiveValue, Comparable<DoubleValue>
-{
+@jdk.Exported
+public interface DoubleValue extends PrimitiveValue, Comparable<DoubleValue> {
+
/**
* Returns this DoubleValue as a <code>double</code>.
*
--- a/jdk/src/share/classes/com/sun/jdi/Field.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Field.java Wed Oct 09 13:07:58 2013 -0700
@@ -38,6 +38,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface Field extends TypeComponent, Comparable<Field> {
/**
--- a/jdk/src/share/classes/com/sun/jdi/FloatType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/FloatType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-public interface FloatType extends PrimitiveType
-{
+@jdk.Exported
+public interface FloatType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/FloatValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/FloatValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface FloatValue extends PrimitiveValue, Comparable<FloatValue>
-{
+@jdk.Exported
+public interface FloatValue extends PrimitiveValue, Comparable<FloatValue> {
+
/**
* Returns this FloatValue as a float.
*
--- a/jdk/src/share/classes/com/sun/jdi/IncompatibleThreadStateException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/IncompatibleThreadStateException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,16 +32,15 @@
* @author Gordon Hirsch
* @since 1.3
*/
-public class IncompatibleThreadStateException extends Exception
-{
+@jdk.Exported
+public class IncompatibleThreadStateException extends Exception {
private static final long serialVersionUID = 6199174323414551389L;
- public IncompatibleThreadStateException()
- {
+
+ public IncompatibleThreadStateException() {
super();
}
- public IncompatibleThreadStateException(String s)
- {
+ public IncompatibleThreadStateException(String s) {
super(s);
}
}
--- a/jdk/src/share/classes/com/sun/jdi/InconsistentDebugInfoException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InconsistentDebugInfoException.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,6 +34,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class InconsistentDebugInfoException extends RuntimeException {
private static final long serialVersionUID = 7964236415376861808L;
public InconsistentDebugInfoException() {
--- a/jdk/src/share/classes/com/sun/jdi/IntegerType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/IntegerType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-public interface IntegerType extends PrimitiveType
-{
+@jdk.Exported
+public interface IntegerType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/IntegerValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/IntegerValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface IntegerValue extends PrimitiveValue, Comparable<IntegerValue>
-{
+@jdk.Exported
+public interface IntegerValue extends PrimitiveValue, Comparable<IntegerValue> {
+
/**
* Returns this IntegerValue as an int.
*
--- a/jdk/src/share/classes/com/sun/jdi/InterfaceType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InterfaceType.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface InterfaceType extends ReferenceType {
/**
* Gets the interfaces directly extended by this interface.
--- a/jdk/src/share/classes/com/sun/jdi/InternalException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InternalException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class InternalException extends RuntimeException {
private static final long serialVersionUID = -9171606393104480607L;
private int errorCode;
--- a/jdk/src/share/classes/com/sun/jdi/InvalidCodeIndexException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InvalidCodeIndexException.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,6 +34,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
@Deprecated
public class InvalidCodeIndexException extends RuntimeException {
private static final long serialVersionUID = 7416010225133747805L;
--- a/jdk/src/share/classes/com/sun/jdi/InvalidLineNumberException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InvalidLineNumberException.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,6 +34,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
@Deprecated
public class InvalidLineNumberException extends RuntimeException {
private static final long serialVersionUID = 4048709912372692875L;
--- a/jdk/src/share/classes/com/sun/jdi/InvalidStackFrameException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InvalidStackFrameException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class InvalidStackFrameException extends RuntimeException {
private static final long serialVersionUID = -1919378296505827922L;
public InvalidStackFrameException() {
--- a/jdk/src/share/classes/com/sun/jdi/InvalidTypeException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InvalidTypeException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,16 +32,15 @@
* @author James McIlree
* @since 1.3
*/
-public class InvalidTypeException extends Exception
-{
+@jdk.Exported
+public class InvalidTypeException extends Exception {
private static final long serialVersionUID = 2256667231949650806L;
- public InvalidTypeException()
- {
+
+ public InvalidTypeException() {
super();
}
- public InvalidTypeException(String s)
- {
+ public InvalidTypeException(String s) {
super(s);
}
}
--- a/jdk/src/share/classes/com/sun/jdi/InvocationException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/InvocationException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,19 +32,17 @@
* @author Gordon Hirsch
* @since 1.3
*/
-public class InvocationException extends Exception
-{
+@jdk.Exported
+public class InvocationException extends Exception {
private static final long serialVersionUID = 6066780907971918568L;
ObjectReference exception;
- public InvocationException(ObjectReference exception)
- {
+ public InvocationException(ObjectReference exception) {
super("Exception occurred in target VM");
this.exception = exception;
}
- public ObjectReference exception()
- {
+ public ObjectReference exception() {
return exception;
}
}
--- a/jdk/src/share/classes/com/sun/jdi/JDIPermission.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/JDIPermission.java Wed Oct 09 13:07:58 2013 -0700
@@ -78,6 +78,7 @@
*
*/
+@jdk.Exported
public final class JDIPermission extends java.security.BasicPermission {
private static final long serialVersionUID = -6988461416938786271L;
/**
--- a/jdk/src/share/classes/com/sun/jdi/LocalVariable.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/LocalVariable.java Wed Oct 09 13:07:58 2013 -0700
@@ -42,6 +42,7 @@
* @since 1.3
*/
+@jdk.Exported
public interface LocalVariable extends Mirror, Comparable<LocalVariable> {
/**
--- a/jdk/src/share/classes/com/sun/jdi/Locatable.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Locatable.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,6 +33,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface Locatable {
/**
* Returns the {@link Location} of this mirror, if there
--- a/jdk/src/share/classes/com/sun/jdi/Location.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Location.java Wed Oct 09 13:07:58 2013 -0700
@@ -86,6 +86,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface Location extends Mirror, Comparable<Location> {
/**
--- a/jdk/src/share/classes/com/sun/jdi/LongType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/LongType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-public interface LongType extends PrimitiveType
-{
+@jdk.Exported
+public interface LongType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/LongValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/LongValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface LongValue extends PrimitiveValue, Comparable<LongValue>
-{
+@jdk.Exported
+public interface LongValue extends PrimitiveValue, Comparable<LongValue> {
+
/**
* Returns this LongValue as a long.
*
--- a/jdk/src/share/classes/com/sun/jdi/Method.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Method.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface Method extends TypeComponent, Locatable, Comparable<Method> {
/**
--- a/jdk/src/share/classes/com/sun/jdi/Mirror.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Mirror.java Wed Oct 09 13:07:58 2013 -0700
@@ -56,6 +56,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface Mirror {
/**
--- a/jdk/src/share/classes/com/sun/jdi/MonitorInfo.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/MonitorInfo.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @since 1.6
*/
+@jdk.Exported
public interface MonitorInfo extends Mirror {
/**
--- a/jdk/src/share/classes/com/sun/jdi/NativeMethodException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/NativeMethodException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class NativeMethodException extends RuntimeException {
private static final long serialVersionUID = 3924951669039469992L;
--- a/jdk/src/share/classes/com/sun/jdi/ObjectCollectedException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ObjectCollectedException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class ObjectCollectedException extends RuntimeException {
private static final long serialVersionUID = -1928428056197269588L;
public ObjectCollectedException() {
--- a/jdk/src/share/classes/com/sun/jdi/ObjectReference.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ObjectReference.java Wed Oct 09 13:07:58 2013 -0700
@@ -55,8 +55,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface ObjectReference extends Value
-{
+@jdk.Exported
+public interface ObjectReference extends Value {
+
/**
* Gets the {@link ReferenceType} that mirrors the type
* of this object. The type may be a subclass or implementor of the
--- a/jdk/src/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,6 +33,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface PathSearchingVirtualMachine extends VirtualMachine {
/**
* Get the class path for this virtual machine.
--- a/jdk/src/share/classes/com/sun/jdi/PrimitiveType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/PrimitiveType.java Wed Oct 09 13:07:58 2013 -0700
@@ -37,5 +37,6 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface PrimitiveType extends Type {
}
--- a/jdk/src/share/classes/com/sun/jdi/PrimitiveValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/PrimitiveValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,8 +35,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface PrimitiveValue extends Value
-{
+@jdk.Exported
+public interface PrimitiveValue extends Value {
+
/**
* Converts this value to a BooleanValue and returns the result
* as a boolean.
--- a/jdk/src/share/classes/com/sun/jdi/ReferenceType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ReferenceType.java Wed Oct 09 13:07:58 2013 -0700
@@ -77,6 +77,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface ReferenceType
extends Type, Comparable<ReferenceType>, Accessible
{
--- a/jdk/src/share/classes/com/sun/jdi/ShortType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ShortType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,5 +35,6 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface ShortType extends PrimitiveType {
}
--- a/jdk/src/share/classes/com/sun/jdi/ShortValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ShortValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface ShortValue extends PrimitiveValue, Comparable<ShortValue>
-{
+@jdk.Exported
+public interface ShortValue extends PrimitiveValue, Comparable<ShortValue> {
+
/**
* Returns this ShortValue as a short.
*
--- a/jdk/src/share/classes/com/sun/jdi/StackFrame.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/StackFrame.java Wed Oct 09 13:07:58 2013 -0700
@@ -58,8 +58,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface StackFrame extends Mirror, Locatable
-{
+@jdk.Exported
+public interface StackFrame extends Mirror, Locatable {
+
/**
* Returns the {@link Location} of the current instruction in the frame.
* The method for which this frame was created can also be accessed
--- a/jdk/src/share/classes/com/sun/jdi/StringReference.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/StringReference.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,8 +35,8 @@
* @author James McIlree
* @since 1.3
*/
-public interface StringReference extends ObjectReference
-{
+@jdk.Exported
+public interface StringReference extends ObjectReference {
/**
* Returns the StringReference as a String. The returned string
* is the equivalent of the mirrored string, but is an entity in the
--- a/jdk/src/share/classes/com/sun/jdi/ThreadGroupReference.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ThreadGroupReference.java Wed Oct 09 13:07:58 2013 -0700
@@ -37,8 +37,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface ThreadGroupReference extends ObjectReference
-{
+@jdk.Exported
+public interface ThreadGroupReference extends ObjectReference {
+
/**
* Returns the name of this thread group.
*
--- a/jdk/src/share/classes/com/sun/jdi/ThreadReference.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/ThreadReference.java Wed Oct 09 13:07:58 2013 -0700
@@ -36,8 +36,8 @@
* @author James McIlree
* @since 1.3
*/
-public interface ThreadReference extends ObjectReference
-{
+@jdk.Exported
+public interface ThreadReference extends ObjectReference {
/** Thread status is unknown */
public final int THREAD_STATUS_UNKNOWN =-1;
/** Thread has completed execution */
--- a/jdk/src/share/classes/com/sun/jdi/Type.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Type.java Wed Oct 09 13:07:58 2013 -0700
@@ -127,8 +127,9 @@
* @author James McIlree
* @since 1.3
*/
-public interface Type extends Mirror
-{
+@jdk.Exported
+public interface Type extends Mirror {
+
/**
* Returns the JNI-style signature for this type.
* <p>
--- a/jdk/src/share/classes/com/sun/jdi/TypeComponent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/TypeComponent.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface TypeComponent extends Mirror, Accessible {
/**
--- a/jdk/src/share/classes/com/sun/jdi/VMCannotBeModifiedException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VMCannotBeModifiedException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Jim Holmlund
* @since 1.5
*/
+@jdk.Exported
public class VMCannotBeModifiedException extends UnsupportedOperationException {
private static final long serialVersionUID = -4063879815130164009L;
public VMCannotBeModifiedException() {
--- a/jdk/src/share/classes/com/sun/jdi/VMDisconnectedException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VMDisconnectedException.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,6 +33,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public class VMDisconnectedException extends RuntimeException {
private static final long serialVersionUID = 2892975269768351637L;
--- a/jdk/src/share/classes/com/sun/jdi/VMMismatchException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VMMismatchException.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,6 +33,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class VMMismatchException extends RuntimeException {
private static final long serialVersionUID = 289169358790459564L;
public VMMismatchException() {
--- a/jdk/src/share/classes/com/sun/jdi/VMOutOfMemoryException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VMOutOfMemoryException.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public class VMOutOfMemoryException extends RuntimeException {
private static final long serialVersionUID = 71504228548910686L;
public VMOutOfMemoryException() {
--- a/jdk/src/share/classes/com/sun/jdi/Value.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/Value.java Wed Oct 09 13:07:58 2013 -0700
@@ -168,8 +168,8 @@
* @since 1.3
*/
-public interface Value extends Mirror
-{
+@jdk.Exported
+public interface Value extends Mirror {
/**
* Returns the run-time type of this value.
*
--- a/jdk/src/share/classes/com/sun/jdi/VirtualMachine.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VirtualMachine.java Wed Oct 09 13:07:58 2013 -0700
@@ -70,6 +70,7 @@
* @author James McIlree
* @since 1.3
*/
+@jdk.Exported
public interface VirtualMachine extends Mirror {
/**
--- a/jdk/src/share/classes/com/sun/jdi/VirtualMachineManager.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VirtualMachineManager.java Wed Oct 09 13:07:58 2013 -0700
@@ -271,6 +271,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface VirtualMachineManager {
/**
--- a/jdk/src/share/classes/com/sun/jdi/VoidType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VoidType.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,5 +35,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface VoidType extends Type {
}
--- a/jdk/src/share/classes/com/sun/jdi/VoidValue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/VoidValue.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface VoidValue extends Value {
/**
--- a/jdk/src/share/classes/com/sun/jdi/connect/AttachingConnector.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/AttachingConnector.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface AttachingConnector extends Connector {
/**
* Attaches to a running application and and returns a
--- a/jdk/src/share/classes/com/sun/jdi/connect/Connector.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/Connector.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface Connector {
/**
* Returns a short identifier for the connector. Connector implementors
@@ -91,6 +92,7 @@
* {@link Connector.IntegerArgument},
* or {@link Connector.SelectedArgument}.
*/
+ @jdk.Exported
public interface Argument extends Serializable {
/**
* Returns a short, unique identifier for the argument.
@@ -156,6 +158,7 @@
* whose value is Boolean. Boolean values are represented
* by the localized versions of the strings "true" and "false".
*/
+ @jdk.Exported
public interface BooleanArgument extends Argument {
/**
* Sets the value of the argument.
@@ -196,6 +199,7 @@
* whose value is an integer. Integer values are represented
* by their corresponding strings.
*/
+ @jdk.Exported
public interface IntegerArgument extends Argument {
/**
* Sets the value of the argument.
@@ -257,6 +261,7 @@
* Specification for and value of a Connector argument,
* whose value is a String.
*/
+ @jdk.Exported
public interface StringArgument extends Argument {
/**
* Performs basic sanity check of argument.
@@ -269,6 +274,7 @@
* Specification for and value of a Connector argument,
* whose value is a String selected from a list of choices.
*/
+ @jdk.Exported
public interface SelectedArgument extends Argument {
/**
* Return the possible values for the argument
--- a/jdk/src/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java Wed Oct 09 13:07:58 2013 -0700
@@ -36,8 +36,9 @@
* @author Gordon Hirsch
* @since 1.3
*/
-public class IllegalConnectorArgumentsException extends Exception
-{
+@jdk.Exported
+public class IllegalConnectorArgumentsException extends Exception {
+
private static final long serialVersionUID = -3042212603611350941L;
List<String> names;
--- a/jdk/src/share/classes/com/sun/jdi/connect/LaunchingConnector.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/LaunchingConnector.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface LaunchingConnector extends Connector {
/**
* Launches an application and connects to its VM. Properties
--- a/jdk/src/share/classes/com/sun/jdi/connect/ListeningConnector.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/ListeningConnector.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface ListeningConnector extends Connector {
/**
* Indicates whether this listening connector supports multiple
--- a/jdk/src/share/classes/com/sun/jdi/connect/Transport.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/Transport.java Wed Oct 09 13:07:58 2013 -0700
@@ -42,6 +42,7 @@
* @author Gordon Hirsch
* @since 1.3
*/
+@jdk.Exported
public interface Transport {
/**
* Returns a short identifier for the transport.
--- a/jdk/src/share/classes/com/sun/jdi/connect/TransportTimeoutException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/TransportTimeoutException.java Wed Oct 09 13:07:58 2013 -0700
@@ -54,6 +54,7 @@
*
* @since 1.5
*/
+@jdk.Exported
public class TransportTimeoutException extends java.io.IOException {
private static final long serialVersionUID = 4107035242623365074L;
/**
--- a/jdk/src/share/classes/com/sun/jdi/connect/VMStartException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/VMStartException.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,8 +34,9 @@
* @author Gordon Hirsch
* @since 1.3
*/
-public class VMStartException extends Exception
-{
+@jdk.Exported
+public class VMStartException extends Exception {
+
private static final long serialVersionUID = 6408644824640801020L;
Process process;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/jdi/connect/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package defines connections between the virtual machine
+ * using the JDI and the target virtual machine.
+ * In concert with {@link com.sun.jdi.VirtualMachineManager}
+ * it is the mechanism for launching, attaching, etc to
+ * target virtual machines.
+ * <p>
+ * Methods may be added to the interfaces in the JDI packages in future
+ * releases. Existing packages may be renamed if the JDI becomes a standard
+ * extension.
+ */
+
+@jdk.Exported
+package com.sun.jdi.connect;
--- a/jdk/src/share/classes/com/sun/jdi/connect/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-<html>
-<head>
-<title>com.sun.jdi.connect description</title>
-<!--
-
-Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-</head>
-<body bgcolor="white">
-
-This package defines
-connections between the virtual machine
-using the JDI and the target virtual machine.
-In concert with {@link com.sun.jdi.VirtualMachineManager}
-it is the mechanism for launching, attaching, etc to
-target virtual machines.
-<p>
-Methods may be added to the interfaces in the JDI packages in future
-releases. Existing packages may be renamed if the JDI becomes a standard
-extension.
- </body>
-</html>
--- a/jdk/src/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
*
* @since 1.5
*/
+@jdk.Exported
public class ClosedConnectionException extends java.io.IOException {
private static final long serialVersionUID = 3877032124297204774L;
/**
--- a/jdk/src/share/classes/com/sun/jdi/connect/spi/Connection.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/spi/Connection.java Wed Oct 09 13:07:58 2013 -0700
@@ -56,6 +56,7 @@
* @since 1.5
*/
+@jdk.Exported
public abstract class Connection {
/**
--- a/jdk/src/share/classes/com/sun/jdi/connect/spi/TransportService.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/connect/spi/TransportService.java Wed Oct 09 13:07:58 2013 -0700
@@ -77,6 +77,7 @@
* @since 1.5
*/
+@jdk.Exported
public abstract class TransportService {
/**
@@ -96,6 +97,7 @@
/**
* The transport service capabilities.
*/
+ @jdk.Exported
public static abstract class Capabilities {
/**
@@ -229,6 +231,7 @@
* #stopListening stopListening} to stop the transport
* service from listening on an address.
*/
+ @jdk.Exported
public static abstract class ListenKey {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/jdi/connect/spi/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package comprises the interfaces and classes used to
+ * develop new {@link com.sun.jdi.connect.spi.TransportService}
+ * implementations.
+ */
+
+@jdk.Exported
+package com.sun.jdi.connect.spi;
--- a/jdk/src/share/classes/com/sun/jdi/connect/spi/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-<html>
-<head>
- <title>com.sun.jdi.connect.spi description</title>
-<!--
-
-Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-</head>
-<body bgcolor="white">
-This package comprises the interfaces and classes used to
-develop new {@link com.sun.jdi.connect.spi.TransportService}
-implementations.
- </body>
-</html>
--- a/jdk/src/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -37,5 +37,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface AccessWatchpointEvent extends WatchpointEvent {
}
--- a/jdk/src/share/classes/com/sun/jdi/event/BreakpointEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/BreakpointEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -47,6 +47,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface BreakpointEvent extends LocatableEvent {
-
}
--- a/jdk/src/share/classes/com/sun/jdi/event/ClassPrepareEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/ClassPrepareEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ClassPrepareEvent extends Event {
/**
* Returns the thread in which this event has occurred.
--- a/jdk/src/share/classes/com/sun/jdi/event/ClassUnloadEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/ClassUnloadEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ClassUnloadEvent extends Event {
/**
* Returns the name of the class that has been unloaded.
--- a/jdk/src/share/classes/com/sun/jdi/event/Event.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/Event.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface Event extends Mirror {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/EventIterator.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/EventIterator.java Wed Oct 09 13:07:58 2013 -0700
@@ -40,6 +40,7 @@
* @since 1.3
*/
+@jdk.Exported
public interface EventIterator extends Iterator<Event> {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/EventQueue.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/EventQueue.java Wed Oct 09 13:07:58 2013 -0700
@@ -57,6 +57,7 @@
* @since 1.3
*/
+@jdk.Exported
public interface EventQueue extends Mirror {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/EventSet.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/EventSet.java Wed Oct 09 13:07:58 2013 -0700
@@ -127,6 +127,7 @@
* @since 1.3
*/
+@jdk.Exported
public interface EventSet extends Mirror, Set<Event> {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/ExceptionEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/ExceptionEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ExceptionEvent extends LocatableEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/LocatableEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/LocatableEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -36,6 +36,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface LocatableEvent extends Event, Locatable {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/MethodEntryEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/MethodEntryEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface MethodEntryEvent extends LocatableEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/MethodExitEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/MethodExitEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -40,6 +40,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface MethodExitEvent extends LocatableEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -38,6 +38,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ModificationWatchpointEvent extends WatchpointEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -40,6 +40,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorContendedEnterEvent extends LocatableEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorContendedEnteredEvent extends LocatableEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/MonitorWaitEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/MonitorWaitEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -38,6 +38,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorWaitEvent extends LocatableEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -38,6 +38,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorWaitedEvent extends LocatableEvent {
/**
--- a/jdk/src/share/classes/com/sun/jdi/event/StepEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/StepEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -46,6 +46,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface StepEvent extends LocatableEvent {
-
}
--- a/jdk/src/share/classes/com/sun/jdi/event/ThreadDeathEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/ThreadDeathEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ThreadDeathEvent extends Event {
/**
* Returns the thread which is terminating.
--- a/jdk/src/share/classes/com/sun/jdi/event/ThreadStartEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/ThreadStartEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -52,6 +52,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ThreadStartEvent extends Event {
/**
* Returns the thread which has started.
--- a/jdk/src/share/classes/com/sun/jdi/event/VMDeathEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/VMDeathEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -68,5 +68,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface VMDeathEvent extends Event {
}
--- a/jdk/src/share/classes/com/sun/jdi/event/VMDisconnectEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/VMDisconnectEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -52,5 +52,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface VMDisconnectEvent extends Event {
}
--- a/jdk/src/share/classes/com/sun/jdi/event/VMStartEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/VMStartEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface VMStartEvent extends Event {
/**
* Returns the initial thread of the VM which has started.
--- a/jdk/src/share/classes/com/sun/jdi/event/WatchpointEvent.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/event/WatchpointEvent.java Wed Oct 09 13:07:58 2013 -0700
@@ -37,6 +37,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface WatchpointEvent extends LocatableEvent {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/jdi/event/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package defines JDI events and event processing.
+ * An {@link com.sun.jdi.event.Event} is always a member of an
+ * {@link com.sun.jdi.event.EventSet}, which
+ * is retrieved from the {@link com.sun.jdi.event.EventQueue}.
+ * Examples of Events include
+ * {@link com.sun.jdi.event.BreakpointEvent "breakpoints events"},
+ * {@link com.sun.jdi.event.ThreadStartEvent "thread creation events"} and
+ * {@link com.sun.jdi.event.VMDeathEvent "virtual machine death event"}.
+ * With the exception
+ * of termination events, all events received must be requested with an
+ * {@link com.sun.jdi.request.EventRequest "EventRequest"}. The
+ * {@link com.sun.jdi.request} package defines event requests and event
+ * request management.
+ * <p>
+ * Methods may be added to the interfaces in the JDI packages in future
+ * releases. Existing packages may be renamed if the JDI becomes a standard
+ * extension.
+ */
+
+@jdk.Exported
+package com.sun.jdi.event;
--- a/jdk/src/share/classes/com/sun/jdi/event/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-<html>
-<head>
- <title>com.sun.jdi.event description</title>
-<!--
-
-Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-</head>
-<body bgcolor="white">
-This package defines JDI events and event processing.
-An {@link com.sun.jdi.event.Event} is always a member of an
-{@link com.sun.jdi.event.EventSet}, which
-is retrieved from the {@link com.sun.jdi.event.EventQueue}.
-Examples of Events include
-{@link com.sun.jdi.event.BreakpointEvent "breakpoints events"},
-{@link com.sun.jdi.event.ThreadStartEvent "thread creation events"} and
-{@link com.sun.jdi.event.VMDeathEvent "virtual machine death event"}.
-With the exception
-of termination events, all events received must be requested with an
-{@link com.sun.jdi.request.EventRequest "EventRequest"}. The
-{@link com.sun.jdi.request} package defines event requests and event
-request management.
-<p>
-Methods may be added to the interfaces in the JDI packages in future
-releases. Existing packages may be renamed if the JDI becomes a standard
-extension.
- </body>
-</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/jdi/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This is the core package of the Java Debug
+ * Interface (JDI), it defines mirrors for values, types, and the target
+ * VirtualMachine itself - as well bootstrapping facilities.
+ * {@link com.sun.jdi.VirtualMachine} mirrors the target virtual machine and
+ * is the origin of all information provided by the JDI. A VirtualMachine
+ * is typically created by using the
+ * {@link com.sun.jdi.VirtualMachineManager} to create
+ * a connection to the target virtual machine (see the
+ * {@link com.sun.jdi.connect} package). In turn the
+ * {@link com.sun.jdi.VirtualMachineManager} is typically created by calling
+ * {@link com.sun.jdi.Bootstrap#virtualMachineManager()}.
+ * <p>
+ * Most of the methods within this package can throw the unchecked exception
+ * {@link com.sun.jdi.VMDisconnectedException}.
+ * <p>
+ * Methods may be added to the interfaces in the JDI packages in future
+ * releases. Existing packages may be renamed if the JDI becomes a standard
+ * extension.
+ */
+
+@jdk.Exported
+package com.sun.jdi;
--- a/jdk/src/share/classes/com/sun/jdi/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<html>
-<head>
- <title>com.sun.jdi package description</title>
-<!--
-
-Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-</head>
-<body bgcolor="white">
-This is the core package of the Java Debug
-Interface (JDI), it defines mirrors for values, types, and the target
-VirtualMachine itself - as well bootstrapping facilities.
-{@link com.sun.jdi.VirtualMachine} mirrors the target virtual machine and
-is the origin of all information provided by the JDI. A VirtualMachine
-is typically created by using the
-{@link com.sun.jdi.VirtualMachineManager} to create
-a connection to the target virtual machine (see the
-{@link com.sun.jdi.connect} package). In turn the
-{@link com.sun.jdi.VirtualMachineManager} is typically created by calling
-{@link com.sun.jdi.Bootstrap#virtualMachineManager()}.
-<p>
-Most of the methods within this package can throw the unchecked exception
-{@link com.sun.jdi.VMDisconnectedException}.
-<p>
-Methods may be added to the interfaces in the JDI packages in future
-releases. Existing packages may be renamed if the JDI becomes a standard
-extension.
- </body>
-</html>
--- a/jdk/src/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -56,5 +56,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface AccessWatchpointRequest extends WatchpointRequest {
}
--- a/jdk/src/share/classes/com/sun/jdi/request/BreakpointRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/BreakpointRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -46,6 +46,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface BreakpointRequest extends EventRequest, Locatable {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/ClassPrepareRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/ClassPrepareRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -47,6 +47,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ClassPrepareRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/ClassUnloadRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/ClassUnloadRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -46,6 +46,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ClassUnloadRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/DuplicateRequestException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/DuplicateRequestException.java Wed Oct 09 13:07:58 2013 -0700
@@ -31,16 +31,15 @@
* @author Robert Field
* @since 1.3
*/
-public class DuplicateRequestException extends RuntimeException
-{
+@jdk.Exported
+public class DuplicateRequestException extends RuntimeException {
private static final long serialVersionUID = -3719784920313411060L;
- public DuplicateRequestException()
- {
+
+ public DuplicateRequestException() {
super();
}
- public DuplicateRequestException(String s)
- {
+ public DuplicateRequestException(String s) {
super(s);
}
}
--- a/jdk/src/share/classes/com/sun/jdi/request/EventRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/EventRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -78,6 +78,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface EventRequest extends Mirror {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/EventRequestManager.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/EventRequestManager.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @since 1.3
*/
+@jdk.Exported
public interface EventRequestManager extends Mirror {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/ExceptionRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/ExceptionRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ExceptionRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/InvalidRequestStateException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/InvalidRequestStateException.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public class InvalidRequestStateException extends RuntimeException {
private static final long serialVersionUID = -3774632428543322148L;
public InvalidRequestStateException()
--- a/jdk/src/share/classes/com/sun/jdi/request/MethodEntryRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/MethodEntryRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface MethodEntryRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/MethodExitRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/MethodExitRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface MethodExitRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -55,5 +55,6 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ModificationWatchpointRequest extends WatchpointRequest {
}
--- a/jdk/src/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorContendedEnterRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorContendedEnteredRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/MonitorWaitRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/MonitorWaitRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorWaitRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
+@jdk.Exported
public interface MonitorWaitedRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/StepRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/StepRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface StepRequest extends EventRequest {
/** Step into any newly pushed frames */
--- a/jdk/src/share/classes/com/sun/jdi/request/ThreadDeathRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/ThreadDeathRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ThreadDeathRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/ThreadStartRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/ThreadStartRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface ThreadStartRequest extends EventRequest {
/**
--- a/jdk/src/share/classes/com/sun/jdi/request/VMDeathRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/VMDeathRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -56,6 +56,7 @@
* @author Robert Field
* @since 1.4
*/
+@jdk.Exported
public interface VMDeathRequest extends EventRequest {
}
--- a/jdk/src/share/classes/com/sun/jdi/request/WatchpointRequest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/jdi/request/WatchpointRequest.java Wed Oct 09 13:07:58 2013 -0700
@@ -38,6 +38,7 @@
* @author Robert Field
* @since 1.3
*/
+@jdk.Exported
public interface WatchpointRequest extends EventRequest {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/jdi/request/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package is used to request that a JDI
+ * event be sent under specified conditions.
+ * With the exception of termination events, which are
+ * always sent, there is one kind of
+ * {@link com.sun.jdi.request.EventRequest} for each kind of
+ * {@link com.sun.jdi.event.Event Event} - for example,
+ * {@link com.sun.jdi.request.BreakpointRequest} is used to request a
+ * {@link com.sun.jdi.event.BreakpointEvent BreakpointEvent}.
+ * Event requests are created by the
+ * {@link com.sun.jdi.request.EventRequestManager}.
+ * Events and event processing are defined in the
+ * {@link com.sun.jdi.event} package.
+ * <p>
+ * Methods may be added to the interfaces in the JDI packages in future
+ * releases. Existing packages may be renamed if the JDI becomes a standard
+ * extension.
+ */
+
+@jdk.Exported
+package com.sun.jdi.request;
--- a/jdk/src/share/classes/com/sun/jdi/request/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-<html>
-<head>
- <title>com.sun.jdi.request description</title>
-<!--
-
-Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-</head>
-<body bgcolor="white">
-This package is used to request that a JDI
-event be sent under specified conditions.
-With the exception of termination events, which are
-always sent, there is one kind of
-{@link com.sun.jdi.request.EventRequest} for each kind of
-{@link com.sun.jdi.event.Event Event} - for example,
-{@link com.sun.jdi.request.BreakpointRequest} is used to request a
-{@link com.sun.jdi.event.BreakpointEvent BreakpointEvent}.
-Event requests are created by the
-{@link com.sun.jdi.request.EventRequestManager}.
-Events and event processing are defined in the
-{@link com.sun.jdi.event} package.
-<p>
-Methods may be added to the interfaces in the JDI packages in future
-releases. Existing packages may be renamed if the JDI becomes a standard
-extension.
- </body>
-</html>
--- a/jdk/src/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java Wed Oct 09 13:07:58 2013 -0700
@@ -85,6 +85,7 @@
* </ul>
**/
+@jdk.Exported
public class GarbageCollectionNotificationInfo implements CompositeDataView {
private final String gcName;
--- a/jdk/src/share/classes/com/sun/management/GarbageCollectorMXBean.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/GarbageCollectorMXBean.java Wed Oct 09 13:07:58 2013 -0700
@@ -37,6 +37,7 @@
* @author Mandy Chung
* @since 1.5
*/
+@jdk.Exported
public interface GarbageCollectorMXBean
extends java.lang.management.GarbageCollectorMXBean {
--- a/jdk/src/share/classes/com/sun/management/GcInfo.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/GcInfo.java Wed Oct 09 13:07:58 2013 -0700
@@ -64,6 +64,7 @@
* @author Mandy Chung
* @since 1.5
*/
+@jdk.Exported
public class GcInfo implements CompositeData, CompositeDataView {
private final long index;
private final long startTime;
--- a/jdk/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java Wed Oct 09 13:07:58 2013 -0700
@@ -48,6 +48,7 @@
*
* @see ManagementFactory#getPlatformMXBeans(Class)
*/
+@jdk.Exported
public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
/**
* Dumps the heap to the <tt>outputFile</tt> file in the same
--- a/jdk/src/share/classes/com/sun/management/OperatingSystemMXBean.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/OperatingSystemMXBean.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @author Mandy Chung
* @since 1.5
*/
+@jdk.Exported
public interface OperatingSystemMXBean extends
java.lang.management.OperatingSystemMXBean {
--- a/jdk/src/share/classes/com/sun/management/ThreadMXBean.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/ThreadMXBean.java Wed Oct 09 13:07:58 2013 -0700
@@ -38,6 +38,7 @@
* @since 6u25
*/
+@jdk.Exported
public interface ThreadMXBean extends java.lang.management.ThreadMXBean {
/**
* Returns the total CPU time for each thread whose ID is
--- a/jdk/src/share/classes/com/sun/management/UnixOperatingSystemMXBean.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/UnixOperatingSystemMXBean.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* @author Mandy Chung
* @since 1.5
*/
+@jdk.Exported
public interface UnixOperatingSystemMXBean extends
com.sun.management.OperatingSystemMXBean {
--- a/jdk/src/share/classes/com/sun/management/VMOption.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/management/VMOption.java Wed Oct 09 13:07:58 2013 -0700
@@ -52,6 +52,7 @@
* @author Mandy Chung
* @since 1.6
*/
+@jdk.Exported
public class VMOption {
private String name;
private String value;
@@ -64,6 +65,7 @@
*
* @since 1.6
*/
+ @jdk.Exported
public enum Origin {
/**
* The VM option has not been set and its value
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/management/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package contains Oracle Corporation's platform extension to
+ * the implementation of the
+ * <a href="{@docRoot}/../../../../api/java/lang/management/package-summary.html">
+ * java.lang.management</a> API and also defines the management
+ * interface for some other components for the platform.
+ *
+ * <p>
+ * All platform MBeans are registered in the <em>platform MBeanServer</em>
+ * which can be obtained via the
+ * <a href="{@docRoot}/../../../../api/java/lang/management/ManagementFactory.html#getPlatformMBeanServer()">
+ * java.lang.management.ManagementFactory.getPlatformMBeanServer</a>
+ *
+ * @author Mandy Chung
+ * @since 1.5
+ */
+
+@jdk.Exported
+package com.sun.management;
--- a/jdk/src/share/classes/com/sun/management/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-
-Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-This package contains Oracle Corporation's platform extension to
-the implementation of the
-<a href="{@docRoot}/../../../../api/java/lang/management/package-summary.html">
-java.lang.management</a> API and also defines the management
-interface for some other components for the platform.
-
-<p>
-All platform MBeans are registered in the <em>platform MBeanServer</em>
-which can be obtained via the
-<a href="{@docRoot}/../../../../api/java/lang/management/ManagementFactory.html#getPlatformMBeanServer()">
-java.lang.management.ManagementFactory.getPlatformMBeanServer</a>
-
-@author Mandy Chung
-@since 1.5
-
-</body>
-</html>
-
-
--- a/jdk/src/share/classes/com/sun/net/httpserver/Authenticator.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Authenticator.java Wed Oct 09 13:07:58 2013 -0700
@@ -36,6 +36,7 @@
* Note. This implies that any caching of credentials or other authentication
* information must be done outside of this class.
*/
+@jdk.Exported
public abstract class Authenticator {
/**
@@ -47,6 +48,7 @@
* Indicates an authentication failure. The authentication
* attempt has completed.
*/
+ @jdk.Exported
public static class Failure extends Result {
private int responseCode;
@@ -68,6 +70,7 @@
* authenticated user principal can be acquired by calling
* getPrincipal().
*/
+ @jdk.Exported
public static class Success extends Result {
private HttpPrincipal principal;
@@ -89,6 +92,7 @@
* set any necessary response headers in the given HttpExchange
* before returning this Retry object.
*/
+ @jdk.Exported
public static class Retry extends Result {
private int responseCode;
--- a/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,6 +33,7 @@
* to provide an implementation of {@link #checkCredentials(String,String)}
* which is called to verify each incoming request.
*/
+@jdk.Exported
public abstract class BasicAuthenticator extends Authenticator {
protected String realm;
--- a/jdk/src/share/classes/com/sun/net/httpserver/Filter.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Filter.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* exchange handler.
* @since 1.6
*/
+@jdk.Exported
public abstract class Filter {
protected Filter () {}
@@ -48,6 +49,7 @@
* Each filter in the chain is given one of these
* so it can invoke the next filter in the chain
*/
+ @jdk.Exported
public static class Chain {
/* the last element in the chain must invoke the users
* handler
--- a/jdk/src/share/classes/com/sun/net/httpserver/Headers.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Headers.java Wed Oct 09 13:07:58 2013 -0700
@@ -58,6 +58,7 @@
* as a header line containing the key but no associated value.
* @since 1.6
*/
+@jdk.Exported
public class Headers implements Map<String,List<String>> {
HashMap<String,List<String>> map;
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpContext.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpContext.java Wed Oct 09 13:07:58 2013 -0700
@@ -40,6 +40,7 @@
* context can be pre- and post-processed by each Filter in the chain.
* @since 1.6
*/
+@jdk.Exported
public abstract class HttpContext {
protected HttpContext () {
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpExchange.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpExchange.java Wed Oct 09 13:07:58 2013 -0700
@@ -65,6 +65,7 @@
* @since 1.6
*/
+@jdk.Exported
public abstract class HttpExchange {
protected HttpExchange () {
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpHandler.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpHandler.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* HTTP exchange is handled by one of these handlers.
* @since 1.6
*/
+@jdk.Exported
public interface HttpHandler {
/**
* Handle the given request and generate an appropriate response.
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,6 +33,7 @@
* Represents a user authenticated by HTTP Basic or Digest
* authentication.
*/
+@jdk.Exported
public class HttpPrincipal implements Principal {
private String username, realm;
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpServer.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpServer.java Wed Oct 09 13:07:58 2013 -0700
@@ -87,6 +87,7 @@
* @since 1.6
*/
+@jdk.Exported
public abstract class HttpServer {
/**
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java Wed Oct 09 13:07:58 2013 -0700
@@ -67,6 +67,7 @@
* </blockquote></pre>
* @since 1.6
*/
+@jdk.Exported
public class HttpsConfigurator {
private SSLContext context;
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpsExchange.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpsExchange.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @since 1.6
*/
+@jdk.Exported
public abstract class HttpsExchange extends HttpExchange {
protected HttpsExchange () {
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpsParameters.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpsParameters.java Wed Oct 09 13:07:58 2013 -0700
@@ -49,6 +49,7 @@
* are used, and any settings made in this object are ignored.
* @since 1.6
*/
+@jdk.Exported
public abstract class HttpsParameters {
private String[] cipherSuites;
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpsServer.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpsServer.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @since 1.6
*/
+@jdk.Exported
public abstract class HttpsServer extends HttpServer {
/**
--- a/jdk/src/share/classes/com/sun/net/httpserver/package-info.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -123,4 +123,5 @@
<p>
@since 1.6
*/
+@jdk.Exported
package com.sun.net.httpserver;
--- a/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java Wed Oct 09 13:07:58 2013 -0700
@@ -40,6 +40,7 @@
* {@link HttpServer} and associated classes. Applications do not normally use
* this class. See {@link #provider()} for how providers are found and loaded.
*/
+@jdk.Exported
public abstract class HttpServerProvider {
/**
--- a/jdk/src/share/classes/com/sun/net/httpserver/spi/package-info.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/net/httpserver/spi/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -24,7 +24,8 @@
*/
/**
- Provides a pluggable service provider interface, which allows the HTTP server
- implementation to be replaced with other implementations.
-*/
+ * Provides a pluggable service provider interface, which allows the HTTP server
+ * implementation to be replaced with other implementations.
+ */
+@jdk.Exported
package com.sun.net.httpserver.spi;
--- a/jdk/src/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public class AbstractNotificationHandler<T>
implements NotificationHandler<T>
{
--- a/jdk/src/share/classes/com/sun/nio/sctp/Association.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/Association.java Wed Oct 09 13:07:58 2013 -0700
@@ -51,6 +51,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public class Association {
private final int associationID;
private final int maxInStreams;
--- a/jdk/src/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java Wed Oct 09 13:07:58 2013 -0700
@@ -29,6 +29,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class AssociationChangeNotification
implements Notification
{
@@ -37,6 +38,7 @@
*
* @since 1.7
*/
+ @jdk.Exported
public enum AssocChangeEvent
{
/**
--- a/jdk/src/share/classes/com/sun/nio/sctp/HandlerResult.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/HandlerResult.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,6 +34,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public enum HandlerResult {
/**
* Try to receieve another message or notification.
--- a/jdk/src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java Wed Oct 09 13:07:58 2013 -0700
@@ -31,6 +31,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public class IllegalReceiveException extends IllegalStateException {
private static final long serialVersionUID = 2296619040988576224L;
--- a/jdk/src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java Wed Oct 09 13:07:58 2013 -0700
@@ -31,6 +31,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public class IllegalUnbindException extends IllegalStateException {
private static final long serialVersionUID = -310540883995532224L;
--- a/jdk/src/share/classes/com/sun/nio/sctp/InvalidStreamException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/InvalidStreamException.java Wed Oct 09 13:07:58 2013 -0700
@@ -30,6 +30,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public class InvalidStreamException extends IllegalArgumentException {
private static final long serialVersionUID = -9172703378046665558L;
--- a/jdk/src/share/classes/com/sun/nio/sctp/MessageInfo.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/MessageInfo.java Wed Oct 09 13:07:58 2013 -0700
@@ -56,6 +56,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class MessageInfo {
/**
* Initializes a new instance of this class.
--- a/jdk/src/share/classes/com/sun/nio/sctp/Notification.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/Notification.java Wed Oct 09 13:07:58 2013 -0700
@@ -37,6 +37,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public interface Notification {
/**
* Returns the association that this notification is applicable to.
--- a/jdk/src/share/classes/com/sun/nio/sctp/NotificationHandler.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/NotificationHandler.java Wed Oct 09 13:07:58 2013 -0700
@@ -49,6 +49,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public interface NotificationHandler<T> {
/**
* Invoked when a notification is received from the SCTP stack.
--- a/jdk/src/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class PeerAddressChangeNotification
implements Notification
{
@@ -46,6 +47,7 @@
*
* @since 1.7
*/
+ @jdk.Exported
public enum AddressChangeEvent {
/**
* This address is now reachable.
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpChannel.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpChannel.java Wed Oct 09 13:07:58 2013 -0700
@@ -134,6 +134,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class SctpChannel
extends AbstractSelectableChannel
{
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java Wed Oct 09 13:07:58 2013 -0700
@@ -134,6 +134,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class SctpMultiChannel
extends AbstractSelectableChannel
{
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpServerChannel.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpServerChannel.java Wed Oct 09 13:07:58 2013 -0700
@@ -68,6 +68,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class SctpServerChannel
extends AbstractSelectableChannel
{
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpSocketOption.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpSocketOption.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,4 +35,5 @@
*
* @see SctpStandardSocketOptions
*/
+@jdk.Exported
public interface SctpSocketOption<T> extends SocketOption<T> { }
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java Wed Oct 09 13:07:58 2013 -0700
@@ -34,6 +34,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public class SctpStandardSocketOptions {
private SctpStandardSocketOptions() {}
/**
@@ -315,6 +316,7 @@
*
* @since 1.7
*/
+ @jdk.Exported
public static class InitMaxStreams {
private int maxInStreams;
private int maxOutStreams;
--- a/jdk/src/share/classes/com/sun/nio/sctp/SendFailedNotification.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SendFailedNotification.java Wed Oct 09 13:07:58 2013 -0700
@@ -37,6 +37,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class SendFailedNotification implements Notification {
/**
* Initializes a new instance of this class.
--- a/jdk/src/share/classes/com/sun/nio/sctp/ShutdownNotification.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/ShutdownNotification.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
*
* @since 1.7
*/
+@jdk.Exported
public abstract class ShutdownNotification implements Notification {
/**
* Initializes a new instance of this class.
--- a/jdk/src/share/classes/com/sun/nio/sctp/package-info.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -72,4 +72,5 @@
* @since 1.7
*/
+@jdk.Exported
package com.sun.nio.sctp;
--- a/jdk/src/share/classes/com/sun/security/auth/LdapPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/LdapPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
*
* @since 1.6
*/
+@jdk.Exported
public final class LdapPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = 6820120005580754861L;
--- a/jdk/src/share/classes/com/sun/security/auth/NTDomainPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTDomainPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class NTDomainPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -4408637351440771220L;
--- a/jdk/src/share/classes/com/sun/security/auth/NTNumericCredential.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTNumericCredential.java Wed Oct 09 13:07:58 2013 -0700
@@ -31,6 +31,7 @@
*
*/
+@jdk.Exported
public class NTNumericCredential {
private long impersonationToken;
--- a/jdk/src/share/classes/com/sun/security/auth/NTSid.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTSid.java Wed Oct 09 13:07:58 2013 -0700
@@ -47,6 +47,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class NTSid implements Principal, java.io.Serializable {
private static final long serialVersionUID = 4412290580770249885L;
--- a/jdk/src/share/classes/com/sun/security/auth/NTSidDomainPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTSidDomainPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class NTSidDomainPrincipal extends NTSid {
private static final long serialVersionUID = 5247810785821650912L;
--- a/jdk/src/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -40,6 +40,7 @@
* @see javax.security.auth.Subject
* @see com.sun.security.auth.NTSid
*/
+@jdk.Exported
public class NTSidGroupPrincipal extends NTSid {
private static final long serialVersionUID = -1373347438636198229L;
--- a/jdk/src/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class NTSidPrimaryGroupPrincipal extends NTSid {
private static final long serialVersionUID = 8011978367305190527L;
--- a/jdk/src/share/classes/com/sun/security/auth/NTSidUserPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTSidUserPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -39,6 +39,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class NTSidUserPrincipal extends NTSid {
private static final long serialVersionUID = -5573239889517749525L;
--- a/jdk/src/share/classes/com/sun/security/auth/NTUserPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/NTUserPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -41,6 +41,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class NTUserPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -8737649811939033735L;
--- a/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java Wed Oct 09 13:07:58 2013 -0700
@@ -215,6 +215,7 @@
* @see java.security.ProtectionDomain
* @see java.security.Security security properties
*/
+@jdk.Exported(false)
@Deprecated
public class PolicyFile extends javax.security.auth.Policy {
--- a/jdk/src/share/classes/com/sun/security/auth/PrincipalComparator.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/PrincipalComparator.java Wed Oct 09 13:07:58 2013 -0700
@@ -50,6 +50,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public interface PrincipalComparator {
/**
* Check if the specified <code>Subject</code> is implied by
--- a/jdk/src/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -45,6 +45,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported(false)
@Deprecated
public class SolarisNumericGroupPrincipal implements
Principal,
--- a/jdk/src/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported(false)
@Deprecated
public class SolarisNumericUserPrincipal implements
Principal,
--- a/jdk/src/share/classes/com/sun/security/auth/SolarisPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/SolarisPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -44,6 +44,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported(false)
@Deprecated
public class SolarisPrincipal implements Principal, java.io.Serializable {
--- a/jdk/src/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -41,6 +41,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class UnixNumericGroupPrincipal implements
Principal,
java.io.Serializable {
--- a/jdk/src/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -41,6 +41,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class UnixNumericUserPrincipal implements
Principal,
java.io.Serializable {
--- a/jdk/src/share/classes/com/sun/security/auth/UnixPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/UnixPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -41,6 +41,7 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
+@jdk.Exported
public class UnixPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -2951667807323493631L;
--- a/jdk/src/share/classes/com/sun/security/auth/UserPrincipal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/UserPrincipal.java Wed Oct 09 13:07:58 2013 -0700
@@ -42,6 +42,7 @@
*
* @since 1.6
*/
+@jdk.Exported
public final class UserPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = 892106070870210969L;
--- a/jdk/src/share/classes/com/sun/security/auth/X500Principal.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/X500Principal.java Wed Oct 09 13:07:58 2013 -0700
@@ -49,6 +49,7 @@
* class.
* @see javax.security.auth.x500.X500Principal
*/
+@jdk.Exported(false)
@Deprecated
public class X500Principal implements Principal, java.io.Serializable {
--- a/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java Wed Oct 09 13:07:58 2013 -0700
@@ -54,6 +54,7 @@
* @see javax.security.auth.callback
* @deprecated This class will be removed in a future release.
*/
+@jdk.Exported(false)
@Deprecated
public class DialogCallbackHandler implements CallbackHandler {
--- a/jdk/src/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java Wed Oct 09 13:07:58 2013 -0700
@@ -53,6 +53,7 @@
* @see javax.security.auth.callback
*/
+@jdk.Exported
public class TextCallbackHandler implements CallbackHandler {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/security/auth/callback/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+@jdk.Exported
+package com.sun.security.auth.callback;
--- a/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java Wed Oct 09 13:07:58 2013 -0700
@@ -83,6 +83,7 @@
* @see javax.security.auth.login.LoginContext
* @see java.security.Security security properties
*/
+@jdk.Exported
public class ConfigFile extends Configuration {
private final sun.security.provider.ConfigFile.Spi spi;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/security/auth/login/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+@jdk.Exported
+package com.sun.security.auth.login;
--- a/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java Wed Oct 09 13:07:58 2013 -0700
@@ -151,6 +151,7 @@
* </pre>
*
*/
+@jdk.Exported
public class JndiLoginModule implements LoginModule {
private static final ResourceBundle rb = AccessController.doPrivileged(
--- a/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java Wed Oct 09 13:07:58 2013 -0700
@@ -110,6 +110,7 @@
*
* </dl>
*/
+@jdk.Exported
public class KeyStoreLoginModule implements LoginModule {
private static final ResourceBundle rb = AccessController.doPrivileged(
--- a/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Wed Oct 09 13:07:58 2013 -0700
@@ -379,6 +379,7 @@
* @author Ram Marti
*/
+@jdk.Exported
public class Krb5LoginModule implements LoginModule {
// initial state
--- a/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java Wed Oct 09 13:07:58 2013 -0700
@@ -304,6 +304,7 @@
*
* @since 1.6
*/
+@jdk.Exported
public class LdapLoginModule implements LoginModule {
// Use the default classloader for this class to load the prompt strings.
--- a/jdk/src/share/classes/com/sun/security/auth/module/NTLoginModule.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/NTLoginModule.java Wed Oct 09 13:07:58 2013 -0700
@@ -57,6 +57,7 @@
*
* @see javax.security.auth.spi.LoginModule
*/
+@jdk.Exported
public class NTLoginModule implements LoginModule {
private NTSystem ntSystem;
--- a/jdk/src/share/classes/com/sun/security/auth/module/NTSystem.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/NTSystem.java Wed Oct 09 13:07:58 2013 -0700
@@ -30,6 +30,7 @@
* security information for the current user.
*
*/
+@jdk.Exported
public class NTSystem {
private native void getCurrent(boolean debug);
--- a/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java Wed Oct 09 13:07:58 2013 -0700
@@ -52,6 +52,7 @@
* UnixLoginModule.
*
*/
+@jdk.Exported(false)
@Deprecated
public class SolarisLoginModule implements LoginModule {
--- a/jdk/src/share/classes/com/sun/security/auth/module/SolarisSystem.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/SolarisSystem.java Wed Oct 09 13:07:58 2013 -0700
@@ -30,6 +30,7 @@
* UID/GID/groups information for the current user.
*
*/
+@jdk.Exported
public class SolarisSystem {
private native void getSolarisInfo();
--- a/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java Wed Oct 09 13:07:58 2013 -0700
@@ -47,6 +47,7 @@
* debug messages will be output to the output stream, System.out.
*
*/
+@jdk.Exported
public class UnixLoginModule implements LoginModule {
// initial state
--- a/jdk/src/share/classes/com/sun/security/auth/module/UnixSystem.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/auth/module/UnixSystem.java Wed Oct 09 13:07:58 2013 -0700
@@ -30,6 +30,7 @@
* UID/GID/groups information for the current user.
*
*/
+@jdk.Exported
public class UnixSystem {
private native void getUnixInfo();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/security/auth/module/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+@jdk.Exported
+package com.sun.security.auth.module;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/security/auth/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+@jdk.Exported
+package com.sun.security.auth;
--- a/jdk/src/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java Wed Oct 09 13:07:58 2013 -0700
@@ -28,7 +28,8 @@
/**
* Kerberos 5 AuthorizationData entry.
*/
-final public class AuthorizationDataEntry {
+@jdk.Exported
+public final class AuthorizationDataEntry {
private final int type;
private final byte[] data;
--- a/jdk/src/share/classes/com/sun/security/jgss/ExtendedGSSContext.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/jgss/ExtendedGSSContext.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* functionalities not defined by {@code org.ietf.jgss.GSSContext},
* such as querying context-specific attributes.
*/
+@jdk.Exported
public interface ExtendedGSSContext extends GSSContext {
/**
* Return the mechanism-specific attribute associated with {@code type}.
--- a/jdk/src/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java Wed Oct 09 13:07:58 2013 -0700
@@ -32,6 +32,7 @@
* functionalities not defined by {@code org.ietf.jgss.GSSCredential}.
* @since 1.8
*/
+@jdk.Exported
public interface ExtendedGSSCredential extends GSSCredential {
/**
* Impersonates a principal. In Kerberos, this can be implemented
--- a/jdk/src/share/classes/com/sun/security/jgss/GSSUtil.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/jgss/GSSUtil.java Wed Oct 09 13:07:58 2013 -0700
@@ -33,6 +33,7 @@
* GSS-API Utilities for using in conjunction with Sun Microsystem's
* implementation of Java GSS-API.
*/
+@jdk.Exported
public class GSSUtil {
/**
--- a/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,7 @@
*
* <p>The target name is the {@link InquireType} allowed.
*/
+@jdk.Exported
public final class InquireSecContextPermission extends BasicPermission {
private static final long serialVersionUID = -7131173349668647297L;
--- a/jdk/src/share/classes/com/sun/security/jgss/InquireType.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/security/jgss/InquireType.java Wed Oct 09 13:07:58 2013 -0700
@@ -29,6 +29,7 @@
* Attribute types that can be specified as an argument of
* {@link com.sun.security.jgss.ExtendedGSSContext#inquireSecContext}
*/
+@jdk.Exported
public enum InquireType {
/**
* Attribute type for retrieving the session key of an
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/security/jgss/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+@jdk.Exported
+package com.sun.security.jgss;
--- a/jdk/src/share/classes/com/sun/tools/attach/AgentInitializationException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/attach/AgentInitializationException.java Wed Oct 09 13:07:58 2013 -0700
@@ -40,6 +40,7 @@
* the error returned by the agent's <code>Agent_OnAttach</code> function.
* This error code can be obtained by invoking the {@link #returnValue() returnValue} method.
*/
+@jdk.Exported
public class AgentInitializationException extends Exception {
/** use serialVersionUID for interoperability */
--- a/jdk/src/share/classes/com/sun/tools/attach/AgentLoadException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/attach/AgentLoadException.java Wed Oct 09 13:07:58 2013 -0700
@@ -36,6 +36,7 @@
* com.sun.tools.attach.VirtualMachine#loadAgentPath loadAgentPath} methods
* if the agent, or agent library, cannot be loaded.
*/
+@jdk.Exported
public class AgentLoadException extends Exception {
/** use serialVersionUID for interoperability */
--- a/jdk/src/share/classes/com/sun/tools/attach/AttachNotSupportedException.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/attach/AttachNotSupportedException.java Wed Oct 09 13:07:58 2013 -0700
@@ -36,6 +36,7 @@
* AttachProvider.attachVirtualMachine} if the provider attempts to
* attach to a Java virtual machine with which it not comptatible.
*/
+@jdk.Exported
public class AttachNotSupportedException extends Exception {
/** use serialVersionUID for interoperability */
--- a/jdk/src/share/classes/com/sun/tools/attach/AttachPermission.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/attach/AttachPermission.java Wed Oct 09 13:07:58 2013 -0700
@@ -79,6 +79,7 @@
* @see com.sun.tools.attach.spi.AttachProvider
*/
+@jdk.Exported
public final class AttachPermission extends java.security.BasicPermission {
/** use serialVersionUID for interoperability */
--- a/jdk/src/share/classes/com/sun/tools/attach/VirtualMachine.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/attach/VirtualMachine.java Wed Oct 09 13:07:58 2013 -0700
@@ -102,6 +102,7 @@
* @since 1.6
*/
+@jdk.Exported
public abstract class VirtualMachine {
private AttachProvider provider;
private String id;
--- a/jdk/src/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java Wed Oct 09 13:07:58 2013 -0700
@@ -55,6 +55,7 @@
*
* @since 1.6
*/
+@jdk.Exported
public class VirtualMachineDescriptor {
private AttachProvider provider;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/tools/attach/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * Provides the API to attach to a Java<sup><font size=-2>TM</font></sup>
+ * virtual machine.
+ * <p>
+ * A tool, written in the Java Language, uses this API to attach to a target
+ * virtual machine (VM) and load its tool agent into the target VM. For
+ * example, a management console might have a management agent which it uses
+ * to obtain management information from instrumented objects in a Java
+ * virtual machine. If the management console is required to manage
+ * an application that is running in a virtual machine that does not include
+ * the management agent, then this API can be used to attach to the target
+ * VM and load the agent.
+ *
+ * @since 1.6
+ */
+
+@jdk.Exported
+package com.sun.tools.attach;
--- a/jdk/src/share/classes/com/sun/tools/attach/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-<!--
- Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation. Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<!doctype html public "-//IETF//DTD HTML//EN">
-<html>
-<body bgcolor="white">
-
-Provides the API to attach to a Java<sup><font size=-2>TM</font></sup>
-virtual machine.
-
-A tool, written in the Java Language, uses this API to attach to a target
-virtual machine (VM) and load its tool agent into the target VM. For
-example, a management console might have a management agent which it uses
-to obtain management information from instrumented objects in a Java
-virtual machine. If the management console is required to manage
-an application that is running in a virtual machine that does not include
-the management agent, then this API can be used to attach to the target
-VM and load the agent.
-
-@since 1.6
-
-</body>
-</html>
-
-
-
--- a/jdk/src/share/classes/com/sun/tools/attach/spi/AttachProvider.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/attach/spi/AttachProvider.java Wed Oct 09 13:07:58 2013 -0700
@@ -74,6 +74,7 @@
* @since 1.6
*/
+@jdk.Exported
public abstract class AttachProvider {
private static final Object lock = new Object();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/tools/attach/spi/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+/**
+ * Only developers who are defining new attach providers should need to make
+ * direct use of this package.
+ *
+ * @since 1.6
+ */
+
+@jdk.Exported
+package com.sun.tools.attach.spi;
--- a/jdk/src/share/classes/com/sun/tools/attach/spi/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-<!--
- Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation. Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<!doctype html public "-//IETF//DTD HTML//EN">
-<html>
-<body bgcolor="white">
-
-Provider classes for the <tt>{@link com.sun.tools.attach}</tt> package.
-
-<p> Only developers who are defining new attach providers should need to make
-direct use of this package. </p>
-
-@since 1.6
-
-</body>
-</html>
--- a/jdk/src/share/classes/com/sun/tools/jconsole/JConsoleContext.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/jconsole/JConsoleContext.java Wed Oct 09 13:07:58 2013 -0700
@@ -43,6 +43,7 @@
*
* @since 1.6
*/
+@jdk.Exported
public interface JConsoleContext {
/**
* The {@link ConnectionState ConnectionState} bound property name.
@@ -53,6 +54,7 @@
* Values for the {@linkplain #CONNECTION_STATE_PROPERTY
* <i>ConnectionState</i>} bound property.
*/
+ @jdk.Exported
public enum ConnectionState {
/**
* The connection has been successfully established.
--- a/jdk/src/share/classes/com/sun/tools/jconsole/JConsolePlugin.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/com/sun/tools/jconsole/JConsolePlugin.java Wed Oct 09 13:07:58 2013 -0700
@@ -72,6 +72,7 @@
*
* @since 1.6
*/
+@jdk.Exported
public abstract class JConsolePlugin {
private volatile JConsoleContext context = null;
private List<PropertyChangeListener> listeners = null;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/tools/jconsole/package-info.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package contains the JConsole API.
+ *
+ * @since 1.6
+ */
+
+@jdk.Exported
+package com.sun.tools.jconsole;
--- a/jdk/src/share/classes/com/sun/tools/jconsole/package.html Tue Oct 08 14:41:46 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-<!--
- Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation. Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<!doctype html public "-//IETF//DTD HTML//EN">
-<html>
-<head>
-</head>
-<body bgcolor="white">
-
-This package contains the JConsole API.
-
-@since 1.6
-
-</body>
-</html>
--- a/jdk/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Wed Oct 09 13:07:58 2013 -0700
@@ -27,12 +27,15 @@
import jdk.internal.org.objectweb.asm.*;
import sun.misc.Unsafe;
+import sun.security.action.GetPropertyAction;
+import java.io.FilePermission;
import java.lang.reflect.Constructor;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.ProtectionDomain;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.PropertyPermission;
import static jdk.internal.org.objectweb.asm.Opcodes.*;
@@ -66,12 +69,23 @@
// Used to ensure that each spun class name is unique
private static final AtomicInteger counter = new AtomicInteger(0);
+ // For dumping generated classes to disk, for debugging purposes
+ private static final ProxyClassesDumper dumper;
+
+ static {
+ final String key = "jdk.internal.lambda.dumpProxyClasses";
+ String path = AccessController.doPrivileged(
+ new GetPropertyAction(key), null,
+ new PropertyPermission(key , "read"));
+ dumper = (null == path) ? null : ProxyClassesDumper.getInstance(path);
+ }
+
// See context values in AbstractValidatingLambdaMetafactory
private final String implMethodClassName; // Name of type containing implementation "CC"
private final String implMethodName; // Name of implementation method "impl"
private final String implMethodDesc; // Type descriptor for implementation methods "(I)Ljava/lang/String;"
- private final Type[] implMethodArgumentTypes; // ASM types for implementaion method parameters
- private final Type implMethodReturnType; // ASM type for implementaion method return type "Ljava/lang/String;"
+ private final Type[] implMethodArgumentTypes; // ASM types for implementation method parameters
+ private final Type implMethodReturnType; // ASM type for implementation method return type "Ljava/lang/String;"
private final MethodType constructorType; // Generated class constructor type "(CC)void"
private final String constructorDesc; // Type descriptor for constructor "(LCC;)V"
private final ClassWriter cw; // ASM class writer
@@ -259,29 +273,31 @@
final byte[] classBytes = cw.toByteArray();
- /*** Uncomment to dump the generated file
- System.out.printf("Loaded: %s (%d bytes) %n", lambdaClassName,
- classBytes.length);
- try (FileOutputStream fos = new FileOutputStream(lambdaClassName
- .replace('/', '.') + ".class")) {
- fos.write(classBytes);
- } catch (IOException ex) {
- PlatformLogger.getLogger(InnerClassLambdaMetafactory.class
- .getName()).severe(ex.getMessage(), ex);
- }
- ***/
+ // If requested, dump out to a file for debugging purposes
+ if (dumper != null) {
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ @Override
+ public Void run() {
+ dumper.dumpClass(lambdaClassName, classBytes);
+ return null;
+ }
+ }, null,
+ new FilePermission("<<ALL FILES>>", "read, write"),
+ // createDirectories may need it
+ new PropertyPermission("user.dir", "read"));
+ }
ClassLoader loader = targetClass.getClassLoader();
ProtectionDomain pd = (loader == null)
- ? null
- : AccessController.doPrivileged(
- new PrivilegedAction<ProtectionDomain>() {
- @Override
- public ProtectionDomain run() {
- return targetClass.getProtectionDomain();
- }
- }
- );
+ ? null
+ : AccessController.doPrivileged(
+ new PrivilegedAction<ProtectionDomain>() {
+ @Override
+ public ProtectionDomain run() {
+ return targetClass.getProtectionDomain();
+ }
+ }
+ );
return UNSAFE.defineClass(lambdaClassName,
classBytes, 0, classBytes.length,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/lang/invoke/ProxyClassesDumper.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,147 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package java.lang.invoke;
+
+import sun.util.logging.PlatformLogger;
+
+import java.io.FilePermission;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Objects;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * Helper class used by InnerClassLambdaMetafactory to log generated classes
+ *
+ * @implNote
+ * <p> Because this class is called by LambdaMetafactory, make use
+ * of lambda lead to recursive calls cause stack overflow.
+ */
+final class ProxyClassesDumper {
+ private static final char[] HEX = {
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
+ };
+ private static final char[] BAD_CHARS = {
+ '\\', ':', '*', '?', '"', '<', '>', '|'
+ };
+ private static final String[] REPLACEMENT = {
+ "%5C", "%3A", "%2A", "%3F", "%22", "%3C", "%3E", "%7C"
+ };
+
+ private final Path dumpDir;
+
+ public static ProxyClassesDumper getInstance(String path) {
+ if (null == path) {
+ return null;
+ }
+ try {
+ path = path.trim();
+ final Path dir = Paths.get(path.length() == 0 ? "." : path);
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ @Override
+ public Void run() {
+ validateDumpDir(dir);
+ return null;
+ }
+ }, null, new FilePermission("<<ALL FILES>>", "read, write"));
+ return new ProxyClassesDumper(dir);
+ } catch (InvalidPathException ex) {
+ PlatformLogger.getLogger(ProxyClassesDumper.class.getName())
+ .warning("Path " + path + " is not valid - dumping disabled", ex);
+ } catch (IllegalArgumentException iae) {
+ PlatformLogger.getLogger(ProxyClassesDumper.class.getName())
+ .warning(iae.getMessage() + " - dumping disabled");
+ }
+ return null;
+ }
+
+ private ProxyClassesDumper(Path path) {
+ dumpDir = Objects.requireNonNull(path);
+ }
+
+ private static void validateDumpDir(Path path) {
+ if (!Files.exists(path)) {
+ throw new IllegalArgumentException("Directory " + path + " does not exist");
+ } else if (!Files.isDirectory(path)) {
+ throw new IllegalArgumentException("Path " + path + " is not a directory");
+ } else if (!Files.isWritable(path)) {
+ throw new IllegalArgumentException("Directory " + path + " is not writable");
+ }
+ }
+
+ public static String encodeForFilename(String className) {
+ final int len = className.length();
+ StringBuilder sb = new StringBuilder(len);
+
+ for (int i = 0; i < len; i++) {
+ char c = className.charAt(i);
+ // control characters
+ if (c <= 31) {
+ sb.append('%');
+ sb.append(HEX[c >> 4 & 0x0F]);
+ sb.append(HEX[c & 0x0F]);
+ } else {
+ int j = 0;
+ for (; j < BAD_CHARS.length; j++) {
+ if (c == BAD_CHARS[j]) {
+ sb.append(REPLACEMENT[j]);
+ break;
+ }
+ }
+ if (j >= BAD_CHARS.length) {
+ sb.append(c);
+ }
+ }
+ }
+
+ return sb.toString();
+ }
+
+ public void dumpClass(String className, final byte[] classBytes) {
+ Path file;
+ try {
+ file = dumpDir.resolve(encodeForFilename(className) + ".class");
+ } catch (InvalidPathException ex) {
+ PlatformLogger.getLogger(ProxyClassesDumper.class.getName())
+ .warning("Invalid path for class " + className);
+ return;
+ }
+
+ try {
+ Path dir = file.getParent();
+ Files.createDirectories(dir);
+ Files.write(file, classBytes);
+ } catch (Exception ignore) {
+ PlatformLogger.getLogger(ProxyClassesDumper.class.getName())
+ .warning("Exception writing to path at " + file.toString());
+ // simply don't care if this operation failed
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/security/DomainLoadStoreParameter.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.security;
+
+import java.net.URI;
+import java.util.*;
+import static java.security.KeyStore.*;
+
+/**
+ * Configuration data that specifies the keystores in a keystore domain.
+ * A keystore domain is a collection of keystores that are presented as a
+ * single logical keystore. The configuration data is used during
+ * {@code KeyStore}
+ * {@link KeyStore#load(KeyStore.LoadStoreParameter) load} and
+ * {@link KeyStore#store(KeyStore.LoadStoreParameter) store} operations.
+ * <p>
+ * The following syntax is supported for configuration data:
+ * <pre>{@code
+ * domain <domainName> [<property> ...] {
+ * keystore <keystoreName> [<property> ...] ;
+ * ...
+ * };
+ * ...
+ * }</pre>
+ * where {@code domainName} and {@code keystoreName} are identifiers
+ * and {@code property} is a key/value pairing. The key and value are
+ * separated by an 'equals' symbol and the value is enclosed in double
+ * quotes. A property value may be either a printable string or a binary
+ * string of colon-separated pairs of hexadecimal digits. Multi-valued
+ * properties are represented as a comma-separated list of values,
+ * enclosed in square brackets.
+ * See {@link Arrays#toString(java.lang.Object[])}.
+ * <p>
+ * To ensure that keystore entries are uniquely identified, each
+ * entry's alias is prefixed by its {@code keystoreName} followed
+ * by the entry name separator and each {@code keystoreName} must be
+ * unique within its domain. Entry name prefixes are omitted when
+ * storing a keystore.
+ * <p>
+ * Properties are context-sensitive: properties that apply to
+ * all the keystores in a domain are located in the domain clause,
+ * and properties that apply only to a specific keystore are located
+ * in that keystore's clause.
+ * Unless otherwise specified, a property in a keystore clause overrides
+ * a property of the same name in the domain clause. All property names
+ * are case-insensitive. The following properties are supported:
+ * <dl>
+ * <dt> {@code keystoreType="<type>"} </dt>
+ * <dd> The keystore type. </dd>
+ * <dt> {@code keystoreURI="<url>"} </dt>
+ * <dd> The keystore location. </dd>
+ * <dt> {@code keystoreProviderName="<name>"} </dt>
+ * <dd> The name of the keystore's JCE provider. </dd>
+ * <dt> {@code keystorePasswordEnv="<environment-variable>"} </dt>
+ * <dd> The environment variable that stores a keystore password.
+ * Alternatively, passwords may be supplied to the constructor
+ * method in a {@code Map<String, ProtectionParameter>}. </dd>
+ * <dt> {@code entryNameSeparator="<separator>"} </dt>
+ * <dd> The separator between a keystore name prefix and an entry name.
+ * When specified, it applies to all the entries in a domain.
+ * Its default value is a space. </dd>
+ * </dl>
+ * <p>
+ * For example, configuration data for a simple keystore domain
+ * comprising three keystores is shown below:
+ * <pre>
+ *
+ * domain app1 {
+ * keystore app1-truststore
+ * keystoreURI="file:///app1/etc/truststore.jks";
+ *
+ * keystore system-truststore
+ * keystoreURI="${java.home}/lib/security/cacerts";
+ *
+ * keystore app1-keystore
+ * keystoreType="PKCS12"
+ * keystoreURI="file:///app1/etc/keystore.p12";
+ * };
+ *
+ * </pre>
+ * @since 1.8
+ */
+public final class DomainLoadStoreParameter implements LoadStoreParameter {
+
+ private final URI configuration;
+ private final Map<String,ProtectionParameter> protectionParams;
+
+ /**
+ * Constructs a DomainLoadStoreParameter for a keystore domain with
+ * the parameters used to protect keystore data.
+ *
+ * @param configuration identifier for the domain configuration data.
+ * The name of the target domain should be specified in the
+ * {@code java.net.URI} fragment component when it is necessary
+ * to distinguish between several domain configurations at the
+ * same location.
+ *
+ * @param protectionParams the map from keystore name to the parameter
+ * used to protect keystore data.
+ * A {@code java.util.Collections.EMPTY_MAP} should be used
+ * when protection parameters are not required or when they have
+ * been specified by properties in the domain configuration data.
+ * It is cloned to prevent subsequent modification.
+ *
+ * @exception NullPointerException if {@code configuration} or
+ * {@code protectionParams} is {@code null}
+ */
+ public DomainLoadStoreParameter(URI configuration,
+ Map<String,ProtectionParameter> protectionParams) {
+ if (configuration == null || protectionParams == null) {
+ throw new NullPointerException("invalid null input");
+ }
+ this.configuration = configuration;
+ this.protectionParams =
+ Collections.unmodifiableMap(new HashMap<>(protectionParams));
+ }
+
+ /**
+ * Gets the identifier for the domain configuration data.
+ *
+ * @return the identifier for the configuration data
+ */
+ public URI getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * Gets the keystore protection parameters for keystores in this
+ * domain.
+ *
+ * @return an unmodifiable map of keystore names to protection
+ * parameters
+ */
+ public Map<String,ProtectionParameter> getProtectionParams() {
+ return protectionParams;
+ }
+
+ /**
+ * Gets the keystore protection parameters for this domain.
+ * Keystore domains do not support a protection parameter.
+ *
+ * @return always returns {@code null}
+ */
+ @Override
+ public KeyStore.ProtectionParameter getProtectionParameter() {
+ return null;
+ }
+}
--- a/jdk/src/share/classes/java/security/KeyStore.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/security/KeyStore.java Wed Oct 09 13:07:58 2013 -0700
@@ -219,148 +219,6 @@
}
/**
- * Configuration data that specifies the keystores in a keystore domain.
- * A keystore domain is a collection of keystores that are presented as a
- * single logical keystore. The configuration data is used during
- * {@code KeyStore}
- * {@link #load(KeyStore.LoadStoreParameter) load} and
- * {@link #store(KeyStore.LoadStoreParameter) store} operations.
- * <p>
- * The following syntax is supported for configuration data:
- * <pre>{@code
- * domain <domainName> [<property> ...] {
- * keystore <keystoreName> [<property> ...] ;
- * ...
- * };
- * ...
- * }</pre>
- * where {@code domainName} and {@code keystoreName} are identifiers
- * and {@code property} is a key/value pairing. The key and value are
- * separated by an 'equals' symbol and the value is enclosed in double
- * quotes. A property value may be either a printable string or a binary
- * string of colon-separated pairs of hexadecimal digits. Multi-valued
- * properties are represented as a comma-separated list of values,
- * enclosed in square brackets.
- * See {@link Arrays#toString(java.lang.Object[])}.
- * <p>
- * To ensure that keystore entries are uniquely identified, each
- * entry's alias is prefixed by its {@code keystoreName} followed
- * by the entry name separator and each {@code keystoreName} must be
- * unique within its domain. Entry name prefixes are omitted when
- * storing a keystore.
- * <p>
- * Properties are context-sensitive: properties that apply to
- * all the keystores in a domain are located in the domain clause,
- * and properties that apply only to a specific keystore are located
- * in that keystore's clause.
- * Unless otherwise specified, a property in a keystore clause overrides
- * a property of the same name in the domain clause. All property names
- * are case-insensitive. The following properties are supported:
- * <dl>
- * <dt> {@code keystoreType="<type>"} </dt>
- * <dd> The keystore type. </dd>
- * <dt> {@code keystoreURI="<url>"} </dt>
- * <dd> The keystore location. </dd>
- * <dt> {@code keystoreProviderName="<name>"} </dt>
- * <dd> The name of the keystore's JCE provider. </dd>
- * <dt> {@code keystorePasswordEnv="<environment-variable>"} </dt>
- * <dd> The environment variable that stores a keystore password.
- * Alternatively, passwords may be supplied to the constructor
- * method in a {@code Map<String, ProtectionParameter>}. </dd>
- * <dt> {@code entryNameSeparator="<separator>"} </dt>
- * <dd> The separator between a keystore name prefix and an entry name.
- * When specified, it applies to all the entries in a domain.
- * Its default value is a space. </dd>
- * </dl>
- * <p>
- * For example, configuration data for a simple keystore domain
- * comprising three keystores is shown below:
- * <pre>
- *
- * domain app1 {
- * keystore app1-truststore
- * keystoreURI="file:///app1/etc/truststore.jks"
- *
- * keystore system-truststore
- * keystoreURI="${java.home}/lib/security/cacerts"
- *
- * keystore app1-keystore
- * keystoreType="PKCS12"
- * keystoreURI="file:///app1/etc/keystore.p12"
- * };
- *
- * </pre>
- * @since 1.8
- */
- public static final class DomainLoadStoreParameter
- implements LoadStoreParameter {
-
- private final URI configuration;
- private final Map<String,ProtectionParameter> protectionParams;
-
- /**
- * Constructs a DomainLoadStoreParameter for a keystore domain with
- * the parameters used to protect keystore data.
- *
- * @param configuration identifier for the domain configuration data.
- * The name of the target domain should be specified in the
- * {@code java.net.URI} fragment component when it is necessary
- * to distinguish between several domain configurations at the
- * same location.
- *
- * @param protectionParams the map from keystore name to the parameter
- * used to protect keystore data.
- * A {@code java.util.Collections.EMPTY_MAP} should be used
- * when protection parameters are not required or when they have
- * been specified by properties in the domain configuration data.
- * It is cloned to prevent subsequent modification.
- *
- * @exception NullPointerException if {@code configuration} or
- * {@code protectionParams} is {@code null}
- */
- public DomainLoadStoreParameter(URI configuration,
- Map<String,ProtectionParameter> protectionParams) {
- if (configuration == null || protectionParams == null) {
- throw new NullPointerException("invalid null input");
- }
- this.configuration = configuration;
- this.protectionParams =
- Collections.unmodifiableMap(new HashMap<>(protectionParams));
- }
-
- /**
- * Gets the identifier for the domain configuration data.
- *
- * @return the identifier for the configuration data
- */
- public URI getConfiguration() {
- return configuration;
- }
-
- /**
- * Gets the keystore protection parameters for keystores in this
- * domain.
- *
- * @return an unmodifiable map of keystore names to protection
- * parameters
- */
- public Map<String,ProtectionParameter> getProtectionParams() {
- return protectionParams;
- }
-
- /**
- * Gets the keystore protection parameters for this domain.
- * Keystore domains do not support a protection parameter.
- *
- * @return always returns {@code null}
- */
- @Override
- public KeyStore.ProtectionParameter getProtectionParameter() {
- return null;
- }
- }
-
- /**
* A marker interface for keystore protection parameters.
*
* <p> The information stored in a {@code ProtectionParameter}
--- a/jdk/src/share/classes/java/time/DayOfWeek.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/DayOfWeek.java Wed Oct 09 13:07:58 2013 -0700
@@ -187,7 +187,12 @@
if (temporal instanceof DayOfWeek) {
return (DayOfWeek) temporal;
}
- return of(temporal.get(DAY_OF_WEEK));
+ try {
+ return of(temporal.get(DAY_OF_WEEK));
+ } catch (DateTimeException ex) {
+ throw new DateTimeException("Unable to obtain DayOfWeek from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
+ }
}
//-----------------------------------------------------------------------
--- a/jdk/src/share/classes/java/time/Instant.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/Instant.java Wed Oct 09 13:07:58 2013 -0700
@@ -366,9 +366,14 @@
return (Instant) temporal;
}
Objects.requireNonNull(temporal, "temporal");
- long instantSecs = temporal.getLong(INSTANT_SECONDS);
- int nanoOfSecond = temporal.get(NANO_OF_SECOND);
- return Instant.ofEpochSecond(instantSecs, nanoOfSecond);
+ try {
+ long instantSecs = temporal.getLong(INSTANT_SECONDS);
+ int nanoOfSecond = temporal.get(NANO_OF_SECOND);
+ return Instant.ofEpochSecond(instantSecs, nanoOfSecond);
+ } catch (DateTimeException ex) {
+ throw new DateTimeException("Unable to obtain Instant from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName());
+ }
}
//-----------------------------------------------------------------------
--- a/jdk/src/share/classes/java/time/LocalDate.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/LocalDate.java Wed Oct 09 13:07:58 2013 -0700
@@ -356,7 +356,8 @@
Objects.requireNonNull(temporal, "temporal");
LocalDate date = temporal.query(TemporalQuery.localDate());
if (date == null) {
- throw new DateTimeException("Unable to obtain LocalDate from TemporalAccessor: " + temporal.getClass());
+ throw new DateTimeException("Unable to obtain LocalDate from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName());
}
return date;
}
--- a/jdk/src/share/classes/java/time/LocalDateTime.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/LocalDateTime.java Wed Oct 09 13:07:58 2013 -0700
@@ -449,7 +449,8 @@
LocalTime time = LocalTime.from(temporal);
return new LocalDateTime(date, time);
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to obtain LocalDateTime from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain LocalDateTime from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/LocalTime.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/LocalTime.java Wed Oct 09 13:07:58 2013 -0700
@@ -397,7 +397,8 @@
Objects.requireNonNull(temporal, "temporal");
LocalTime time = temporal.query(TemporalQuery.localTime());
if (time == null) {
- throw new DateTimeException("Unable to obtain LocalTime from TemporalAccessor: " + temporal.getClass());
+ throw new DateTimeException("Unable to obtain LocalTime from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName());
}
return time;
}
--- a/jdk/src/share/classes/java/time/Month.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/Month.java Wed Oct 09 13:07:58 2013 -0700
@@ -217,7 +217,8 @@
}
return of(temporal.get(MONTH_OF_YEAR));
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to obtain Month from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain Month from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/MonthDay.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/MonthDay.java Wed Oct 09 13:07:58 2013 -0700
@@ -266,7 +266,8 @@
}
return of(temporal.get(MONTH_OF_YEAR), temporal.get(DAY_OF_MONTH));
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to obtain MonthDay from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain MonthDay from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/OffsetDateTime.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/OffsetDateTime.java Wed Oct 09 13:07:58 2013 -0700
@@ -347,8 +347,8 @@
if (temporal instanceof OffsetDateTime) {
return (OffsetDateTime) temporal;
}
- ZoneOffset offset = ZoneOffset.from(temporal);
try {
+ ZoneOffset offset = ZoneOffset.from(temporal);
try {
LocalDateTime ldt = LocalDateTime.from(temporal);
return OffsetDateTime.of(ldt, offset);
@@ -357,7 +357,8 @@
return OffsetDateTime.ofInstant(instant, offset);
}
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to obtain OffsetDateTime from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain OffsetDateTime from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/OffsetTime.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/OffsetTime.java Wed Oct 09 13:07:58 2013 -0700
@@ -284,7 +284,8 @@
ZoneOffset offset = ZoneOffset.from(temporal);
return new OffsetTime(time, offset);
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to obtain OffsetTime from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain OffsetTime from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/Year.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/Year.java Wed Oct 09 13:07:58 2013 -0700
@@ -249,7 +249,8 @@
}
return of(temporal.get(YEAR));
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to obtain Year from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain Year from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/YearMonth.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/YearMonth.java Wed Oct 09 13:07:58 2013 -0700
@@ -252,7 +252,8 @@
}
return of(temporal.get(YEAR), temporal.get(MONTH_OF_YEAR));
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to obtain YearMonth from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain YearMonth from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/ZoneId.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/ZoneId.java Wed Oct 09 13:07:58 2013 -0700
@@ -504,7 +504,8 @@
public static ZoneId from(TemporalAccessor temporal) {
ZoneId obj = temporal.query(TemporalQuery.zone());
if (obj == null) {
- throw new DateTimeException("Unable to obtain ZoneId from TemporalAccessor: " + temporal.getClass());
+ throw new DateTimeException("Unable to obtain ZoneId from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName());
}
return obj;
}
--- a/jdk/src/share/classes/java/time/ZoneOffset.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/ZoneOffset.java Wed Oct 09 13:07:58 2013 -0700
@@ -336,7 +336,8 @@
Objects.requireNonNull(temporal, "temporal");
ZoneOffset offset = temporal.query(TemporalQuery.offset());
if (offset == null) {
- throw new DateTimeException("Unable to obtain ZoneOffset from TemporalAccessor: " + temporal.getClass());
+ throw new DateTimeException("Unable to obtain ZoneOffset from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName());
}
return offset;
}
--- a/jdk/src/share/classes/java/time/ZonedDateTime.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/ZonedDateTime.java Wed Oct 09 13:07:58 2013 -0700
@@ -553,7 +553,8 @@
return of(ldt, zone);
}
} catch (DateTimeException ex) {
- throw new DateTimeException("Unable to create ZonedDateTime from TemporalAccessor: " + temporal.getClass(), ex);
+ throw new DateTimeException("Unable to obtain ZonedDateTime from TemporalAccessor: " +
+ temporal + " of type " + temporal.getClass().getName(), ex);
}
}
--- a/jdk/src/share/classes/java/time/format/DateTimeFormatterBuilder.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/format/DateTimeFormatterBuilder.java Wed Oct 09 13:07:58 2013 -0700
@@ -78,9 +78,11 @@
import java.text.ParsePosition;
import java.time.DateTimeException;
import java.time.Instant;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
+import java.time.chrono.ChronoLocalDate;
import java.time.chrono.Chronology;
import java.time.chrono.IsoChronology;
import java.time.format.DateTimeTextProvider.LocaleStore;
@@ -499,51 +501,16 @@
//-----------------------------------------------------------------------
/**
- * Appends the reduced value of a date-time field with fixed width to the formatter.
- * <p>
- * This is typically used for formatting and parsing a two digit year.
- * The {@code width} is the printed and parsed width.
- * The {@code baseValue} is used during parsing to determine the valid range.
- * <p>
- * For formatting, the width is used to determine the number of characters to format.
- * The rightmost characters are output to match the width, left padding with zero.
- * <p>
- * For strict parsing, the number of characters allowed by the width are parsed.
- * For lenient parsing, the number of characters must be at least 1 and less than 10.
- * If the number of digits parsed is equal to {@code width} and the value is positive,
- * the value of the field is computed to be the first number greater than
- * or equal to the {@code baseValue} with the same least significant characters,
- * otherwise the value parsed is the field value.
- * This allows a reduced value to be entered for values in range of the baseValue
- * and width and absolute values can be entered for values outside the range.
+ * Appends the reduced value of a date-time field to the formatter.
* <p>
- * For example, a base value of {@code 1980} and a width of {@code 2} will have
- * valid values from {@code 1980} to {@code 2079}.
- * During parsing, the text {@code "12"} will result in the value {@code 2012} as that
- * is the value within the range where the last two characters are "12".
- * Compare with lenient parsing the text {@code "1915"} that will result in the
- * value {@code 1915}.
- *
- * @param field the field to append, not null
- * @param width the field width of the printed and parsed field, from 1 to 10
- * @param baseValue the base value of the range of valid values
- * @return this, for chaining, not null
- * @throws IllegalArgumentException if the width or base value is invalid
- * @see #appendValueReduced(java.time.temporal.TemporalField, int, int, int)
- */
- public DateTimeFormatterBuilder appendValueReduced(TemporalField field,
- int width, int baseValue) {
- return appendValueReduced(field, width, width, baseValue);
- }
-
- /**
- * Appends the reduced value of a date-time field with a flexible width to the formatter.
- * <p>
- * This is typically used for formatting and parsing a two digit year
- * but allowing for the year value to be up to maxWidth.
+ * Since fields such as year vary by chronology, it is recommended to use the
+ * {@link #appendValueReduced(TemporalField, int, int, ChronoLocalDate)} date}
+ * variant of this method in most cases. This variant is suitable for
+ * simple fields or working with only the ISO chronology.
* <p>
* For formatting, the {@code width} and {@code maxWidth} are used to
* determine the number of characters to format.
+ * If they are equal then the format is fixed width.
* If the value of the field is within the range of the {@code baseValue} using
* {@code width} characters then the reduced value is formatted otherwise the value is
* truncated to fit {@code maxWidth}.
@@ -562,8 +529,7 @@
* valid values from {@code 1980} to {@code 2079}.
* During parsing, the text {@code "12"} will result in the value {@code 2012} as that
* is the value within the range where the last two characters are "12".
- * Compare with parsing the text {@code "1915"} that will result in the
- * value {@code 1915}.
+ * By contrast, parsing the text {@code "1915"} will result in the value {@code 1915}.
*
* @param field the field to append, not null
* @param width the field width of the printed and parsed field, from 1 to 10
@@ -575,7 +541,67 @@
public DateTimeFormatterBuilder appendValueReduced(TemporalField field,
int width, int maxWidth, int baseValue) {
Objects.requireNonNull(field, "field");
- ReducedPrinterParser pp = new ReducedPrinterParser(field, width, maxWidth, baseValue);
+ ReducedPrinterParser pp = new ReducedPrinterParser(field, width, maxWidth, baseValue, null);
+ appendValue(pp);
+ return this;
+ }
+
+ /**
+ * Appends the reduced value of a date-time field to the formatter.
+ * <p>
+ * This is typically used for formatting and parsing a two digit year.
+ * <p>
+ * The base date is used to calculate the full value during parsing.
+ * For example, if the base date is 1950-01-01 then parsed values for
+ * a two digit year parse will be in the range 1950-01-01 to 2049-12-31.
+ * Only the year would be extracted from the date, thus a base date of
+ * 1950-08-25 would also parse to the range 1950-01-01 to 2049-12-31.
+ * This behaviour is necessary to support fields such as week-based-year
+ * or other calendar systems where the parsed value does not align with
+ * standard ISO years.
+ * <p>
+ * The exact behavior is as follows. Parse the full set of fields and
+ * determine the effective chronology. Then convert the base date to the
+ * effective chronology. Then extract the specified field from the
+ * chronology-specific base date and use it to determine the
+ * {@code baseValue} used below.
+ * <p>
+ * For formatting, the {@code width} and {@code maxWidth} are used to
+ * determine the number of characters to format.
+ * If they are equal then the format is fixed width.
+ * If the value of the field is within the range of the {@code baseValue} using
+ * {@code width} characters then the reduced value is formatted otherwise the value is
+ * truncated to fit {@code maxWidth}.
+ * The rightmost characters are output to match the width, left padding with zero.
+ * <p>
+ * For strict parsing, the number of characters allowed by {@code width} to {@code maxWidth} are parsed.
+ * For lenient parsing, the number of characters must be at least 1 and less than 10.
+ * If the number of digits parsed is equal to {@code width} and the value is positive,
+ * the value of the field is computed to be the first number greater than
+ * or equal to the {@code baseValue} with the same least significant characters,
+ * otherwise the value parsed is the field value.
+ * This allows a reduced value to be entered for values in range of the baseValue
+ * and width and absolute values can be entered for values outside the range.
+ * <p>
+ * For example, a base value of {@code 1980} and a width of {@code 2} will have
+ * valid values from {@code 1980} to {@code 2079}.
+ * During parsing, the text {@code "12"} will result in the value {@code 2012} as that
+ * is the value within the range where the last two characters are "12".
+ * By contrast, parsing the text {@code "1915"} will result in the value {@code 1915}.
+ *
+ * @param field the field to append, not null
+ * @param width the field width of the printed and parsed field, from 1 to 10
+ * @param maxWidth the maximum field width of the printed field, from 1 to 10
+ * @param baseDate the base date used to calculate the base value for the range
+ * of valid values in the parsed chronology, not null
+ * @return this, for chaining, not null
+ * @throws IllegalArgumentException if the width or base value is invalid
+ */
+ public DateTimeFormatterBuilder appendValueReduced(
+ TemporalField field, int width, int maxWidth, ChronoLocalDate baseDate) {
+ Objects.requireNonNull(field, "field");
+ Objects.requireNonNull(baseDate, "baseDate");
+ ReducedPrinterParser pp = new ReducedPrinterParser(field, width, maxWidth, 0, baseDate);
appendValue(pp);
return this;
}
@@ -1682,7 +1708,7 @@
case 'u':
case 'y':
if (count == 2) {
- appendValueReduced(field, 2, 2000);
+ appendValueReduced(field, 2, 2, ReducedPrinterParser.BASE_DATE);
} else if (count < 4) {
appendValue(field, count, 19, SignStyle.NORMAL);
} else {
@@ -2516,7 +2542,7 @@
if (valueLong == null) {
return false;
}
- long value = getValue(valueLong);
+ long value = getValue(context, valueLong);
DecimalStyle decimalStyle = context.getDecimalStyle();
String str = (value == Long.MIN_VALUE ? "9223372036854775808" : Long.toString(Math.abs(value)));
if (str.length() > maxWidth) {
@@ -2560,10 +2586,11 @@
/**
* Gets the value to output.
*
- * @param value the base value of the field, not null
+ * @param context the context
+ * @param value the value of the field, not null
* @return the value
*/
- long getValue(long value) {
+ long getValue(DateTimePrintContext context, long value) {
return value;
}
@@ -2703,7 +2730,13 @@
* Prints and parses a reduced numeric date-time field.
*/
static final class ReducedPrinterParser extends NumberPrinterParser {
+ /**
+ * The base date for reduced value parsing.
+ */
+ static final LocalDate BASE_DATE = LocalDate.of(2000, 1, 1);
+
private final int baseValue;
+ private final ChronoLocalDate baseDate;
/**
* Constructor.
@@ -2712,10 +2745,11 @@
* @param minWidth the minimum field width, from 1 to 10
* @param maxWidth the maximum field width, from 1 to 10
* @param baseValue the base value
+ * @param baseDate the base date
*/
ReducedPrinterParser(TemporalField field, int minWidth, int maxWidth,
- int baseValue) {
- this(field, minWidth, maxWidth, baseValue, 0);
+ int baseValue, ChronoLocalDate baseDate) {
+ this(field, minWidth, maxWidth, baseValue, baseDate, 0);
if (minWidth < 1 || minWidth > 10) {
throw new IllegalArgumentException("The minWidth must be from 1 to 10 inclusive but was " + minWidth);
}
@@ -2726,11 +2760,13 @@
throw new IllegalArgumentException("Maximum width must exceed or equal the minimum width but " +
maxWidth + " < " + minWidth);
}
- if (field.range().isValidValue(baseValue) == false) {
- throw new IllegalArgumentException("The base value must be within the range of the field");
- }
- if ((((long) baseValue) + EXCEED_POINTS[maxWidth]) > Integer.MAX_VALUE) {
- throw new DateTimeException("Unable to add printer-parser as the range exceeds the capacity of an int");
+ if (baseDate == null) {
+ if (field.range().isValidValue(baseValue) == false) {
+ throw new IllegalArgumentException("The base value must be within the range of the field");
+ }
+ if ((((long) baseValue) + EXCEED_POINTS[maxWidth]) > Integer.MAX_VALUE) {
+ throw new DateTimeException("Unable to add printer-parser as the range exceeds the capacity of an int");
+ }
}
}
@@ -2742,17 +2778,24 @@
* @param minWidth the minimum field width, from 1 to 10
* @param maxWidth the maximum field width, from 1 to 10
* @param baseValue the base value
+ * @param baseDate the base date
* @param subsequentWidth the subsequentWidth for this instance
*/
private ReducedPrinterParser(TemporalField field, int minWidth, int maxWidth,
- int baseValue, int subsequentWidth) {
+ int baseValue, ChronoLocalDate baseDate, int subsequentWidth) {
super(field, minWidth, maxWidth, SignStyle.NOT_NEGATIVE, subsequentWidth);
this.baseValue = baseValue;
+ this.baseDate = baseDate;
}
@Override
- long getValue(long value) {
+ long getValue(DateTimePrintContext context, long value) {
long absValue = Math.abs(value);
+ int baseValue = this.baseValue;
+ if (baseDate != null) {
+ Chronology chrono = Chronology.from(context.getTemporal());
+ baseValue = chrono.date(baseDate).get(field);
+ }
if (value >= baseValue && value < baseValue + EXCEED_POINTS[minWidth]) {
// Use the reduced value if it fits in minWidth
return absValue % EXCEED_POINTS[minWidth];
@@ -2763,6 +2806,12 @@
@Override
int setValue(DateTimeParseContext context, long value, int errorPos, int successPos) {
+ int baseValue = this.baseValue;
+ if (baseDate != null) {
+ // TODO: effective chrono is inaccurate at this point
+ Chronology chrono = context.getEffectiveChronology();
+ baseValue = chrono.date(baseDate).get(field);
+ }
int parseLen = successPos - errorPos;
if (parseLen == minWidth && value >= 0) {
long range = EXCEED_POINTS[minWidth];
@@ -2773,7 +2822,7 @@
} else {
value = basePart - value;
}
- if (basePart != 0 && value < baseValue) {
+ if (value < baseValue) {
value += range;
}
}
@@ -2790,7 +2839,7 @@
if (subsequentWidth == -1) {
return this;
}
- return new ReducedPrinterParser(field, minWidth, maxWidth, baseValue, -1);
+ return new ReducedPrinterParser(field, minWidth, maxWidth, baseValue, baseDate, -1);
}
/**
@@ -2801,13 +2850,13 @@
*/
@Override
ReducedPrinterParser withSubsequentWidth(int subsequentWidth) {
- return new ReducedPrinterParser(field, minWidth, maxWidth, baseValue,
+ return new ReducedPrinterParser(field, minWidth, maxWidth, baseValue, baseDate,
this.subsequentWidth + subsequentWidth);
}
@Override
public String toString() {
- return "ReducedValue(" + field + "," + minWidth + "," + maxWidth + "," + baseValue + ")";
+ return "ReducedValue(" + field + "," + minWidth + "," + maxWidth + "," + (baseDate != null ? baseDate : baseValue) + ")";
}
}
@@ -4351,7 +4400,7 @@
case 'Y':
field = weekDef.weekBasedYear();
if (count == 2) {
- return new ReducedPrinterParser(field, 2, 2, 2000, 0);
+ return new ReducedPrinterParser(field, 2, 2, 0, ReducedPrinterParser.BASE_DATE, 0);
} else {
return new NumberPrinterParser(field, count, 19,
(count < 4) ? SignStyle.NORMAL : SignStyle.EXCEEDS_PAD, -1);
@@ -4380,7 +4429,7 @@
if (count == 1) {
sb.append("WeekBasedYear");
} else if (count == 2) {
- sb.append("ReducedValue(WeekBasedYear,2,2000)");
+ sb.append("ReducedValue(WeekBasedYear,2,2,2000-01-01)");
} else {
sb.append("WeekBasedYear,").append(count).append(",")
.append(19).append(",")
--- a/jdk/src/share/classes/java/time/format/Parsed.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/time/format/Parsed.java Wed Oct 09 13:07:58 2013 -0700
@@ -588,11 +588,23 @@
//-----------------------------------------------------------------------
@Override
public String toString() {
- String str = fieldValues.toString() + "," + chrono + "," + zone;
+ StringBuilder buf = new StringBuilder(64);
+ buf.append(fieldValues).append(',').append(chrono);
+ if (zone != null) {
+ buf.append(',').append(zone);
+ }
if (date != null || time != null) {
- str += " resolved to " + date + "," + time;
+ buf.append(" resolved to ");
+ if (date != null) {
+ buf.append(date);
+ if (time != null) {
+ buf.append('T').append(time);
+ }
+ } else {
+ buf.append(time);
+ }
}
- return str;
+ return buf.toString();
}
}
--- a/jdk/src/share/classes/java/util/HashSet.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/util/HashSet.java Wed Oct 09 13:07:58 2013 -0700
@@ -25,6 +25,8 @@
package java.util;
+import java.io.InvalidObjectException;
+
/**
* This class implements the <tt>Set</tt> interface, backed by a hash table
* (actually a <tt>HashMap</tt> instance). It makes no guarantees as to the
@@ -294,16 +296,37 @@
// Read in any hidden serialization magic
s.defaultReadObject();
- // Read in HashMap capacity and load factor and create backing HashMap
+ // Read capacity and verify non-negative.
int capacity = s.readInt();
+ if (capacity < 0) {
+ throw new InvalidObjectException("Illegal capacity: " +
+ capacity);
+ }
+
+ // Read load factor and verify positive and non NaN.
float loadFactor = s.readFloat();
+ if (loadFactor <= 0 || Float.isNaN(loadFactor)) {
+ throw new InvalidObjectException("Illegal load factor: " +
+ loadFactor);
+ }
+
+ // Read size and verify non-negative.
+ int size = s.readInt();
+ if (size < 0) {
+ throw new InvalidObjectException("Illegal size: " +
+ size);
+ }
+
+ // Set the capacity according to the size and load factor ensuring that
+ // the HashMap is at least 25% full but clamping to maximum capacity.
+ capacity = (int) Math.min(size * Math.min(1 / loadFactor, 4.0f),
+ HashMap.MAXIMUM_CAPACITY);
+
+ // Create backing HashMap
map = (((HashSet<?>)this) instanceof LinkedHashSet ?
new LinkedHashMap<E,Object>(capacity, loadFactor) :
new HashMap<E,Object>(capacity, loadFactor));
- // Read in size
- int size = s.readInt();
-
// Read in all elements in the proper order.
for (int i=0; i<size; i++) {
@SuppressWarnings("unchecked")
--- a/jdk/src/share/classes/java/util/Spliterator.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/util/Spliterator.java Wed Oct 09 13:07:58 2013 -0700
@@ -414,13 +414,19 @@
* #ORDERED}, {@link #DISTINCT}, {@link #SORTED}, {@link #SIZED},
* {@link #NONNULL}, {@link #IMMUTABLE}, {@link #CONCURRENT},
* {@link #SUBSIZED}. Repeated calls to {@code characteristics()} on
- * a given spliterator should always return the same result.
+ * a given spliterator, prior to or in-between calls to {@code trySplit},
+ * should always return the same result.
*
* <p>If a Spliterator reports an inconsistent set of
* characteristics (either those returned from a single invocation
* or across multiple invocations), no guarantees can be made
* about any computation using this Spliterator.
*
+ * @apiNote The characteristics of a given spliterator before splitting
+ * may differ from the characteristics after splitting. For specific
+ * examples see the characteristic values {@link #SIZED}, {@link #SUBSIZED}
+ * and {@link #CONCURRENT}.
+ *
* @return a representation of characteristics
*/
int characteristics();
--- a/jdk/src/share/classes/java/util/logging/Level.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/java/util/logging/Level.java Wed Oct 09 13:07:58 2013 -0700
@@ -204,6 +204,12 @@
* @throws NullPointerException if the name is null
*/
protected Level(String name, int value, String resourceBundleName) {
+ this(name, value, resourceBundleName, true);
+ }
+
+ // private constructor to specify whether this instance should be added
+ // to the KnownLevel list from which Level.parse method does its look up
+ private Level(String name, int value, String resourceBundleName, boolean visible) {
if (name == null) {
throw new NullPointerException();
}
@@ -212,7 +218,9 @@
this.resourceBundleName = resourceBundleName;
this.localizedLevelName = resourceBundleName == null ? name : null;
this.cachedLocale = null;
- KnownLevel.add(this);
+ if (visible) {
+ KnownLevel.add(this);
+ }
}
/**
@@ -465,7 +473,7 @@
// Finally, look for a known level with the given localized name,
// in the current default locale.
// This is relatively expensive, but not excessively so.
- level = KnownLevel.findByLocalizedName(name);
+ level = KnownLevel.findByLocalizedLevelName(name);
if (level != null) {
return level.levelObject;
}
@@ -521,13 +529,14 @@
private static Map<String, List<KnownLevel>> nameToLevels = new HashMap<>();
private static Map<Integer, List<KnownLevel>> intToLevels = new HashMap<>();
final Level levelObject; // instance of Level class or Level subclass
- final Level mirroredLevel; // instance of Level class
+ final Level mirroredLevel; // mirror of the custom Level
KnownLevel(Level l) {
this.levelObject = l;
if (l.getClass() == Level.class) {
this.mirroredLevel = l;
} else {
- this.mirroredLevel = new Level(l.name, l.value, l.resourceBundleName);
+ // this mirrored level object is hidden
+ this.mirroredLevel = new Level(l.name, l.value, l.resourceBundleName, false);
}
}
@@ -585,20 +594,6 @@
return null;
}
- // Returns a KnownLevel with the given localized name matching
- // by calling the Level.getLocalizedName() method
- static synchronized KnownLevel findByLocalizedName(String name) {
- for (List<KnownLevel> levels : nameToLevels.values()) {
- for (KnownLevel l : levels) {
- String lname = l.levelObject.getLocalizedName();
- if (name.equals(lname)) {
- return l;
- }
- }
- }
- return null;
- }
-
static synchronized KnownLevel matches(Level l) {
List<KnownLevel> list = nameToLevels.get(l.name);
if (list != null) {
--- a/jdk/src/share/classes/sun/security/provider/DomainKeyStore.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/share/classes/sun/security/provider/DomainKeyStore.java Wed Oct 09 13:07:58 2013 -0700
@@ -41,7 +41,7 @@
* This class provides the domain keystore type identified as "DKS".
* DKS presents a collection of separate keystores as a single logical keystore.
* The collection of keystores is specified in a domain configuration file which
- * is passed to DKS in a {@link KeyStore.DomainLoadStoreParameter}.
+ * is passed to DKS in a {@link DomainLoadStoreParameter}.
* <p>
* The following properties are supported:
* <dl>
@@ -622,17 +622,16 @@
}
throw new UnsupportedOperationException(
- "This keystore must be stored using a " +
- "KeyStore.DomainLoadStoreParameter");
+ "This keystore must be stored using a DomainLoadStoreParameter");
}
@Override
public void engineStore(KeyStore.LoadStoreParameter param)
throws IOException, NoSuchAlgorithmException, CertificateException
{
- if (param instanceof KeyStore.DomainLoadStoreParameter) {
- KeyStore.DomainLoadStoreParameter domainParameter =
- (KeyStore.DomainLoadStoreParameter) param;
+ if (param instanceof DomainLoadStoreParameter) {
+ DomainLoadStoreParameter domainParameter =
+ (DomainLoadStoreParameter) param;
List<KeyStoreBuilderComponents> builders = getBuilders(
domainParameter.getConfiguration(),
domainParameter.getProtectionParams());
@@ -645,7 +644,7 @@
if (!(pp instanceof KeyStore.PasswordProtection)) {
throw new KeyStoreException(
new IllegalArgumentException("ProtectionParameter" +
- " must be a KeyStore.PasswordPartection"));
+ " must be a KeyStore.PasswordProtection"));
}
char[] password =
((KeyStore.PasswordProtection) builder.protection)
@@ -663,7 +662,7 @@
} else {
throw new UnsupportedOperationException(
"This keystore must be stored using a " +
- "KeyStore.DomainLoadStoreParameter");
+ "DomainLoadStoreParameter");
}
}
@@ -710,7 +709,7 @@
} catch (Exception e) {
throw new UnsupportedOperationException(
"This keystore must be loaded using a " +
- "KeyStore.DomainLoadStoreParameter");
+ "DomainLoadStoreParameter");
}
}
@@ -718,9 +717,9 @@
public void engineLoad(KeyStore.LoadStoreParameter param)
throws IOException, NoSuchAlgorithmException, CertificateException
{
- if (param instanceof KeyStore.DomainLoadStoreParameter) {
- KeyStore.DomainLoadStoreParameter domainParameter =
- (KeyStore.DomainLoadStoreParameter) param;
+ if (param instanceof DomainLoadStoreParameter) {
+ DomainLoadStoreParameter domainParameter =
+ (DomainLoadStoreParameter) param;
List<KeyStoreBuilderComponents> builders = getBuilders(
domainParameter.getConfiguration(),
domainParameter.getProtectionParams());
@@ -748,7 +747,7 @@
} else {
throw new UnsupportedOperationException(
"This keystore must be loaded using a " +
- "KeyStore.DomainLoadStoreParameter");
+ "DomainLoadStoreParameter");
}
}
--- a/jdk/src/solaris/classes/com/sun/management/OSMBeanFactory.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/solaris/classes/com/sun/management/OSMBeanFactory.java Wed Oct 09 13:07:58 2013 -0700
@@ -35,6 +35,7 @@
* public API and its API may change in incompatable ways between dot dot
* releases and even patch releases. You should not rely on this class.
*/
+@jdk.Exported(false)
public class OSMBeanFactory {
/* static factory class */
private OSMBeanFactory() {};
--- a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c Wed Oct 09 13:07:58 2013 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,24 @@
#define HAS_GLIBC_GETHOSTBY_R 1
#endif
+static jclass ni_iacls;
+static jclass ni_ia4cls;
+static jmethodID ni_ia4ctrID;
+
+static void initializeInetClasses(JNIEnv *env)
+{
+ static int initialized = 0;
+ if (!initialized) {
+ ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
+ ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
+ ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
+ ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
+ ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V");
+ initialized = 1;
+ }
+}
+
+
#if defined(_ALLBSD_SOURCE) && !defined(HAS_GLIBC_GETHOSTBY_R)
/* Use getaddrinfo(3), which is thread safe */
/************************************************************************
@@ -99,14 +117,6 @@
return (*env)->NewStringUTF(env, hostname);
}
-static jclass ni_iacls;
-static jclass ni_ia4cls;
-static jmethodID ni_ia4ctrID;
-static jfieldID ni_iaaddressID;
-static jfieldID ni_iahostID;
-static jfieldID ni_iafamilyID;
-static int initialized = 0;
-
/*
* Find an internet address for a given hostname. Note that this
* code only works for addresses of type INET. The translation
@@ -129,14 +139,7 @@
int error=0;
struct addrinfo hints, *res, *resNew = NULL;
- if (!initialized) {
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V");
- initialized = 1;
- }
+ initializeInetClasses(env);
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host is null");
@@ -160,6 +163,17 @@
return NULL;
}
+#ifdef MACOSX
+ /* If we're looking up the local machine, bypass DNS lookups and get
+ * address from getifaddrs.
+ */
+ ret = lookupIfLocalhost(env, hostname, JNI_FALSE);
+ if (ret != NULL || (*env)->ExceptionCheck(env)) {
+ JNU_ReleaseStringPlatformChars(env, host, hostname);
+ return ret;
+ }
+#endif
+
error = getaddrinfo(hostname, NULL, &hints, &res);
if (error) {
@@ -365,10 +379,7 @@
return (*env)->NewStringUTF(env, hostname);
}
-static jclass ni_iacls;
-static jclass ni_ia4cls;
-static jmethodID ni_ia4ctrID;
-static int initialized = 0;
+extern jobjectArray lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6);
/*
* Find an internet address for a given hostname. Note that this
@@ -390,14 +401,7 @@
int error = 0;
struct addrinfo hints, *res, *resNew = NULL;
- if (!initialized) {
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V");
- initialized = 1;
- }
+ initializeInetClasses(env);
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host is null");
--- a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c Wed Oct 09 13:07:58 2013 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,9 @@
#include <strings.h>
#include <stdlib.h>
#include <ctype.h>
-#ifdef _ALLBSD_SOURCE
+#ifdef MACOSX
+#include <ifaddrs.h>
+#include <net/if.h>
#include <unistd.h> /* gethostname */
#endif
@@ -121,7 +123,145 @@
static jmethodID ni_ia4ctrID;
static jmethodID ni_ia6ctrID;
static jfieldID ni_ia6ipaddressID;
-static int initialized = 0;
+
+static void initializeInetClasses(JNIEnv *env)
+{
+ static int initialized = 0;
+ if (!initialized) {
+ ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
+ ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
+ ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
+ ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
+ ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address");
+ ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls);
+ ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V");
+ ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "<init>", "()V");
+ ni_ia6ipaddressID = (*env)->GetFieldID(env, ni_ia6cls, "ipaddress", "[B");
+ initialized = 1;
+ }
+}
+
+#ifdef MACOSX
+/* also called from Inet4AddressImpl.c */
+__private_extern__ jobjectArray
+lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6)
+{
+ jobjectArray result = NULL;
+ jboolean preferIPv6Address;
+ char myhostname[NI_MAXHOST+1];
+ struct ifaddrs *ifa = NULL;
+ int familyOrder = 0;
+ int count = 0, i, j;
+ int addrs4 = 0, addrs6 = 0, numV4Loopbacks = 0, numV6Loopbacks = 0;
+ jboolean includeLoopback = JNI_FALSE;
+ jobject name;
+
+ // Make sure static variables we need are set.
+ initializeInetClasses(env);
+
+ /* get the address preference */
+ preferIPv6Address = (*env)->GetStaticBooleanField(env, ia_class, ia_preferIPv6AddressID);
+
+ /* If the requested name matches this host's hostname, return IP addresses
+ * from all attached interfaces. (#2844683 et al) This prevents undesired
+ * PPP dialup, but may return addresses that don't actually correspond to
+ * the name (if the name actually matches something in DNS etc.
+ */
+ myhostname[0] = '\0';
+ if (JVM_GetHostName(myhostname, NI_MAXHOST)) {
+ /* Something went wrong, maybe networking is not setup? */
+ return NULL;
+ }
+ myhostname[NI_MAXHOST] = '\0';
+
+ if (strcmp(myhostname, hostname) != 0) {
+ // Non-self lookup
+ return NULL;
+ }
+
+ if (getifaddrs(&ifa) != 0) {
+ NET_ThrowNew(env, errno, "Can't get local interface addresses");
+ return NULL;
+ }
+
+ name = (*env)->NewStringUTF(env, hostname);
+
+ /* Iterate over the interfaces, and total up the number of IPv4 and IPv6
+ * addresses we have. Also keep a count of loopback addresses. We need to
+ * exclude them in the normal case, but return them if we don't get an IP
+ * address.
+ */
+ struct ifaddrs *iter = ifa;
+ while (iter) {
+ int family = iter->ifa_addr->sa_family;
+ if (iter->ifa_name[0] != '\0' && iter->ifa_addr)
+ {
+ jboolean isLoopback = iter->ifa_flags & IFF_LOOPBACK;
+ if (family == AF_INET) {
+ addrs4++;
+ if (isLoopback) numV4Loopbacks++;
+ } else if (family == AF_INET6 && includeV6) {
+ addrs6++;
+ if (isLoopback) numV6Loopbacks++;
+ } else {
+ /* We don't care e.g. AF_LINK */
+ }
+ }
+ iter = iter->ifa_next;
+ }
+
+ if (addrs4 == numV4Loopbacks && addrs6 == numV6Loopbacks) {
+ // We don't have a real IP address, just loopback. We need to include
+ // loopback in our results.
+ includeLoopback = JNI_TRUE;
+ }
+
+ /* Create and fill the Java array. */
+ int arraySize = addrs4 + addrs6 -
+ (includeLoopback ? 0 : (numV4Loopbacks + numV6Loopbacks));
+ result = (*env)->NewObjectArray(env, arraySize, ni_iacls, NULL);
+ if (!result) goto done;
+
+ if (preferIPv6Address) {
+ i = includeLoopback ? addrs6 : (addrs6 - numV6Loopbacks);
+ j = 0;
+ } else {
+ i = 0;
+ j = includeLoopback ? addrs4 : (addrs4 - numV4Loopbacks);
+ }
+
+ // Now loop around the ifaddrs
+ iter = ifa;
+ while (iter != NULL) {
+ jboolean isLoopback = iter->ifa_flags & IFF_LOOPBACK;
+ int family = iter->ifa_addr->sa_family;
+
+ if (iter->ifa_name[0] != '\0' && iter->ifa_addr
+ && (family == AF_INET || (family == AF_INET6 && includeV6))
+ && (!isLoopback || includeLoopback))
+ {
+ int port;
+ int index = (family == AF_INET) ? i++ : j++;
+ jobject o = NET_SockaddrToInetAddress(env, iter->ifa_addr, &port);
+ if (!o) {
+ freeifaddrs(ifa);
+ if (!(*env)->ExceptionCheck(env))
+ JNU_ThrowOutOfMemoryError(env, "Object allocation failed");
+ return NULL;
+ }
+ setInetAddress_hostName(env, o, name);
+ (*env)->SetObjectArrayElement(env, result, index, o);
+ (*env)->DeleteLocalRef(env, o);
+ }
+ iter = iter->ifa_next;
+ }
+
+ done:
+ freeifaddrs(ifa);
+
+ return result;
+}
+#endif
/*
* Find an internet address for a given hostname. Note that this
@@ -147,18 +287,7 @@
struct addrinfo hints, *res, *resNew = NULL;
#endif /* AF_INET6 */
- if (!initialized) {
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address");
- ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V");
- ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "<init>", "()V");
- ni_ia6ipaddressID = (*env)->GetFieldID(env, ni_ia6cls, "ipaddress", "[B");
- initialized = 1;
- }
+ initializeInetClasses(env);
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host is null");
@@ -167,6 +296,21 @@
hostname = JNU_GetStringPlatformChars(env, host, JNI_FALSE);
CHECK_NULL_RETURN(hostname, NULL);
+#ifdef MACOSX
+ /*
+ * If getaddrinfo has failed and we're looking up the local machine, we
+ * attempt to get the address from getifaddrs. This ensures we get an
+ * IPv6 address for the local machine.
+ */
+ if (error) {
+ ret = lookupIfLocalhost(env, hostname, JNI_TRUE);
+ if (ret != NULL || (*env)->ExceptionCheck(env)) {
+ JNU_ReleaseStringPlatformChars(env, host, hostname);
+ return ret;
+ }
+ }
+#endif
+
#ifdef AF_INET6
static jfieldID ia_preferIPv6AddressID;
if (ia_preferIPv6AddressID == NULL) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/invoke/lambda/LogGeneratedClassesTest.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,208 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8023524
+ * @summary tests logging generated classes for lambda
+ * @library /java/nio/file
+ * @run testng LogGeneratedClassesTest
+ */
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.attribute.PosixFileAttributeView;
+import java.util.stream.Stream;
+
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import org.testng.SkipException;
+
+import static java.nio.file.attribute.PosixFilePermissions.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+public class LogGeneratedClassesTest extends LUtils {
+ String longFQCN;
+
+ @BeforeClass
+ public void setup() throws IOException {
+ final List<String> scratch = new ArrayList<>();
+ scratch.clear();
+ scratch.add("package com.example;");
+ scratch.add("public class TestLambda {");
+ scratch.add(" interface I {");
+ scratch.add(" int foo();");
+ scratch.add(" }");
+ scratch.add(" public static void main(String[] args) {");
+ scratch.add(" I lam = () -> 10;");
+ scratch.add(" Runnable r = () -> {");
+ scratch.add(" System.out.println(\"Runnable\");");
+ scratch.add(" };");
+ scratch.add(" r.run();");
+ scratch.add(" System.out.println(\"Finish\");");
+ scratch.add(" }");
+ scratch.add("}");
+
+ File test = new File("TestLambda.java");
+ createFile(test, scratch);
+ compile("-d", ".", test.getName());
+
+ scratch.remove(0);
+ scratch.remove(0);
+ scratch.add(0, "public class LongPackageName {");
+ StringBuilder sb = new StringBuilder("com.example.");
+ // longer than 255 which exceed max length of most filesystems
+ for (int i = 0; i < 30; i++) {
+ sb.append("nonsense.");
+ }
+ sb.append("enough");
+ longFQCN = sb.toString() + ".LongPackageName";
+ sb.append(";");
+ sb.insert(0, "package ");
+ scratch.add(0, sb.toString());
+ test = new File("LongPackageName.java");
+ createFile(test, scratch);
+ compile("-d", ".", test.getName());
+
+ // create target
+ Files.createDirectory(Paths.get("dump"));
+ Files.createDirectories(Paths.get("dumpLong/com/example/nonsense"));
+ Files.createFile(Paths.get("dumpLong/com/example/nonsense/nonsense"));
+ Files.createFile(Paths.get("file"));
+ }
+
+ @AfterClass
+ public void cleanup() throws IOException {
+ Files.delete(Paths.get("TestLambda.java"));
+ Files.delete(Paths.get("LongPackageName.java"));
+ Files.delete(Paths.get("file"));
+ TestUtil.removeAll(Paths.get("com"));
+ TestUtil.removeAll(Paths.get("dump"));
+ TestUtil.removeAll(Paths.get("dumpLong"));
+ }
+
+ @Test
+ public void testNotLogging() {
+ TestResult tr = doExec(JAVA_CMD.getAbsolutePath(),
+ "-cp", ".",
+ "-Djava.security.manager",
+ "com.example.TestLambda");
+ tr.assertZero("Should still return 0");
+ }
+
+ @Test
+ public void testLogging() throws IOException {
+ assertTrue(Files.exists(Paths.get("dump")));
+ TestResult tr = doExec(JAVA_CMD.getAbsolutePath(),
+ "-cp", ".",
+ "-Djdk.internal.lambda.dumpProxyClasses=dump",
+ "-Djava.security.manager",
+ "com.example.TestLambda");
+ // dump/com/example + 2 class files
+ assertEquals(Files.walk(Paths.get("dump")).count(), 5, "Two lambda captured");
+ tr.assertZero("Should still return 0");
+ }
+
+ @Test
+ public void testDumpDirNotExist() throws IOException {
+ assertFalse(Files.exists(Paths.get("notExist")));
+ TestResult tr = doExec(JAVA_CMD.getAbsolutePath(),
+ "-cp", ".",
+ "-Djdk.internal.lambda.dumpProxyClasses=notExist",
+ "-Djava.security.manager",
+ "com.example.TestLambda");
+ assertEquals(tr.testOutput.stream()
+ .filter(s -> s.startsWith("WARNING"))
+ .peek(s -> assertTrue(s.contains("does not exist")))
+ .count(),
+ 1, "only show error once");
+ tr.assertZero("Should still return 0");
+ }
+
+ @Test
+ public void testDumpDirIsFile() throws IOException {
+ assertTrue(Files.isRegularFile(Paths.get("file")));
+ TestResult tr = doExec(JAVA_CMD.getAbsolutePath(),
+ "-cp", ".",
+ "-Djdk.internal.lambda.dumpProxyClasses=file",
+ "-Djava.security.manager",
+ "com.example.TestLambda");
+ assertEquals(tr.testOutput.stream()
+ .filter(s -> s.startsWith("WARNING"))
+ .peek(s -> assertTrue(s.contains("not a directory")))
+ .count(),
+ 1, "only show error once");
+ tr.assertZero("Should still return 0");
+ }
+
+ @Test
+ public void testDumpDirNotWritable() throws IOException {
+ if (! Files.getFileStore(Paths.get("."))
+ .supportsFileAttributeView(PosixFileAttributeView.class)) {
+ // No easy way to setup readonly directory
+ throw new SkipException("Posix not supported");
+ }
+
+ Files.createDirectory(Paths.get("readOnly"),
+ asFileAttribute(fromString("r-xr-xr-x")));
+
+ TestResult tr = doExec(JAVA_CMD.getAbsolutePath(),
+ "-cp", ".",
+ "-Djdk.internal.lambda.dumpProxyClasses=readOnly",
+ "-Djava.security.manager",
+ "com.example.TestLambda");
+ assertEquals(tr.testOutput.stream()
+ .filter(s -> s.startsWith("WARNING"))
+ .peek(s -> assertTrue(s.contains("not writable")))
+ .count(),
+ 1, "only show error once");
+ tr.assertZero("Should still return 0");
+
+ TestUtil.removeAll(Paths.get("readOnly"));
+ }
+
+ @Test
+ public void testLoggingException() throws IOException {
+ assertTrue(Files.exists(Paths.get("dumpLong")));
+ TestResult tr = doExec(JAVA_CMD.getAbsolutePath(),
+ "-cp", ".",
+ "-Djdk.internal.lambda.dumpProxyClasses=dumpLong",
+ "-Djava.security.manager",
+ longFQCN);
+ assertEquals(tr.testOutput.stream()
+ .filter(s -> s.startsWith("WARNING: Exception"))
+ .count(),
+ 2, "show error each capture");
+ // dumpLong/com/example/nosense/nosense
+ assertEquals(Files.walk(Paths.get("dumpLong")).count(), 5, "Two lambda captured failed to log");
+ tr.assertZero("Should still return 0");
+ }
+}
--- a/jdk/test/java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/test/java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java Wed Oct 09 13:07:58 2013 -0700
@@ -190,8 +190,69 @@
//-----------------------------------------------------------------------
@Test(expectedExceptions=NullPointerException.class)
- public void test_appendValueReduced_null() throws Exception {
- builder.appendValueReduced(null, 2, 2000);
+ public void test_appendValueReduced_int_nullField() throws Exception {
+ builder.appendValueReduced(null, 2, 2, 2000);
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_int_minWidthTooSmall() throws Exception {
+ builder.appendValueReduced(YEAR, 0, 2, 2000);
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_int_minWidthTooBig() throws Exception {
+ builder.appendValueReduced(YEAR, 11, 2, 2000);
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_int_maxWidthTooSmall() throws Exception {
+ builder.appendValueReduced(YEAR, 2, 0, 2000);
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_int_maxWidthTooBig() throws Exception {
+ builder.appendValueReduced(YEAR, 2, 11, 2000);
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_int_maxWidthLessThanMin() throws Exception {
+ builder.appendValueReduced(YEAR, 2, 1, 2000);
+ }
+
+ //-----------------------------------------------------------------------
+ @Test(expectedExceptions=NullPointerException.class)
+ public void test_appendValueReduced_date_nullField() throws Exception {
+ builder.appendValueReduced(null, 2, 2, LocalDate.of(2000, 1, 1));
+ }
+
+ @Test(expectedExceptions=NullPointerException.class)
+ public void test_appendValueReduced_date_nullDate() throws Exception {
+ builder.appendValueReduced(YEAR, 2, 2, null);
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_date_minWidthTooSmall() throws Exception {
+ builder.appendValueReduced(YEAR, 0, 2, LocalDate.of(2000, 1, 1));
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_date_minWidthTooBig() throws Exception {
+ builder.appendValueReduced(YEAR, 11, 2, LocalDate.of(2000, 1, 1));
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_date_maxWidthTooSmall() throws Exception {
+ builder.appendValueReduced(YEAR, 2, 0, LocalDate.of(2000, 1, 1));
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_date_maxWidthTooBig() throws Exception {
+ builder.appendValueReduced(YEAR, 2, 11, LocalDate.of(2000, 1, 1));
+ }
+
+ @Test(expectedExceptions=IllegalArgumentException.class)
+ public void test_appendValueReduced_date_maxWidthLessThanMin() throws Exception {
+ builder.appendValueReduced(YEAR, 2, 1, LocalDate.of(2000, 1, 1));
}
//-----------------------------------------------------------------------
--- a/jdk/test/java/time/tck/java/time/format/TCKDateTimeFormatters.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/test/java/time/tck/java/time/format/TCKDateTimeFormatters.java Wed Oct 09 13:07:58 2013 -0700
@@ -126,9 +126,10 @@
@Test
public void test_pattern_String() {
DateTimeFormatter test = DateTimeFormatter.ofPattern("d MMM yyyy");
+ Locale fmtLocale = Locale.getDefault(Locale.Category.FORMAT);
assertEquals(test.format(LocalDate.of(2012, 6, 30)), "30 " +
- Month.JUNE.getDisplayName(TextStyle.SHORT, Locale.getDefault()) + " 2012");
- assertEquals(test.getLocale(), Locale.getDefault());
+ Month.JUNE.getDisplayName(TextStyle.SHORT, fmtLocale) + " 2012");
+ assertEquals(test.getLocale(), fmtLocale, "Locale.Category.FORMAT");
}
@Test(expectedExceptions=IllegalArgumentException.class)
--- a/jdk/test/java/time/test/java/time/format/TestDateTimeFormatter.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/test/java/time/test/java/time/format/TestDateTimeFormatter.java Wed Oct 09 13:07:58 2013 -0700
@@ -61,12 +61,32 @@
import static java.time.temporal.ChronoField.DAY_OF_MONTH;
import static org.testng.Assert.assertSame;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
-import java.time.format.DecimalStyle;
+import java.time.DateTimeException;
+import java.time.DayOfWeek;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.Month;
+import java.time.MonthDay;
+import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.time.Year;
+import java.time.YearMonth;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.chrono.ThaiBuddhistChronology;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
+import java.time.format.DecimalStyle;
import java.time.format.SignStyle;
+import java.time.temporal.TemporalAccessor;
import java.util.Locale;
+import java.util.function.Function;
import org.testng.annotations.Test;
@@ -87,4 +107,93 @@
assertSame(test, base);
}
+ @Test
+ public void test_parse_errorMessage() throws Exception {
+ assertGoodErrorDate(DayOfWeek::from, "DayOfWeek");
+ assertGoodErrorDate(Month::from, "Month");
+ assertGoodErrorDate(YearMonth::from, "YearMonth");
+ assertGoodErrorDate(MonthDay::from, "MonthDay");
+ assertGoodErrorDate(LocalDate::from, "LocalDate");
+ assertGoodErrorDate(LocalTime::from, "LocalTime");
+ assertGoodErrorDate(LocalDateTime::from, "LocalDateTime");
+ assertGoodErrorDate(OffsetTime::from, "OffsetTime");
+ assertGoodErrorDate(OffsetDateTime::from, "OffsetDateTime");
+ assertGoodErrorDate(ZonedDateTime::from, "ZonedDateTime");
+ assertGoodErrorDate(Instant::from, "Instant");
+ assertGoodErrorDate(ZoneOffset::from, "ZoneOffset");
+ assertGoodErrorDate(ZoneId::from, "ZoneId");
+ assertGoodErrorDate(ThaiBuddhistChronology.INSTANCE::date, "");
+
+ assertGoodErrorTime(DayOfWeek::from, "DayOfWeek");
+ assertGoodErrorTime(Month::from, "Month");
+ assertGoodErrorTime(Year::from, "Year");
+ assertGoodErrorTime(YearMonth::from, "YearMonth");
+ assertGoodErrorTime(MonthDay::from, "MonthDay");
+ assertGoodErrorTime(LocalDate::from, "LocalDate");
+ assertGoodErrorTime(LocalTime::from, "LocalTime");
+ assertGoodErrorTime(LocalDateTime::from, "LocalDateTime");
+ assertGoodErrorTime(OffsetTime::from, "OffsetTime");
+ assertGoodErrorTime(OffsetDateTime::from, "OffsetDateTime");
+ assertGoodErrorTime(ZonedDateTime::from, "ZonedDateTime");
+ assertGoodErrorTime(Instant::from, "Instant");
+ assertGoodErrorTime(ZoneOffset::from, "ZoneOffset");
+ assertGoodErrorTime(ZoneId::from, "ZoneId");
+ assertGoodErrorTime(ThaiBuddhistChronology.INSTANCE::date, "");
+ }
+
+ private void assertGoodErrorDate(Function<TemporalAccessor, Object> function, String expectedText) {
+ DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-mm-dd");
+ TemporalAccessor temporal = f.parse("2010-06-30");
+ try {
+ function.apply(temporal);
+ fail("Should have failed");
+ } catch (DateTimeException ex) {
+ String msg = ex.getMessage();
+ assertTrue(msg.contains(expectedText), msg);
+ assertTrue(msg.contains("Year"), msg);
+ assertTrue(msg.contains("MinuteOfHour"), msg);
+ assertTrue(msg.contains("DayOfMonth"), msg);
+ }
+ }
+
+ private void assertGoodErrorTime(Function<TemporalAccessor, Object> function, String expectedText) {
+ DateTimeFormatter f = DateTimeFormatter.ofPattern("HH:MM:ss");
+ TemporalAccessor temporal = f.parse("11:30:56");
+ try {
+ function.apply(temporal);
+ fail("Should have failed");
+ } catch (DateTimeException ex) {
+ String msg = ex.getMessage();
+ assertTrue(msg.contains(expectedText), msg);
+ assertTrue(msg.contains("HourOfDay"), msg);
+ assertTrue(msg.contains("MonthOfYear"), msg);
+ assertTrue(msg.contains("SecondOfMinute"), msg);
+ }
+ }
+
+ @Test
+ public void test_parsed_toString_resolvedTime() {
+ DateTimeFormatter f = DateTimeFormatter.ofPattern("HH:mm:ss");
+ TemporalAccessor temporal = f.parse("11:30:56");
+ String msg = temporal.toString();
+ assertTrue(msg.contains("11:30:56"), msg);
+ }
+
+ @Test
+ public void test_parsed_toString_resolvedDate() {
+ DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ TemporalAccessor temporal = f.parse("2010-06-30");
+ String msg = temporal.toString();
+ assertTrue(msg.contains("2010-06-30"), msg);
+ }
+
+ @Test
+ public void test_parsed_toString_resolvedDateTime() {
+ DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ TemporalAccessor temporal = f.parse("2010-06-30 11:30:56");
+ String msg = temporal.toString();
+ assertTrue(msg.contains("2010-06-30"), msg);
+ assertTrue(msg.contains("11:30:56"), msg);
+ }
+
}
--- a/jdk/test/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/test/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java Wed Oct 09 13:07:58 2013 -0700
@@ -267,12 +267,12 @@
//-----------------------------------------------------------------------
@Test(expectedExceptions=NullPointerException.class)
public void test_appendValueReduced_null() throws Exception {
- builder.appendValueReduced(null, 2, 2000);
+ builder.appendValueReduced(null, 2, 2, 2000);
}
@Test
public void test_appendValueReduced() throws Exception {
- builder.appendValueReduced(YEAR, 2, 2000);
+ builder.appendValueReduced(YEAR, 2, 2, 2000);
DateTimeFormatter f = builder.toFormatter();
assertEquals(f.toString(), "ReducedValue(Year,2,2,2000)");
TemporalAccessor parsed = f.parseUnresolved("12", new ParsePosition(0));
@@ -281,7 +281,7 @@
@Test
public void test_appendValueReduced_subsequent_parse() throws Exception {
- builder.appendValue(MONTH_OF_YEAR, 1, 2, SignStyle.NORMAL).appendValueReduced(YEAR, 2, 2000);
+ builder.appendValue(MONTH_OF_YEAR, 1, 2, SignStyle.NORMAL).appendValueReduced(YEAR, 2, 2, 2000);
DateTimeFormatter f = builder.toFormatter();
assertEquals(f.toString(), "Value(MonthOfYear,1,2,NORMAL)ReducedValue(Year,2,2,2000)");
ParsePosition ppos = new ParsePosition(0);
@@ -654,19 +654,19 @@
{"GGGGG", "Text(Era,NARROW)"},
{"u", "Value(Year)"},
- {"uu", "ReducedValue(Year,2,2,2000)"},
+ {"uu", "ReducedValue(Year,2,2,2000-01-01)"},
{"uuu", "Value(Year,3,19,NORMAL)"},
{"uuuu", "Value(Year,4,19,EXCEEDS_PAD)"},
{"uuuuu", "Value(Year,5,19,EXCEEDS_PAD)"},
{"y", "Value(YearOfEra)"},
- {"yy", "ReducedValue(YearOfEra,2,2,2000)"},
+ {"yy", "ReducedValue(YearOfEra,2,2,2000-01-01)"},
{"yyy", "Value(YearOfEra,3,19,NORMAL)"},
{"yyyy", "Value(YearOfEra,4,19,EXCEEDS_PAD)"},
{"yyyyy", "Value(YearOfEra,5,19,EXCEEDS_PAD)"},
{"Y", "Localized(WeekBasedYear)"},
- {"YY", "Localized(ReducedValue(WeekBasedYear,2,2000))"},
+ {"YY", "Localized(ReducedValue(WeekBasedYear,2,2,2000-01-01))"},
{"YYY", "Localized(WeekBasedYear,3,19,NORMAL)"},
{"YYYY", "Localized(WeekBasedYear,4,19,EXCEEDS_PAD)"},
{"YYYYY", "Localized(WeekBasedYear,5,19,EXCEEDS_PAD)"},
--- a/jdk/test/java/time/test/java/time/format/TestReducedParser.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/test/java/time/test/java/time/format/TestReducedParser.java Wed Oct 09 13:07:58 2013 -0700
@@ -64,11 +64,20 @@
import static java.time.temporal.ChronoField.MONTH_OF_YEAR;
import static java.time.temporal.ChronoField.YEAR;
import static java.time.temporal.ChronoField.YEAR_OF_ERA;
+import static java.time.temporal.ChronoUnit.YEARS;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertNotNull;
import java.text.ParsePosition;
+import java.time.LocalDate;
+import java.time.chrono.Chronology;
+import java.time.chrono.ChronoLocalDate;
+import java.time.chrono.HijrahChronology;
+import java.time.chrono.IsoChronology;
+import java.time.chrono.JapaneseChronology;
+import java.time.chrono.MinguoChronology;
+import java.time.chrono.ThaiBuddhistChronology;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.TemporalAccessor;
@@ -86,13 +95,17 @@
private static final boolean LENIENT = false;
private DateTimeFormatter getFormatter0(TemporalField field, int width, int baseValue) {
- return builder.appendValueReduced(field, width, baseValue).toFormatter(locale).withDecimalStyle(decimalStyle);
+ return builder.appendValueReduced(field, width, width, baseValue).toFormatter(locale).withDecimalStyle(decimalStyle);
}
private DateTimeFormatter getFormatter0(TemporalField field, int minWidth, int maxWidth, int baseValue) {
return builder.appendValueReduced(field, minWidth, maxWidth, baseValue).toFormatter(locale).withDecimalStyle(decimalStyle);
}
+ private DateTimeFormatter getFormatterBaseDate(TemporalField field, int minWidth, int maxWidth, int baseValue) {
+ return builder.appendValueReduced(field, minWidth, maxWidth, LocalDate.of(baseValue, 1, 1)).toFormatter(locale).withDecimalStyle(decimalStyle);
+ }
+
//-----------------------------------------------------------------------
@DataProvider(name="error")
Object[][] data_error() {
@@ -243,6 +256,10 @@
// Negative baseValue
{YEAR, 2, 4, -2005, "123", 0, strict(3, 123), lenient(3, 123)},
+
+ // Basics
+ {YEAR, 2, 4, 2010, "10", 0, strict(2, 2010), lenient(2, 2010)},
+ {YEAR, 2, 4, 2010, "09", 0, strict(2, 2109), lenient(2, 2109)},
};
}
@@ -264,6 +281,21 @@
}
}
+ @Test(dataProvider="ParseLenientSensitive")
+ public void test_parseStrict_baseDate(TemporalField field, int minWidth, int maxWidth, int baseValue, String input, int pos,
+ Pair strict, Pair lenient) {
+ ParsePosition ppos = new ParsePosition(pos);
+ setStrict(true);
+ TemporalAccessor parsed = getFormatterBaseDate(field, minWidth, maxWidth, baseValue).parseUnresolved(input, ppos);
+ if (ppos.getErrorIndex() != -1) {
+ assertEquals(ppos.getErrorIndex(), strict.parseLen, "error case parse position");
+ assertEquals(parsed, strict.parseVal, "unexpected parse result");
+ } else {
+ assertEquals(ppos.getIndex(), strict.parseLen, "parse position");
+ assertParsed(parsed, YEAR, strict.parseVal != null ? (long) strict.parseVal : null);
+ }
+ }
+
//-----------------------------------------------------------------------
// Parsing tests for lenient mode
//-----------------------------------------------------------------------
@@ -282,6 +314,21 @@
}
}
+ @Test(dataProvider="ParseLenientSensitive")
+ public void test_parseLenient_baseDate(TemporalField field, int minWidth, int maxWidth, int baseValue, String input, int pos,
+ Pair strict, Pair lenient) {
+ ParsePosition ppos = new ParsePosition(pos);
+ setStrict(false);
+ TemporalAccessor parsed = getFormatterBaseDate(field, minWidth, maxWidth, baseValue).parseUnresolved(input, ppos);
+ if (ppos.getErrorIndex() != -1) {
+ assertEquals(ppos.getErrorIndex(), lenient.parseLen, "error case parse position");
+ assertEquals(parsed, lenient.parseVal, "unexpected parse result");
+ } else {
+ assertEquals(ppos.getIndex(), lenient.parseLen, "parse position");
+ assertParsed(parsed, YEAR, lenient.parseVal != null ? (long) lenient.parseVal : null);
+ }
+ }
+
private void assertParsed(TemporalAccessor parsed, TemporalField field, Long value) {
if (value == null) {
assertEquals(parsed, null, "Parsed Value");
@@ -335,6 +382,68 @@
}
//-----------------------------------------------------------------------
+ // Cases and values in reduced value parsing mode
+ //-----------------------------------------------------------------------
+ @DataProvider(name="ReducedWithChrono")
+ Object[][] provider_reducedWithChrono() {
+ LocalDate baseYear = LocalDate.of(2000, 1, 1);
+ return new Object[][] {
+ {IsoChronology.INSTANCE.date(baseYear)},
+ {IsoChronology.INSTANCE.date(baseYear).plus(1, YEARS)},
+ {IsoChronology.INSTANCE.date(baseYear).plus(99, YEARS)},
+ {HijrahChronology.INSTANCE.date(baseYear)},
+ {HijrahChronology.INSTANCE.date(baseYear).plus(1, YEARS)},
+ {HijrahChronology.INSTANCE.date(baseYear).plus(99, YEARS)},
+ {JapaneseChronology.INSTANCE.date(baseYear)},
+ {JapaneseChronology.INSTANCE.date(baseYear).plus(1, YEARS)},
+ {JapaneseChronology.INSTANCE.date(baseYear).plus(99, YEARS)},
+ {MinguoChronology.INSTANCE.date(baseYear)},
+ {MinguoChronology.INSTANCE.date(baseYear).plus(1, YEARS)},
+ {MinguoChronology.INSTANCE.date(baseYear).plus(99, YEARS)},
+ {ThaiBuddhistChronology.INSTANCE.date(baseYear)},
+ {ThaiBuddhistChronology.INSTANCE.date(baseYear).plus(1, YEARS)},
+ {ThaiBuddhistChronology.INSTANCE.date(baseYear).plus(99, YEARS)},
+ };
+ }
+
+ @Test(dataProvider="ReducedWithChrono")
+ public void test_reducedWithChronoYear(ChronoLocalDate date) {
+ Chronology chrono = date.getChronology();
+ DateTimeFormatter df
+ = new DateTimeFormatterBuilder().appendValueReduced(YEAR, 2, 2, LocalDate.of(2000, 1, 1))
+ .toFormatter()
+ .withChronology(chrono);
+ int expected = date.get(YEAR);
+ String input = df.format(date);
+
+ ParsePosition pos = new ParsePosition(0);
+ TemporalAccessor parsed = df.parseUnresolved(input, pos);
+ int actual = parsed.get(YEAR);
+ assertEquals(actual, expected,
+ String.format("Wrong date parsed, chrono: %s, input: %s",
+ chrono, input));
+
+ }
+ @Test(dataProvider="ReducedWithChrono")
+ public void test_reducedWithChronoYearOfEra(ChronoLocalDate date) {
+ Chronology chrono = date.getChronology();
+ DateTimeFormatter df
+ = new DateTimeFormatterBuilder().appendValueReduced(YEAR_OF_ERA, 2, 2, LocalDate.of(2000, 1, 1))
+ .toFormatter()
+ .withChronology(chrono);
+ int expected = date.get(YEAR_OF_ERA);
+ String input = df.format(date);
+
+ ParsePosition pos = new ParsePosition(0);
+ TemporalAccessor parsed = df.parseUnresolved(input, pos);
+ int actual = parsed.get(YEAR_OF_ERA);
+ assertEquals(actual, expected,
+ String.format("Wrong date parsed, chrono: %s, input: %s",
+ chrono, input));
+
+ }
+
+ //-----------------------------------------------------------------------
// Class to structure the test data
//-----------------------------------------------------------------------
--- a/jdk/test/java/time/test/java/time/format/TestReducedPrinter.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/test/java/time/test/java/time/format/TestReducedPrinter.java Wed Oct 09 13:07:58 2013 -0700
@@ -59,19 +59,15 @@
*/
package test.java.time.format;
-import java.text.ParsePosition;
import static java.time.temporal.ChronoField.YEAR;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
import java.time.DateTimeException;
import java.time.LocalDate;
+import java.time.chrono.MinguoDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
-import static java.time.temporal.ChronoField.DAY_OF_MONTH;
-import static java.time.temporal.ChronoField.MONTH_OF_YEAR;
-import static java.time.temporal.ChronoField.YEAR_OF_ERA;
-import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalField;
import org.testng.annotations.DataProvider;
@@ -85,13 +81,17 @@
public class TestReducedPrinter extends AbstractTestPrinterParser {
private DateTimeFormatter getFormatter0(TemporalField field, int width, int baseValue) {
- return builder.appendValueReduced(field, width, baseValue).toFormatter(locale).withDecimalStyle(decimalStyle);
+ return builder.appendValueReduced(field, width, width, baseValue).toFormatter(locale).withDecimalStyle(decimalStyle);
}
private DateTimeFormatter getFormatter0(TemporalField field, int minWidth, int maxWidth, int baseValue) {
return builder.appendValueReduced(field, minWidth, maxWidth, baseValue).toFormatter(locale).withDecimalStyle(decimalStyle);
}
+ private DateTimeFormatter getFormatterBaseDate(TemporalField field, int minWidth, int maxWidth, int baseValue) {
+ return builder.appendValueReduced(field, minWidth, maxWidth, LocalDate.of(baseValue, 1, 1)).toFormatter(locale).withDecimalStyle(decimalStyle);
+ }
+
//-----------------------------------------------------------------------
@Test(expectedExceptions=DateTimeException.class)
public void test_print_emptyCalendrical() throws Exception {
@@ -192,6 +192,58 @@
}
}
+ @Test(dataProvider="Pivot")
+ public void test_pivot_baseDate(int minWidth, int maxWidth, int baseValue, int value, String result) throws Exception {
+ try {
+ getFormatterBaseDate(YEAR, minWidth, maxWidth, baseValue).formatTo(new MockFieldValue(YEAR, value), buf);
+ if (result == null) {
+ fail("Expected exception");
+ }
+ assertEquals(buf.toString(), result);
+ } catch (DateTimeException ex) {
+ if (result == null || value < 0) {
+ assertEquals(ex.getMessage().contains(YEAR.toString()), true);
+ } else {
+ throw ex;
+ }
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ public void test_minguoChrono_fixedWidth() throws Exception {
+ // ISO 2021 is Minguo 110
+ DateTimeFormatter f = getFormatterBaseDate(YEAR, 2, 2, 2021);
+ MinguoDate date = MinguoDate.of(109, 6, 30);
+ assertEquals(f.format(date), "09");
+ date = MinguoDate.of(110, 6, 30);
+ assertEquals(f.format(date), "10");
+ date = MinguoDate.of(199, 6, 30);
+ assertEquals(f.format(date), "99");
+ date = MinguoDate.of(200, 6, 30);
+ assertEquals(f.format(date), "00");
+ date = MinguoDate.of(209, 6, 30);
+ assertEquals(f.format(date), "09");
+ date = MinguoDate.of(210, 6, 30);
+ assertEquals(f.format(date), "10");
+ }
+
+ public void test_minguoChrono_extendedWidth() throws Exception {
+ // ISO 2021 is Minguo 110
+ DateTimeFormatter f = getFormatterBaseDate(YEAR, 2, 4, 2021);
+ MinguoDate date = MinguoDate.of(109, 6, 30);
+ assertEquals(f.format(date), "109");
+ date = MinguoDate.of(110, 6, 30);
+ assertEquals(f.format(date), "10");
+ date = MinguoDate.of(199, 6, 30);
+ assertEquals(f.format(date), "99");
+ date = MinguoDate.of(200, 6, 30);
+ assertEquals(f.format(date), "00");
+ date = MinguoDate.of(209, 6, 30);
+ assertEquals(f.format(date), "09");
+ date = MinguoDate.of(210, 6, 30);
+ assertEquals(f.format(date), "210");
+ }
+
//-----------------------------------------------------------------------
public void test_toString() throws Exception {
assertEquals(getFormatter0(YEAR, 2, 2, 2005).toString(), "ReducedValue(Year,2,2,2005)");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/HashSet/Serialization.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.HashSet;
+import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
+
+/*
+ * @test
+ * @bug 8016252
+ * @summary Verify that a serialized HashSet may successfully be deserialized.
+ */
+public class Serialization {
+
+ private static final int NUM_SETS = 43;
+ private static final int MAX_CAPACITY = 257;
+ private static final float MAX_LOAD_FACTOR = 100.0F;
+
+ private static final Random rnd = ThreadLocalRandom.current();
+
+ private static HashSet<Integer> createHashSet() {
+ int capacity = rnd.nextInt(MAX_CAPACITY);
+ float loadFactor = Float.MIN_VALUE + rnd.nextFloat()*MAX_LOAD_FACTOR;
+ HashSet<Integer> hashSet = new HashSet<Integer>(capacity, loadFactor);
+ float multiplier = 2*rnd.nextFloat(); // range [0,2]
+ int size = (int)(capacity*loadFactor*multiplier);
+ for (int i = 0; i < size; i++) {
+ hashSet.add(rnd.nextInt());
+ }
+ return hashSet;
+ }
+
+ private static HashSet<Integer> serDeser(HashSet<Integer> hashSet) throws IOException, ClassNotFoundException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(hashSet);
+ oos.flush();
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ ObjectInputStream ois = new ObjectInputStream(bais);
+ HashSet<Integer> result = (HashSet<Integer>)ois.readObject();
+
+ oos.close();
+ ois.close();
+
+ return result;
+ }
+
+ private static void printHashSet(HashSet<Integer> hashSet) {
+ System.err.println("Size: "+hashSet.size());
+ for (Object o : hashSet) {
+ System.err.println(o);
+ }
+ }
+
+ public static void main(String[] args) {
+ int failures = 0;
+
+ for (int i = 0; i < NUM_SETS; i++) {
+ HashSet<Integer> hashSet = createHashSet();
+
+ HashSet<Integer> result = null;
+ try {
+ result = serDeser(hashSet);
+ } catch (IOException ioe) {
+ System.err.println(ioe);
+ failures++;
+ } catch (ClassNotFoundException cnfe) {
+ System.err.println(cnfe);
+ failures++;
+ }
+
+ if (!hashSet.equals(result)) {
+ System.err.println("Unequal HashSets!");
+ printHashSet(hashSet);
+ System.err.println();
+ failures++;
+ }
+ }
+
+ if (failures != 0) {
+ throw new RuntimeException("HashSet/Serialzation failed with "+
+ failures+" failures!");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/logging/Level/CustomLevel.java Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+
+/*
+ * @test
+ * @bug 8026027
+ * @summary Test Level.parse to look up custom levels by name and its
+ * localized name
+ *
+ * @run main/othervm CustomLevel
+ */
+
+public class CustomLevel extends Level {
+ public CustomLevel(String name, int value, String resourceBundleName) {
+ super(name, value, resourceBundleName);
+ }
+
+ private static final List<Level> levels = new ArrayList<>();
+ private static final String RB_NAME = "myresource";
+ public static void main(String[] args) throws Exception {
+ setupCustomLevels();
+
+ // Level.parse will return the custom Level instance
+ ResourceBundle rb = ResourceBundle.getBundle(RB_NAME);
+ for (Level level : levels) {
+ String name = level.getName();
+ if (!name.equals("WARNING") && !name.equals("INFO")) {
+ // custom level whose name doesn't conflict with any standard one
+ checkCustomLevel(Level.parse(name), level);
+ }
+ String localizedName = rb.getString(level.getName());
+ Level l = Level.parse(localizedName);
+ if (l != level) {
+ throw new RuntimeException("Unexpected level " + l + " " + l.getClass());
+ }
+ }
+ }
+
+ private static void setupCustomLevels() throws IOException {
+ levels.add(new CustomLevel("EMERGENCY", 1090, RB_NAME));
+ levels.add(new CustomLevel("ALERT", 1060, RB_NAME));
+ levels.add(new CustomLevel("CRITICAL", 1030, RB_NAME));
+ levels.add(new CustomLevel("WARNING", 1010, RB_NAME));
+ levels.add(new CustomLevel("INFO", 1000, RB_NAME));
+ }
+ static void checkCustomLevel(Level level, Level expected) {
+ // Level value must be the same
+ if (!level.equals(expected)) {
+ throw new RuntimeException(formatLevel(level) + " != " + formatLevel(expected));
+ }
+
+ if (!level.getName().equals(expected.getName())) {
+ throw new RuntimeException(formatLevel(level) + " != " + formatLevel(expected));
+ }
+
+ // Level.parse is expected to return the custom Level
+ if (level != expected) {
+ throw new RuntimeException(formatLevel(level) + " != " + formatLevel(expected));
+ }
+
+ ResourceBundle rb = ResourceBundle.getBundle(RB_NAME);
+ String name = rb.getString(level.getName());
+ if (!level.getLocalizedName().equals(name)) {
+ // must have the same localized name
+ throw new RuntimeException(level.getLocalizedName() + " != " + name);
+ }
+ }
+
+ static String formatLevel(Level l) {
+ return l + ":" + l.intValue() + ":" + l.getClass().getName();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/logging/Level/myresource.properties Wed Oct 09 13:07:58 2013 -0700
@@ -0,0 +1,5 @@
+EMERGENCY=localized.emergency
+ALERT=localized.alert
+CRITICAL=localized.critical
+WARNING=localized.warning
+INFO=localized.info
--- a/jdk/test/sun/security/provider/KeyStore/DKSTest.java Tue Oct 08 14:41:46 2013 -0700
+++ b/jdk/test/sun/security/provider/KeyStore/DKSTest.java Wed Oct 09 13:07:58 2013 -0700
@@ -81,8 +81,7 @@
int expected;
KeyStore keystore = KeyStore.getInstance("DKS");
// load entries
- keystore.load(
- new KeyStore.DomainLoadStoreParameter(config, PASSWORDS));
+ keystore.load(new DomainLoadStoreParameter(config, PASSWORDS));
cacertsCount = expected = keystore.size();
System.out.println("\nLoading domain keystore: " + config + "\t[" +
expected + " entries]");
@@ -95,8 +94,7 @@
expected = cacertsCount + 1;
keystore = KeyStore.getInstance("DKS");
// load entries
- keystore.load(
- new KeyStore.DomainLoadStoreParameter(config, PASSWORDS));
+ keystore.load(new DomainLoadStoreParameter(config, PASSWORDS));
System.out.println("\nLoading domain keystore: " + config + "\t[" +
expected + " entries]");
checkEntries(keystore, expected);
@@ -109,7 +107,7 @@
keystore = KeyStore.getInstance("DKS");
// load entries
keystore.load(
- new KeyStore.DomainLoadStoreParameter(config,
+ new DomainLoadStoreParameter(config,
Collections.<String, KeyStore.ProtectionParameter>emptyMap()));
System.out.println("\nLoading domain keystore: " + config + "\t[" +
expected + " entries]");
@@ -129,8 +127,7 @@
expected = 0;
keystore = KeyStore.getInstance("DKS");
// load entries
- keystore.load(
- new KeyStore.DomainLoadStoreParameter(config, PASSWORDS));
+ keystore.load(new DomainLoadStoreParameter(config, PASSWORDS));
System.out.println("\nLoading domain keystore: " + config + "\t[" +
expected + " entries]");
checkEntries(keystore, expected);
@@ -142,8 +139,7 @@
expected = 2 + 1 + 1 + 1;
keystore = KeyStore.getInstance("DKS");
// load entries
- keystore.load(
- new KeyStore.DomainLoadStoreParameter(config, PASSWORDS));
+ keystore.load(new DomainLoadStoreParameter(config, PASSWORDS));
System.out.println("\nLoading domain keystore: " + config + "\t[" +
expected + " entries]");
checkEntries(keystore, expected);
@@ -158,12 +154,10 @@
config = new URI(CONFIG + "#keystores_tmp");
System.out.println("Storing domain keystore: " + config + "\t[" +
expected + " entries]");
- keystore.store(
- new KeyStore.DomainLoadStoreParameter(config, PASSWORDS));
+ keystore.store(new DomainLoadStoreParameter(config, PASSWORDS));
keystore = KeyStore.getInstance("DKS");
// reload entries
- keystore.load(
- new KeyStore.DomainLoadStoreParameter(config, PASSWORDS));
+ keystore.load(new DomainLoadStoreParameter(config, PASSWORDS));
System.out.println("Reloading domain keystore: " + config + "\t[" +
expected + " entries]");
checkEntries(keystore, expected);