diff -r 212417b74b72 -r bfaf3300b7ba rt/emul/compact/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java --- a/rt/emul/compact/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java Sat Mar 19 10:46:31 2016 +0100 +++ b/rt/emul/compact/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java Sat Mar 19 12:51:03 2016 +0100 @@ -36,7 +36,6 @@ package java.util.concurrent; import java.util.*; import java.util.concurrent.locks.*; -import sun.misc.Unsafe; /** * A thread-safe variant of {@link java.util.ArrayList} in which all mutative @@ -80,7 +79,7 @@ private static final long serialVersionUID = 8673264195747942595L; /** The lock protecting all mutators */ - transient final ReentrantLock lock = new ReentrantLock(); + transient ReentrantLock lock = new ReentrantLock(); /** The array, accessed only via getArray/setArray. */ private volatile transient Object[] array; @@ -1323,18 +1322,6 @@ // Support for resetting lock while deserializing private void resetLock() { - UNSAFE.putObjectVolatile(this, lockOffset, new ReentrantLock()); - } - private static final sun.misc.Unsafe UNSAFE; - private static final long lockOffset; - static { - try { - UNSAFE = sun.misc.Unsafe.getUnsafe(); - Class k = CopyOnWriteArrayList.class; - lockOffset = UNSAFE.objectFieldOffset - (k.getDeclaredField("lock")); - } catch (Exception e) { - throw new Error(e); - } + this.lock = new ReentrantLock(); } }