21 * have any questions. |
21 * have any questions. |
22 */ |
22 */ |
23 |
23 |
24 /* |
24 /* |
25 * @test |
25 * @test |
26 * @bug 5003916 6704655 |
26 * @bug 5003916 6704655 6873951 |
27 * @summary Testing parsing of signatures attributes of nested classes |
27 * @summary Testing parsing of signatures attributes of nested classes |
28 * @author Joseph D. Darcy |
28 * @author Joseph D. Darcy |
29 * @compile -source 1.5 Probe.java |
|
30 * @run main Probe |
|
31 */ |
29 */ |
32 |
30 |
33 import java.lang.reflect.*; |
31 import java.lang.reflect.*; |
34 import java.lang.annotation.*; |
32 import java.lang.annotation.*; |
35 import java.util.*; |
33 import java.util.*; |
36 import static java.util.Arrays.*; |
34 import static java.util.Arrays.*; |
37 |
35 |
38 @Classes(value={ |
36 @Classes({"java.util.concurrent.FutureTask", |
39 "java.util.concurrent.FutureTask", |
37 "java.util.concurrent.ConcurrentHashMap$EntryIterator", |
40 "java.util.concurrent.ConcurrentHashMap$EntryIterator", |
38 "java.util.concurrent.ConcurrentHashMap$KeyIterator", |
41 "java.util.concurrent.ConcurrentHashMap$KeyIterator", |
39 "java.util.concurrent.ConcurrentHashMap$ValueIterator", |
42 "java.util.concurrent.ConcurrentHashMap$ValueIterator", |
40 "java.util.AbstractList$ListItr", |
43 "java.util.AbstractList$ListItr", |
41 "java.util.EnumMap$EntryIterator", |
44 "java.util.EnumMap$EntryIterator", |
42 "java.util.EnumMap$KeyIterator", |
45 "java.util.EnumMap$KeyIterator", |
43 "java.util.EnumMap$ValueIterator", |
46 "java.util.EnumMap$ValueIterator", |
44 "java.util.IdentityHashMap$EntryIterator", |
47 "java.util.IdentityHashMap$EntryIterator", |
45 "java.util.IdentityHashMap$KeyIterator", |
48 "java.util.IdentityHashMap$KeyIterator", |
46 "java.util.IdentityHashMap$ValueIterator", |
49 "java.util.IdentityHashMap$ValueIterator", |
47 "java.util.WeakHashMap$EntryIterator", |
50 "java.util.WeakHashMap$EntryIterator", |
48 "java.util.WeakHashMap$KeyIterator", |
51 "java.util.WeakHashMap$KeyIterator", |
49 "java.util.WeakHashMap$ValueIterator", |
52 "java.util.WeakHashMap$ValueIterator", |
50 "java.util.TreeMap$EntryIterator", |
53 "java.util.TreeMap$EntryIterator", |
51 "java.util.TreeMap$KeyIterator", |
54 "java.util.TreeMap$KeyIterator", |
52 "java.util.TreeMap$ValueIterator", |
55 "java.util.TreeMap$ValueIterator", |
53 "java.util.HashMap$EntryIterator", |
56 "java.util.HashMap$EntryIterator", |
54 "java.util.HashMap$KeyIterator", |
57 "java.util.HashMap$KeyIterator", |
55 "java.util.HashMap$ValueIterator", |
58 "java.util.HashMap$ValueIterator", |
56 "java.util.LinkedHashMap$EntryIterator", |
59 "java.util.LinkedHashMap$EntryIterator", |
57 "java.util.LinkedHashMap$KeyIterator", |
60 "java.util.LinkedHashMap$KeyIterator", |
58 "java.util.LinkedHashMap$ValueIterator"}) |
61 "java.util.LinkedHashMap$ValueIterator" |
|
62 }, |
|
63 sunClasses={ |
|
64 "javax.crypto.SunJCE_c", |
|
65 "javax.crypto.SunJCE_e", |
|
66 "javax.crypto.SunJCE_f", |
|
67 "javax.crypto.SunJCE_j", |
|
68 "javax.crypto.SunJCE_k", |
|
69 "javax.crypto.SunJCE_l" |
|
70 }) |
|
71 public class Probe { |
59 public class Probe { |
72 public static void main (String[] args) throws Throwable { |
60 public static void main (String... args) throws Throwable { |
73 Classes classesAnnotation = (Probe.class).getAnnotation(Classes.class); |
61 Classes classesAnnotation = (Probe.class).getAnnotation(Classes.class); |
74 List<String> names = |
62 List<String> names = |
75 new ArrayList<String>(asList(classesAnnotation.value())); |
63 new ArrayList<String>(asList(classesAnnotation.value())); |
76 |
|
77 if (System.getProperty("java.runtime.name").startsWith("Java(TM)")) { |
|
78 // Sun production JDK; test crypto classes too |
|
79 for(String name: classesAnnotation.sunClasses()) |
|
80 names.add(name); |
|
81 } |
|
82 |
64 |
83 int errs = 0; |
65 int errs = 0; |
84 for(String name: names) { |
66 for(String name: names) { |
85 System.out.println("\nCLASS " + name); |
67 System.out.println("\nCLASS " + name); |
86 Class c = Class.forName(name, false, null); |
68 Class c = Class.forName(name, false, null); |