Signed-off-by: Pekka Enberg <penb...@kernel.org> --- ChangeLog | 11 +++++ java/lang/ClassNotFoundException.java | 6 +- java/lang/IllegalAccessException.java | 6 +- java/lang/InstantiationException.java | 6 +- java/lang/NoSuchFieldException.java | 6 +- java/lang/NoSuchMethodException.java | 6 +- ...tion.java => ReflectiveOperationException.java} | 45 +++++++++++++------- java/lang/reflect/InvocationTargetException.java | 6 +- 8 files changed, 59 insertions(+), 33 deletions(-) copy java/lang/{NoSuchFieldException.java => ReflectiveOperationException.java} (69%)
diff --git a/ChangeLog b/ChangeLog index 2093931..beb6e0e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2012-03-12 Pekka Enberg <penb...@kernel.org> + * java/lang/ClassNotFoundException, + * java/lang/IllegalAccessException.java, + * java/lang/InstantiationException.java, + * java/lang/NoSuchFieldException.java, + * java/lang/NoSuchMethodException.java, + * java/lang/ReflectiveOperationException.java, + * java/lang/reflect/InvocationTargetException.java: + Add ReflectiveOperationException class. + +2012-03-12 Pekka Enberg <penb...@kernel.org> + * java/lang/AssertionError.java: (AssertionError): Add missing constructor. * java/lang/LinkageError.java: diff --git a/java/lang/ClassNotFoundException.java b/java/lang/ClassNotFoundException.java index 142bc5d..fe1424d 100644 --- a/java/lang/ClassNotFoundException.java +++ b/java/lang/ClassNotFoundException.java @@ -1,5 +1,5 @@ /* ClassNotFoundException.java -- thrown when class definition cannot be found - Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -47,9 +47,9 @@ package java.lang; * @see Class#forName(String) * @see ClassLoader#findSystemClass(String) * @see ClassLoader#loadClass(String, boolean) - * @status updated to 1.4 + * @status updated to 1.7 */ -public class ClassNotFoundException extends Exception +public class ClassNotFoundException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/java/lang/IllegalAccessException.java b/java/lang/IllegalAccessException.java index a352c8b..2574f66 100644 --- a/java/lang/IllegalAccessException.java +++ b/java/lang/IllegalAccessException.java @@ -1,6 +1,6 @@ /* IllegalAccessException.java -- thrown on attempt to reflect on inaccessible data - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,9 +71,9 @@ import java.lang.reflect.Method; * @see Field#getDouble(Object) * @see Method#invoke(Object, Object[]) * @see Constructor#newInstance(Object[]) - * @status updated to 1.4 + * @status updated to 1.7 */ -public class IllegalAccessException extends Exception +public class IllegalAccessException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/java/lang/InstantiationException.java b/java/lang/InstantiationException.java index 367b14b..cb2cad1 100644 --- a/java/lang/InstantiationException.java +++ b/java/lang/InstantiationException.java @@ -1,6 +1,6 @@ /* InstantiationException.java -- thrown when reflection cannot create an instance - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,9 +46,9 @@ package java.lang; * @author Brian Jones * @author Warren Levy (warr...@cygnus.com) * @see Class#newInstance() - * @status updated to 1.4 + * @status updated to 1.7 */ -public class InstantiationException extends Exception +public class InstantiationException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/java/lang/NoSuchFieldException.java b/java/lang/NoSuchFieldException.java index 74d52d1..b43b532 100644 --- a/java/lang/NoSuchFieldException.java +++ b/java/lang/NoSuchFieldException.java @@ -1,5 +1,5 @@ /* NoSuchFieldException.java -- thrown when reflecting a non-existant field - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,9 +45,9 @@ package java.lang; * @author Brian Jones * @author Warren Levy (warr...@cygnus.com) * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.7 */ -public class NoSuchFieldException extends Exception +public class NoSuchFieldException extends ReflectiveOperationException { /** * Compatible with JDK 1.1+. diff --git a/java/lang/NoSuchMethodException.java b/java/lang/NoSuchMethodException.java index e423efb..1162382 100644 --- a/java/lang/NoSuchMethodException.java +++ b/java/lang/NoSuchMethodException.java @@ -1,5 +1,5 @@ /* NoSuchMethodException.java -- thrown when reflecting a non-existant method - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,9 +44,9 @@ package java.lang; * * @author Brian Jones * @author Warren Levy (warr...@cygnus.com) - * @status updated to 1.4 + * @status updated to 1.7 */ -public class NoSuchMethodException extends Exception +public class NoSuchMethodException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/java/lang/NoSuchFieldException.java b/java/lang/ReflectiveOperationException.java similarity index 69% copy from java/lang/NoSuchFieldException.java copy to java/lang/ReflectiveOperationException.java index 74d52d1..8b84c0e 100644 --- a/java/lang/NoSuchFieldException.java +++ b/java/lang/ReflectiveOperationException.java @@ -1,5 +1,5 @@ -/* NoSuchFieldException.java -- thrown when reflecting a non-existant field - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. +/* ReflectiveOperationException.java -- thrown when reflective operation fails + Copyright (C) 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,25 +39,18 @@ exception statement from your version. */ package java.lang; /** - * Thrown to indicate the class does not have the specified field. This is - * caused by a variety of reflection methods, when looking up a field by name. + * This exception is thrown when reflective operations fail. * - * @author Brian Jones - * @author Warren Levy (warr...@cygnus.com) - * @since 1.1 - * @status updated to 1.4 + * @since 1.7 */ -public class NoSuchFieldException extends Exception +public class ReflectiveOperationException extends Exception { - /** - * Compatible with JDK 1.1+. - */ - private static final long serialVersionUID = -6143714805279938260L; + private static final long serialVersionUID = 123456789L; /** * Create an exception without a message. */ - public NoSuchFieldException() + public ReflectiveOperationException() { } @@ -66,8 +59,30 @@ public class NoSuchFieldException extends Exception * * @param s the message */ - public NoSuchFieldException(String s) + public ReflectiveOperationException(String s) { super(s); } + + /** + * Create an exception with a message and a cause. + * + * @param s the message + * @param cause the cause, may be null + */ + public ReflectiveOperationException(String message, Throwable cause) + { + super(message, cause); + } + + /** + * Create an exception with a cause. + * + * @param cause the cause, may be null + */ + public ReflectiveOperationException(Throwable cause) + { + super(cause); + } + } diff --git a/java/lang/reflect/InvocationTargetException.java b/java/lang/reflect/InvocationTargetException.java index af79d3a..4480fc6 100644 --- a/java/lang/reflect/InvocationTargetException.java +++ b/java/lang/reflect/InvocationTargetException.java @@ -1,5 +1,5 @@ /* InvocationTargetException.java -- Wrapper exception for reflection - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -50,9 +50,9 @@ package java.lang.reflect; * @see Method#invoke(Object,Object[]) * @see Constructor#newInstance(Object[]) * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.7 */ -public class InvocationTargetException extends Exception +public class InvocationTargetException extends ReflectiveOperationException { /** * Compatible with JDK 1.1+. -- 1.7.7.6