diff -r e05aee7c8611 -r 9ff7640994bf jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java Mon Dec 05 12:24:17 2011 +0000 +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java Mon Dec 05 13:58:44 2011 +0000 @@ -113,6 +113,7 @@ return getRaw(checkedByteOffset(i)); } + @SuppressWarnings("unchecked") private E getRaw(long offset) { return (E) unsafe.getObjectVolatile(array, offset); } @@ -150,7 +151,7 @@ public final E getAndSet(int i, E newValue) { long offset = checkedByteOffset(i); while (true) { - E current = (E) getRaw(offset); + E current = getRaw(offset); if (compareAndSetRaw(offset, current, newValue)) return current; }