changeset 1500:8b749558767b

8006283: Change to Class.cast() in javax.lang.model implementation for repeating annotations Reviewed-by: jjg
author darcy
date Wed, 16 Jan 2013 13:22:09 -0800
parents 63b20bde7cd6
children 916143318f10
files src/share/classes/com/sun/tools/javac/model/JavacElements.java
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/com/sun/tools/javac/model/JavacElements.java	Wed Jan 16 12:14:29 2013 -0800
+++ b/src/share/classes/com/sun/tools/javac/model/JavacElements.java	Wed Jan 16 13:22:09 2013 -0800
@@ -266,9 +266,10 @@
 
     private static Class<? extends Annotation> initRepeatable() {
         try {
-            @SuppressWarnings("unchecked") // java.lang.annotation.Repeatable extends Annotation by being an annotation type
-            Class<? extends Annotation> c = (Class)Class.forName("java.lang.annotation.Repeatable");
-            return c;
+            // Repeatable will not be available when bootstrapping on
+            // JDK 7 so use a reflective lookup instead of a class
+            // literal for Repeatable.class.
+            return Class.forName("java.lang.annotation.Repeatable").asSubclass(Annotation.class);
         } catch (ClassNotFoundException e) {
             return null;
         } catch (SecurityException e) {