• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 import other.Blort;
2 
3 public class Main {
4     static public boolean VERBOSE = false;
5 
main(String[] args)6     static public void main(String[] args) {
7         if (args.length > 0) {
8             if (args[0].equals("--verbose")) {
9                 VERBOSE = true;
10             }
11         }
12 
13         System.out.println("Setting SecurityManager.");
14         System.setSecurityManager(Enforcer.THE_ONE);
15         System.out.println("Running tests.");
16         accessStuff();
17         System.out.println("\nDone!");
18     }
19 
report(Throwable t)20     static public void report(Throwable t) {
21         if (VERBOSE) {
22             t.printStackTrace(System.out);
23         } else {
24             System.out.println(t);
25         }
26     }
27 
accessStuff()28     static public void accessStuff() {
29         Class c = other.Blort.class;
30 
31         /*
32          * Note: We don't use reflection to factor out these tests,
33          * becuase reflection also calls into the SecurityManager, and
34          * we don't want to conflate the calls nor assume too much
35          * in general about what calls reflection will cause.
36          */
37 
38         System.out.println("\ngetFields A");
39         try {
40             c.getFields();
41         } catch (Exception ex) {
42             report(ex);
43         }
44 
45         System.out.println("getFields B");
46         Enforcer.THE_ONE.denyNext();
47         try {
48             c.getFields();
49         } catch (Exception ex) {
50             report(ex);
51         }
52 
53         System.out.println("\ngetDeclaredFields A");
54         try {
55             c.getDeclaredFields();
56         } catch (Exception ex) {
57             report(ex);
58         }
59 
60         System.out.println("getDeclaredFields B");
61         Enforcer.THE_ONE.denyNext();
62         try {
63             c.getDeclaredFields();
64         } catch (Exception ex) {
65             report(ex);
66         }
67 
68         System.out.println("\ngetMethods A");
69         try {
70             c.getMethods();
71         } catch (Exception ex) {
72             report(ex);
73         }
74 
75         System.out.println("getMethods B");
76         Enforcer.THE_ONE.denyNext();
77         try {
78             c.getMethods();
79         } catch (Exception ex) {
80             report(ex);
81         }
82 
83         System.out.println("\ngetDeclaredMethods A");
84         try {
85             c.getDeclaredMethods();
86         } catch (Exception ex) {
87             report(ex);
88         }
89 
90         System.out.println("getDeclaredMethods B");
91         Enforcer.THE_ONE.denyNext();
92         try {
93             c.getDeclaredMethods();
94         } catch (Exception ex) {
95             report(ex);
96         }
97 
98         System.out.println("\ngetConstructors A");
99         try {
100             c.getConstructors();
101         } catch (Exception ex) {
102             report(ex);
103         }
104 
105         System.out.println("getConstructors B");
106         Enforcer.THE_ONE.denyNext();
107         try {
108             c.getConstructors();
109         } catch (Exception ex) {
110             report(ex);
111         }
112 
113         System.out.println("\ngetDeclaredConstructors A");
114         try {
115             c.getDeclaredConstructors();
116         } catch (Exception ex) {
117             report(ex);
118         }
119 
120         System.out.println("getDeclaredConstructors B");
121         Enforcer.THE_ONE.denyNext();
122         try {
123             c.getDeclaredConstructors();
124         } catch (Exception ex) {
125             report(ex);
126         }
127 
128         System.out.println("\ngetClasses A");
129         try {
130             c.getClasses();
131         } catch (Exception ex) {
132             report(ex);
133         }
134 
135         System.out.println("getClasses B");
136         Enforcer.THE_ONE.denyNext();
137         try {
138             c.getClasses();
139         } catch (Exception ex) {
140             report(ex);
141         }
142 
143         System.out.println("\ngetDeclaredClasses A");
144         try {
145             c.getDeclaredClasses();
146         } catch (Exception ex) {
147             report(ex);
148         }
149 
150         System.out.println("getDeclaredClasses B");
151         Enforcer.THE_ONE.denyNext();
152         try {
153             c.getDeclaredClasses();
154         } catch (Exception ex) {
155             report(ex);
156         }
157     }
158 }
159