14de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee/* 24de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * Copyright (C) 2015 The Android Open Source Project 34de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * 44de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * Licensed under the Apache License, Version 2.0 (the "License"); 54de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * you may not use this file except in compliance with the License. 64de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * You may obtain a copy of the License at 74de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * 84de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * http://www.apache.org/licenses/LICENSE-2.0 94de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * 104de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * Unless required by applicable law or agreed to in writing, software 114de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * distributed under the License is distributed on an "AS IS" BASIS, 124de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * See the License for the specific language governing permissions and 144de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee * limitations under the License. 154de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee */ 164de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee 174de86d0987139153ae0e2d50dbbefde2ce34ee87buzbeeimport java.lang.reflect.Method; 184de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee 194de86d0987139153ae0e2d50dbbefde2ce34ee87buzbeepublic class Main { 204de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee static char [][] holder; 214de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee static boolean sawOome; 224de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee 234de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee static void blowup() { 244de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee try { 254de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee for (int i = 0; i < holder.length; ++i) { 264de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee holder[i] = new char[1024 * 1024]; 274de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee } 284de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee } catch (OutOfMemoryError oome) { 294de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee sawOome = true; 304de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee } 314de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee } 324de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee 334de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee public static void main(String args[]) throws Exception { 344de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee Class<?> c = Class.forName("Test"); 354de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee Method m = c.getMethod("run", (Class[]) null); 364de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee for (int i = 0; i < 10; i++) { 374de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee holder = new char[128 * 1024][]; 384de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee m.invoke(null, (Object[]) null); 394de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee holder = null; 404de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee } 41767c752fddc64e280dba507457e4f06002b5f678Vladimir Marko m = c.getMethod("run2", (Class[]) null); 42767c752fddc64e280dba507457e4f06002b5f678Vladimir Marko for (int i = 0; i < 10; i++) { 43767c752fddc64e280dba507457e4f06002b5f678Vladimir Marko holder = new char[128 * 1024][]; 44767c752fddc64e280dba507457e4f06002b5f678Vladimir Marko m.invoke(null, (Object[]) null); 45767c752fddc64e280dba507457e4f06002b5f678Vladimir Marko holder = null; 46767c752fddc64e280dba507457e4f06002b5f678Vladimir Marko } 474de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee } 484de86d0987139153ae0e2d50dbbefde2ce34ee87buzbee} 49