diff options
Diffstat (limited to 'tests/003-omnibus-opcodes/src/Monitor.java')
-rw-r--r-- | tests/003-omnibus-opcodes/src/Monitor.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/003-omnibus-opcodes/src/Monitor.java b/tests/003-omnibus-opcodes/src/Monitor.java new file mode 100644 index 0000000..66d7c65 --- /dev/null +++ b/tests/003-omnibus-opcodes/src/Monitor.java @@ -0,0 +1,44 @@ +// Copyright 2008 The Android Open Source Project + + + +/** + * Exercise monitors. + */ +public class Monitor { + public static int mVal = 0; + + public synchronized void subTest() { + Object obj = new Object(); + synchronized (obj) { + mVal++; + obj = null; // does NOT cause a failure on exit + assert(obj == null); + } + } + + + public static void run() { + System.out.println("Monitor.run"); + + Object obj = null; + + try { + synchronized (obj) { + mVal++; + } + assert(false); + } catch (NullPointerException npe) { + /* expected */ + } + + obj = new Object(); + synchronized (obj) { + mVal++; + } + + new Monitor().subTest(); + + assert(mVal == 2); + } +} |