Lines 126-132
Link Here
|
126 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126712 |
126 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126712 |
127 |
// reflection - access to a public method of a package visible |
127 |
// reflection - access to a public method of a package visible |
128 |
// class through a public extending class |
128 |
// class through a public extending class |
129 |
public void _test0600_reflection() { |
129 |
// ** |
|
|
130 |
public void test0600_reflection() { |
130 |
this.runConformTest( |
131 |
this.runConformTest( |
131 |
new String[] { |
132 |
new String[] { |
132 |
"X.java", |
133 |
"X.java", |
Lines 139-151
Link Here
|
139 |
" Method foo = Y.class.getMethod(\"foo\", (Class []) null);\n" + |
140 |
" Method foo = Y.class.getMethod(\"foo\", (Class []) null);\n" + |
140 |
" y.foo();\n" + |
141 |
" y.foo();\n" + |
141 |
" foo.invoke(y, (Object []) null);\n" + |
142 |
" foo.invoke(y, (Object []) null);\n" + |
142 |
" }\n" + |
143 |
" } catch (NoSuchMethodException e) {\n" + |
143 |
" catch (Throwable t) {\n" + |
144 |
" //ignore\n" + |
144 |
" System.out.println(\"FAILURE: \" + t.getMessage());\n" + |
145 |
" } catch (InvocationTargetException e) {\n" + |
145 |
" t.printStackTrace(System.out);\n" + |
146 |
" //ignore\n" + |
|
|
147 |
" } catch (IllegalAccessException e) {\n" + |
148 |
" System.out.print(\"FAILURE: IllegalAccessException\");\n" + |
146 |
" }\n" + |
149 |
" }\n" + |
147 |
"}\n" + |
150 |
"}\n" + |
148 |
"}\n", |
151 |
"}", |
149 |
"p/Y.java", |
152 |
"p/Y.java", |
150 |
"package p;\n" + |
153 |
"package p;\n" + |
151 |
"public class Y extends Z {\n" + |
154 |
"public class Y extends Z {\n" + |
Lines 158-171
Link Here
|
158 |
" System.out.println(\"SUCCESS\"); //$NON-NLS-1$\n" + |
161 |
" System.out.println(\"SUCCESS\"); //$NON-NLS-1$\n" + |
159 |
" }\n" + |
162 |
" }\n" + |
160 |
"}\n"}, |
163 |
"}\n"}, |
161 |
"SUCCESS\nSUCCESS" |
164 |
"SUCCESS\n" + |
|
|
165 |
"FAILURE: IllegalAccessException" |
162 |
); |
166 |
); |
163 |
} |
167 |
} |
164 |
|
168 |
|
165 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126712 |
169 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126712 |
166 |
// reflection - access to a public field of a package visible |
170 |
// reflection - access to a public field of a package visible |
167 |
// class through a public extending class |
171 |
// class through a public extending class |
168 |
public void _test0601_reflection() { |
172 |
// ** |
|
|
173 |
public void test0601_reflection() { |
169 |
this.runConformTest( |
174 |
this.runConformTest( |
170 |
new String[] { |
175 |
new String[] { |
171 |
"X.java", |
176 |
"X.java", |
Lines 178-190
Link Here
|
178 |
" Field f = Y.class.getField(\"m\");\n" + |
183 |
" Field f = Y.class.getField(\"m\");\n" + |
179 |
" System.out.println(y.m);\n" + |
184 |
" System.out.println(y.m);\n" + |
180 |
" System.out.println(f.get(y));\n" + |
185 |
" System.out.println(f.get(y));\n" + |
181 |
" }\n" + |
186 |
" } catch (NoSuchFieldException e) {\n" + |
182 |
" catch (Throwable t) {\n" + |
187 |
" //ignore\n" + |
183 |
" System.out.println(\"FAILURE: \" + t.getMessage());\n" + |
188 |
" } catch (IllegalAccessException e) {\n" + |
184 |
" t.printStackTrace(System.out);\n" + |
189 |
" System.out.print(\"FAILURE: IllegalAccessException\");\n" + |
185 |
" }\n" + |
190 |
" }\n" + |
186 |
"}\n" + |
191 |
"}\n" + |
187 |
"}\n", |
192 |
"}", |
188 |
"p/Y.java", |
193 |
"p/Y.java", |
189 |
"package p;\n" + |
194 |
"package p;\n" + |
190 |
"public class Y extends Z {\n" + |
195 |
"public class Y extends Z {\n" + |
Lines 195-201
Link Here
|
195 |
"class Z {\n" + |
200 |
"class Z {\n" + |
196 |
" public String m = \"SUCCESS\";\n" + |
201 |
" public String m = \"SUCCESS\";\n" + |
197 |
"}\n"}, |
202 |
"}\n"}, |
198 |
"SUCCESS\nSUCCESS" |
203 |
"SUCCESS\n" + |
|
|
204 |
"FAILURE: IllegalAccessException" |
199 |
); |
205 |
); |
200 |
} |
206 |
} |
201 |
|
207 |
|