On 06/18/2018 10:05 AM, Martin Buchholz wrote:
> There's a long history of cheating and setting final fields in
> pseudo-constructors readObject and clone, which is well motivated since
> Java should really support pseudo-constructors in a better way..
> Cheating has used Unsafe or reflection with setAccessible
> (CopyOnWriteArrayList.resetLock()).
> 

> Doug - would CopyOnWriteArrayList.clone() be slightly safer if it had a
> releaseFence() ?
> 

Or better, lockField.set in resetLock could instead be setRelease.
Except it is using reflection, not VarHandles. So it could be preceded
with VarHandle.releaseFence(), although it is hard to think of a
scenario in which it could matter.

-Doug

Reply via email to