1f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle/* 2f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * Copyright (C) 2015 The Android Open Source Project 3f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * 4f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * Licensed under the Apache License, Version 2.0 (the "License"); 5f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * you may not use this file except in compliance with the License. 6f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * You may obtain a copy of the License at 7f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * 8f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * http://www.apache.org/licenses/LICENSE-2.0 9f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * 10f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * Unless required by applicable law or agreed to in writing, software 11f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * distributed under the License is distributed on an "AS IS" BASIS, 12f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * See the License for the specific language governing permissions and 14f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle * limitations under the License. 15f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle */ 16f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle 17f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravleimport java.lang.reflect.Method; 18f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle 19f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravlepublic class Main { 20f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle 21f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle // Workaround for b/18051191. 22f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle class InnerClass {} 23f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle 24f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle public static void main(String args[]) throws Exception { 25f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle try { 26f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle Class<?> c = Class.forName("Test"); 27166aaee6aa39c20c87113b3fcf0dcd81e0a934cbAndreas Gampe Method m = c.getMethod("ThrowException"); 28166aaee6aa39c20c87113b3fcf0dcd81e0a934cbAndreas Gampe m.invoke(null); 29f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle } catch (VerifyError e) { 30f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle // Compilation should go fine but we expect the runtime verification to fail. 31f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle return; 32f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle } 33f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle 34f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle throw new Error("Failed to preset verification error!"); 35f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle } 36f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle 37f1c6d9e87cbfd27702103ccc7c7f08ce784dc872Calin Juravle} 38