1.1 --- a/rt/emul/compact/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java Sat Mar 19 10:46:31 2016 +0100
1.2 +++ b/rt/emul/compact/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java Sat Mar 19 12:51:03 2016 +0100
1.3 @@ -36,7 +36,6 @@
1.4 package java.util.concurrent;
1.5 import java.util.*;
1.6 import java.util.concurrent.locks.*;
1.7 -import sun.misc.Unsafe;
1.8
1.9 /**
1.10 * A thread-safe variant of {@link java.util.ArrayList} in which all mutative
1.11 @@ -80,7 +79,7 @@
1.12 private static final long serialVersionUID = 8673264195747942595L;
1.13
1.14 /** The lock protecting all mutators */
1.15 - transient final ReentrantLock lock = new ReentrantLock();
1.16 + transient ReentrantLock lock = new ReentrantLock();
1.17
1.18 /** The array, accessed only via getArray/setArray. */
1.19 private volatile transient Object[] array;
1.20 @@ -1323,18 +1322,6 @@
1.21
1.22 // Support for resetting lock while deserializing
1.23 private void resetLock() {
1.24 - UNSAFE.putObjectVolatile(this, lockOffset, new ReentrantLock());
1.25 - }
1.26 - private static final sun.misc.Unsafe UNSAFE;
1.27 - private static final long lockOffset;
1.28 - static {
1.29 - try {
1.30 - UNSAFE = sun.misc.Unsafe.getUnsafe();
1.31 - Class k = CopyOnWriteArrayList.class;
1.32 - lockOffset = UNSAFE.objectFieldOffset
1.33 - (k.getDeclaredField("lock"));
1.34 - } catch (Exception e) {
1.35 - throw new Error(e);
1.36 - }
1.37 + this.lock = new ReentrantLock();
1.38 }
1.39 }