13d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom/* 23d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * Copyright (C) 2011 The Android Open Source Project 33d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * 43d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * Licensed under the Apache License, Version 2.0 (the "License"); 53d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * you may not use this file except in compliance with the License. 63d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * You may obtain a copy of the License at 73d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * 83d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * http://www.apache.org/licenses/LICENSE-2.0 93d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * 103d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * Unless required by applicable law or agreed to in writing, software 113d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * distributed under the License is distributed on an "AS IS" BASIS, 123d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * See the License for the specific language governing permissions and 143d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom * limitations under the License. 153d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom */ 163d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 173d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrompublic final class Main { 183d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 193d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom public static void main(String[] args) throws Exception { 203d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom System.out.println("Test Started"); 213d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom testMissingFieldType(); 223d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom testMissingMethodReturnType(); 233d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom testMissingMethodParameterType(); 243d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom testMissingInnerClass(); 253d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom System.out.println("Test Finished"); 263d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 273d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 283d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static class ClassWithMissingFieldType { 293d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom MissingClass field; 303d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 313d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 323d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static void testMissingFieldType() throws Exception { 333d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom try { 343d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom ClassWithMissingFieldType.class.getDeclaredFields(); 353d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom throw new AssertionError(); 363d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } catch (NoClassDefFoundError e) { 373d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom System.out.println("testMissingFieldType caught NoClassDefFoundError"); 383d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 393d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 403d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 413d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static class ClassWithMissingMethodReturnType { 423d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom MissingClass method() { 433d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom return null; 443d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 453d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 463d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 473d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static void testMissingMethodReturnType() throws Exception { 483d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom try { 493d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom ClassWithMissingMethodReturnType.class.getDeclaredMethods(); 503d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom throw new AssertionError(); 513d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } catch (NoClassDefFoundError e) { 523d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom System.out.println("testMissingMethodReturnType caught NoClassDefFoundError"); 533d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 543d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 553d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 563d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static class ClassWithMissingMethodParameterType { 573d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom void method(MissingClass arg) {} 583d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 593d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 603d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static void testMissingMethodParameterType() throws Exception { 613d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom try { 623d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom ClassWithMissingMethodParameterType.class.getDeclaredMethods(); 633d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom throw new AssertionError(); 643d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } catch (NoClassDefFoundError e) { 653d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom System.out.println("testMissingMethodParameterType caught NoClassDefFoundError"); 663d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 673d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 683d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 693d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static final class MissingInnerClass { 703d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 713d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom 723d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom private static void testMissingInnerClass() throws Exception { 733d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom try { 743d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom Main.class.getDeclaredClasses(); 753d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom throw new AssertionError(); 763d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } catch (NoClassDefFoundError e) { 773d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom System.out.println("testMissingInnerClass caught NoClassDefFoundError"); 783d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 793d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom } 803d434d4d3b32ec4b4de35f885993a042b8fae5bbBrian Carlstrom} 81