--- a/jdk/src/share/classes/java/lang/ClassNotFoundException.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/ClassNotFoundException.java Fri Jul 17 09:14:29 2009 -0700
@@ -50,7 +50,7 @@
* @see java.lang.ClassLoader#loadClass(java.lang.String, boolean)
* @since JDK1.0
*/
-public class ClassNotFoundException extends Exception {
+public class ClassNotFoundException extends ReflectiveOperationException {
/**
* use serialVersionUID from JDK 1.1.X for interoperability
*/
--- a/jdk/src/share/classes/java/lang/Double.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/Double.java Fri Jul 17 09:14:29 2009 -0700
@@ -529,6 +529,7 @@
* @param s the string to be parsed.
* @return the {@code double} value represented by the string
* argument.
+ * @throws NullPointerException if the string is null
* @throws NumberFormatException if the string does not contain
* a parsable {@code double}.
* @see java.lang.Double#valueOf(String)
--- a/jdk/src/share/classes/java/lang/Float.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/Float.java Fri Jul 17 09:14:29 2009 -0700
@@ -438,12 +438,13 @@
* represented by the specified {@code String}, as performed
* by the {@code valueOf} method of class {@code Float}.
*
- * @param s the string to be parsed.
+ * @param s the string to be parsed.
* @return the {@code float} value represented by the string
* argument.
- * @throws NumberFormatException if the string does not contain a
+ * @throws NullPointerException if the string is null
+ * @throws NumberFormatException if the string does not contain a
* parsable {@code float}.
- * @see java.lang.Float#valueOf(String)
+ * @see java.lang.Float#valueOf(String)
* @since 1.2
*/
public static float parseFloat(String s) throws NumberFormatException {
--- a/jdk/src/share/classes/java/lang/IllegalAccessException.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/IllegalAccessException.java Fri Jul 17 09:14:29 2009 -0700
@@ -56,7 +56,7 @@
* @see java.lang.reflect.Constructor#newInstance(Object[])
* @since JDK1.0
*/
-public class IllegalAccessException extends Exception {
+public class IllegalAccessException extends ReflectiveOperationException {
private static final long serialVersionUID = 6616958222490762034L;
/**
--- a/jdk/src/share/classes/java/lang/InstantiationException.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/InstantiationException.java Fri Jul 17 09:14:29 2009 -0700
@@ -43,7 +43,7 @@
* @since JDK1.0
*/
public
-class InstantiationException extends Exception {
+class InstantiationException extends ReflectiveOperationException {
private static final long serialVersionUID = -8441929162975509110L;
/**
--- a/jdk/src/share/classes/java/lang/NoSuchFieldException.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/NoSuchFieldException.java Fri Jul 17 09:14:29 2009 -0700
@@ -31,7 +31,7 @@
* @author unascribed
* @since JDK1.1
*/
-public class NoSuchFieldException extends Exception {
+public class NoSuchFieldException extends ReflectiveOperationException {
private static final long serialVersionUID = -6143714805279938260L;
/**
--- a/jdk/src/share/classes/java/lang/NoSuchMethodException.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/NoSuchMethodException.java Fri Jul 17 09:14:29 2009 -0700
@@ -32,7 +32,7 @@
* @since JDK1.0
*/
public
-class NoSuchMethodException extends Exception {
+class NoSuchMethodException extends ReflectiveOperationException {
private static final long serialVersionUID = 5034388446362600923L;
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/lang/ReflectiveOperationException.java Fri Jul 17 09:14:29 2009 -0700
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package java.lang;
+
+/**
+ * Common superclass of exceptions thrown by reflective operations in
+ * core reflection.
+ *
+ * @see LinkageError
+ * @since 1.7
+ */
+public class ReflectiveOperationException extends Exception {
+ static final long serialVersionUID = 123456789L;
+
+ /**
+ * Constructs a new exception with {@code null} as its detail
+ * message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public ReflectiveOperationException() {
+ super();
+ }
+
+ /**
+ * Constructs a new exception with the specified detail message.
+ * The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ *
+ * @param message the detail message. The detail message is saved for
+ * later retrieval by the {@link #getMessage()} method.
+ */
+ public ReflectiveOperationException(String message) {
+ super(message);
+ }
+
+ /**
+ * Constructs a new exception with the specified detail message
+ * and cause.
+ *
+ * <p>Note that the detail message associated with
+ * {@code cause} is <em>not</em> automatically incorporated in
+ * this exception's detail message.
+ *
+ * @param message the detail message (which is saved for later retrieval
+ * by the {@link #getMessage()} method).
+ * @param cause the cause (which is saved for later retrieval by the
+ * {@link #getCause()} method). (A {@code null} value is
+ * permitted, and indicates that the cause is nonexistent or
+ * unknown.)
+ */
+ public ReflectiveOperationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Constructs a new exception with the specified cause and a detail
+ * message of {@code (cause==null ? null : cause.toString())} (which
+ * typically contains the class and detail message of {@code cause}).
+ *
+ * @param cause the cause (which is saved for later retrieval by the
+ * {@link #getCause()} method). (A {@code null} value is
+ * permitted, and indicates that the cause is nonexistent or
+ * unknown.)
+ */
+ public ReflectiveOperationException(Throwable cause) {
+ super(cause);
+ }
+}
--- a/jdk/src/share/classes/java/lang/reflect/InvocationTargetException.java Thu Jul 16 18:07:04 2009 -0700
+++ b/jdk/src/share/classes/java/lang/reflect/InvocationTargetException.java Fri Jul 17 09:14:29 2009 -0700
@@ -39,7 +39,7 @@
* @see Method
* @see Constructor
*/
-public class InvocationTargetException extends Exception {
+public class InvocationTargetException extends ReflectiveOperationException {
/**
* Use serialVersionUID from JDK 1.1.X for interoperability
*/