Hi Joe,

I applied the patch and built a jdk, looks good to me.

(Not a Reviewer kind of reviewer tough.)

cheers
/Joel

On 20 maj 2013, at 23:10, Joe Darcy <joe.da...@oracle.com> wrote:

> Hello,
> 
> Please review the patch below which implements
> 
>    8014836: Have GenericDeclaration extend AnnotatedElement
> 
> All the existing implementations of GenericDeclaration in the JDK already 
> implement AnnotatedElement. Some code in java.lang.Class needed to be 
> adjusted slightly since AnnotatedElement declares a default method and 
> calling an interface's default method in an implementing class has to go 
> through the direct interface type.
> 
> Thanks,
> 
> -Joe
> 
> --- a/src/share/classes/java/lang/Class.java    Mon May 20 11:56:46 2013 -0700
> +++ b/src/share/classes/java/lang/Class.java    Mon May 20 14:07:15 2013 -0700
> @@ -28,6 +28,7 @@
> import java.lang.reflect.AnnotatedElement;
> import java.lang.reflect.Array;
> import java.lang.reflect.GenericArrayType;
> +import java.lang.reflect.GenericDeclaration;
> import java.lang.reflect.Member;
> import java.lang.reflect.Field;
> import java.lang.reflect.Executable;
> @@ -115,9 +116,9 @@
>  * @since   JDK1.0
>  */
> public final class Class<T> implements java.io.Serializable,
> -                              java.lang.reflect.GenericDeclaration,
> -                              java.lang.reflect.Type,
> -                              java.lang.reflect.AnnotatedElement {
> +                              GenericDeclaration,
> +                              Type,
> +                              AnnotatedElement {
>     private static final int ANNOTATION= 0x00002000;
>     private static final int ENUM      = 0x00004000;
>     private static final int SYNTHETIC = 0x00001000;
> @@ -3182,7 +3183,7 @@
>      */
>     @Override
>     public boolean isAnnotationPresent(Class<? extends Annotation> 
> annotationClass) {
> -        return AnnotatedElement.super.isAnnotationPresent(annotationClass);
> +        return GenericDeclaration.super.isAnnotationPresent(annotationClass);
>     }
> 
>     /**
> diff -r 6a9148865139 
> src/share/classes/java/lang/reflect/GenericDeclaration.java
> --- a/src/share/classes/java/lang/reflect/GenericDeclaration.java  Mon May 20 
> 11:56:46 2013 -0700
> +++ b/src/share/classes/java/lang/reflect/GenericDeclaration.java  Mon May 20 
> 14:07:15 2013 -0700
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights 
> reserved.
> + * 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
> @@ -30,7 +30,7 @@
>  *
>  * @since 1.5
>  */
> -public interface GenericDeclaration {
> +public interface GenericDeclaration extends AnnotatedElement {
>     /**
>      * Returns an array of {@code TypeVariable} objects that
>      * represent the type variables declared by the generic
> 

Reply via email to