Hello.

Please review the patch below is clarify the use of certain exception types to address bug 6378701 "(enum) Unclear purpose of EnumConstantNotPresentException." Five exceptions/errors can be thrown by the methods of the AnnotatedElement interface; those methods are used to retrieve annotations reflectively. I've added cross references between the AnnotatedElement intefaces and the throwables it may throw.

-Joe

--- old/src/share/classes/java/lang/EnumConstantNotPresentException.java 2009-08-21 00:43:31.000000000 -0700 +++ new/src/share/classes/java/lang/EnumConstantNotPresentException.java 2009-08-21 00:43:30.000000000 -0700
@@ -28,8 +28,12 @@
/**
 * Thrown when an application tries to access an enum constant by name
 * and the enum type contains no constant with the specified name.
+ * This exception can be thrown by the {...@linkplain
+ * java.lang.reflect.AnnotatedElement API used to read annotations
+ * reflectively}.
 *
 * @author  Josh Bloch
+ * @see     java.lang.reflect.AnnotatedElement
 * @since   1.5
 */
public class EnumConstantNotPresentException extends RuntimeException {
--- old/src/share/classes/java/lang/TypeNotPresentException.java 2009-08-21 00:43:32.000000000 -0700 +++ new/src/share/classes/java/lang/TypeNotPresentException.java 2009-08-21 00:43:31.000000000 -0700
@@ -35,8 +35,12 @@
 * <p>Note that this exception may be used when undefined type variables
 * are accessed as well as when types (e.g., classes, interfaces or
 * annotation types) are loaded.
+ * In particular, this exception can be thrown by the {...@linkplain
+ * java.lang.reflect.AnnotatedElement API used to read annotations
+ * reflectively}.
 *
 * @author  Josh Bloch
+ * @see     java.lang.reflect.AnnotatedElement
 * @since 1.5
 */
public class TypeNotPresentException extends RuntimeException {
--- old/src/share/classes/java/lang/annotation/AnnotationFormatError.java 2009-08-21 00:43:32.000000000 -0700 +++ new/src/share/classes/java/lang/annotation/AnnotationFormatError.java 2009-08-21 00:43:32.000000000 -0700
@@ -28,8 +28,12 @@
/**
 * Thrown when the annotation parser attempts to read an annotation
 * from a class file and determines that the annotation is malformed.
+ * This error can be thrown by the {...@linkplain
+ * java.lang.reflect.AnnotatedElement API used to read annotations
+ * reflectively}.
 *
 * @author  Josh Bloch
+ * @see     java.lang.reflect.AnnotatedElement
 * @since   1.5
 */
public class AnnotationFormatError extends Error {
--- old/src/share/classes/java/lang/annotation/AnnotationTypeMismatchException.java 2009-08-21 00:43:33.000000000 -0700 +++ new/src/share/classes/java/lang/annotation/AnnotationTypeMismatchException.java 2009-08-21 00:43:33.000000000 -0700
@@ -30,8 +30,12 @@
 * Thrown to indicate that a program has attempted to access an element of
 * an annotation whose type has changed after the annotation was compiled
 * (or serialized).
+ * This exception can be thrown by the {...@linkplain
+ * java.lang.reflect.AnnotatedElement API used to read annotations
+ * reflectively}.
 *
 * @author  Josh Bloch
+ * @see     java.lang.reflect.AnnotatedElement
 * @since 1.5
 */
public class AnnotationTypeMismatchException extends RuntimeException {
--- old/src/share/classes/java/lang/annotation/IncompleteAnnotationException.java 2009-08-21 00:43:34.000000000 -0700 +++ new/src/share/classes/java/lang/annotation/IncompleteAnnotationException.java 2009-08-21 00:43:33.000000000 -0700
@@ -30,8 +30,12 @@
* an annotation type that was added to the annotation type definition after
 * the annotation was compiled (or serialized).  This exception will not be
 * thrown if the new element has a default value.
+ * This exception can be thrown by the {...@linkplain
+ * java.lang.reflect.AnnotatedElement API used to read annotations
+ * reflectively}.
 *
 * @author  Josh Bloch
+ * @see     java.lang.reflect.AnnotatedElement
 * @since 1.5
 */
public class IncompleteAnnotationException extends RuntimeException {
--- old/src/share/classes/java/lang/reflect/AnnotatedElement.java 2009-08-21 00:43:34.000000000 -0700 +++ new/src/share/classes/java/lang/reflect/AnnotatedElement.java 2009-08-21 00:43:34.000000000 -0700
@@ -50,6 +50,11 @@
 * java.lang.annotation.AnnotationTypeMismatchException} or an
 * {...@link java.lang.annotation.IncompleteAnnotationException}.
 *
+ * @see java.lang.EnumConstantNotPresentException
+ * @see java.lang.TypeNotPresentException
+ * @see java.lang.annotation.AnnotationFormatError
+ * @see java.lang.annotation.AnnotationTypeMismatchException
+ * @see java.lang.annotation.IncompleteAnnotationException
 * @since 1.5
 * @author Josh Bloch
 */

Reply via email to