summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2014-10-03 10:54:19 +0000
committerNicolas Geoffray <ngeoffray@google.com>2014-10-03 10:54:19 +0000
commit74d6a8221c11ac4aa72808863db423aca44117f2 (patch)
tree4f344df6ec2612d8ddbf0a00e2b49a39a7501249 /test
parent6d7729d6ae8b2ac3800e92092d61390ce4e3b6d7 (diff)
downloadart-74d6a8221c11ac4aa72808863db423aca44117f2.zip
art-74d6a8221c11ac4aa72808863db423aca44117f2.tar.gz
art-74d6a8221c11ac4aa72808863db423aca44117f2.tar.bz2
Revert "Fix OOM throwing if it happens in finalizer reference"
This reverts commit 6d7729d6ae8b2ac3800e92092d61390ce4e3b6d7. Change-Id: I3e863b7372657ee85b0e48029c3a3e2b4ba75a7c
Diffstat (limited to 'test')
-rw-r--r--test/080-oom-throw/src/Main.java50
1 files changed, 4 insertions, 46 deletions
diff --git a/test/080-oom-throw/src/Main.java b/test/080-oom-throw/src/Main.java
index 63c5215..c93f8bb 100644
--- a/test/080-oom-throw/src/Main.java
+++ b/test/080-oom-throw/src/Main.java
@@ -15,15 +15,13 @@
*/
public class Main {
- static char [][] holder;
-
static class ArrayMemEater {
static boolean sawOome;
static void blowup(char[][] holder) {
try {
for (int i = 0; i < holder.length; ++i) {
- holder[i] = new char[1022 * 1024];
+ holder[i] = new char[1024 * 1024];
}
} catch (OutOfMemoryError oome) {
ArrayMemEater.sawOome = true;
@@ -52,30 +50,8 @@ public class Main {
}
}
- static class InstanceFinalizerMemEater {
- static boolean sawOome;
- static InstanceFinalizerMemEater hook;
-
- InstanceFinalizerMemEater next;
-
- static InstanceFinalizerMemEater allocate() {
- try {
- return new InstanceFinalizerMemEater();
- } catch (OutOfMemoryError e) {
- InstanceFinalizerMemEater.sawOome = true;
- return null;
- }
- }
-
- static void confuseCompilerOptimization(InstanceFinalizerMemEater instance) {
- hook = instance;
- }
-
- protected void finalize() {}
- }
-
- static boolean triggerArrayOOM(char[][] holder) {
- ArrayMemEater.blowup(holder);
+ static boolean triggerArrayOOM() {
+ ArrayMemEater.blowup(new char[128 * 1024][]);
return ArrayMemEater.sawOome;
}
@@ -91,29 +67,11 @@ public class Main {
return InstanceMemEater.sawOome;
}
- static boolean triggerInstanceFinalizerOOM() {
- InstanceFinalizerMemEater memEater = InstanceFinalizerMemEater.allocate();
- InstanceFinalizerMemEater lastMemEater = memEater;
- do {
- lastMemEater.next = InstanceFinalizerMemEater.allocate();
- lastMemEater = lastMemEater.next;
- } while (lastMemEater != null);
- memEater.confuseCompilerOptimization(memEater);
- InstanceFinalizerMemEater.hook = null;
- return InstanceFinalizerMemEater.sawOome;
- }
-
public static void main(String[] args) {
- // Keep holder alive to make instance OOM happen faster
- holder = new char[128 * 1024][];
- if (triggerArrayOOM(holder)) {
+ if (triggerArrayOOM()) {
System.out.println("NEW_ARRAY correctly threw OOME");
}
- if (!triggerInstanceFinalizerOOM()) {
- System.out.println("NEW_INSTANCE (finalize) did not threw OOME");
- }
-
if (triggerInstanceOOM()) {
System.out.println("NEW_INSTANCE correctly threw OOME");
}