diff options
Diffstat (limited to 'tests/042-new-instance/src/Main.java')
-rw-r--r-- | tests/042-new-instance/src/Main.java | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/tests/042-new-instance/src/Main.java b/tests/042-new-instance/src/Main.java deleted file mode 100644 index e43c5a568..000000000 --- a/tests/042-new-instance/src/Main.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.Constructor; - -/** - * Test instance creation. - */ -public class Main { - private static boolean FULL_ACCESS_CHECKS = false; // b/5861201 - - public static void main(String[] args) { - testClassNewInstance(); - testConstructorNewInstance(); - } - - /** - * Tests Class.newInstance(). - */ - static void testClassNewInstance() { - // should succeed - try { - Class c = Class.forName("LocalClass"); - Object obj = c.newInstance(); - System.out.println("LocalClass succeeded"); - } catch (Exception ex) { - System.err.println("LocalClass failed"); - ex.printStackTrace(); - } - - // should fail - try { - Class c = Class.forName("otherpackage.PackageAccess"); - Object obj = c.newInstance(); - System.err.println("ERROR: PackageAccess succeeded unexpectedly"); - } catch (IllegalAccessException iae) { - System.out.println("Got expected PackageAccess complaint"); - } catch (Exception ex) { - System.err.println("Got unexpected PackageAccess failure"); - ex.printStackTrace(); - } - - LocalClass3.main(); - - try { - MaybeAbstract ma = new MaybeAbstract(); - System.err.println("ERROR: MaybeAbstract succeeded unexpectedly"); - } catch (InstantiationError ie) { - System.out.println("Got expected InstantationError"); - } catch (Exception ex) { - System.err.println("Got unexpected MaybeAbstract failure"); - } - } - - /** - * Tests Constructor.newInstance(). - */ - static void testConstructorNewInstance() { - // should fail -- getConstructor only returns public constructors - try { - Class c = Class.forName("LocalClass"); - Constructor cons = c.getConstructor(new Class[0] /*(Class[])null*/); - System.err.println("Cons LocalClass succeeded unexpectedly"); - } catch (NoSuchMethodException nsme) { - System.out.println("Cons LocalClass failed as expected"); - } catch (Exception ex) { - System.err.println("Cons LocalClass failed strangely"); - ex.printStackTrace(); - } - - // should succeed - try { - Class c = Class.forName("LocalClass2"); - Constructor cons = c.getConstructor((Class[]) null); - Object obj = cons.newInstance(); - System.out.println("Cons LocalClass2 succeeded"); - } catch (Exception ex) { - System.err.println("Cons LocalClass2 failed"); - ex.printStackTrace(); - } - - // should fail - try { - Class c = Class.forName("otherpackage.PackageAccess"); - Constructor cons = c.getConstructor(new Class[0] /*(Class[])null*/); - System.err.println("ERROR: Cons PackageAccess succeeded unexpectedly"); - } catch (NoSuchMethodException nsme) { - // constructor isn't public - System.out.println("Cons got expected PackageAccess complaint"); - } catch (Exception ex) { - System.err.println("Cons got unexpected PackageAccess failure"); - ex.printStackTrace(); - } - - // should fail - try { - Class c = Class.forName("MaybeAbstract"); - Constructor cons = c.getConstructor(new Class[0] /*(Class[])null*/); - Object obj = cons.newInstance(); - System.err.println("ERROR: Cons MaybeAbstract succeeded unexpectedly"); - } catch (InstantiationException ie) { - // note InstantiationException vs. InstantiationError - System.out.println("Cons got expected InstantationException"); - } catch (Exception ex) { - System.err.println("Cons got unexpected MaybeAbstract failure"); - ex.printStackTrace(); - } - - // should fail - try { - Class c = Class.forName("otherpackage.PackageAccess2"); - Constructor cons = c.getConstructor((Class[]) null); - if (!FULL_ACCESS_CHECKS) { throw new IllegalAccessException(); } - Object obj = cons.newInstance(); - System.err.println("ERROR: Cons PackageAccess2 succeeded unexpectedly"); - } catch (IllegalAccessException iae) { - // constructor is public, but class has package scope - System.out.println("Cons got expected PackageAccess2 complaint"); - } catch (Exception ex) { - System.err.println("Cons got unexpected PackageAccess2 failure"); - ex.printStackTrace(); - } - - } -} - -class LocalClass { - // this class has a default constructor with package visibility -} - -class LocalClass2 { - public LocalClass2() {} -} - - -class LocalClass3 { - public static void main() { - try { - CC.newInstance(); - System.out.println("LocalClass3 succeeded"); - } catch (Exception ex) { - System.err.println("Got unexpected LocalClass3 failure"); - ex.printStackTrace(); - } - } - - static class CC { - private CC() {} - - static Object newInstance() { - try { - Class c = CC.class; - return c.newInstance(); - } catch (Exception ex) { - ex.printStackTrace(); - return null; - } - } - } -} |