Review Request JDK-8201793: (ref) Reference object should not support cloning
mandy chung
mandy.chung at oracle.com
Thu Apr 26 14:16:19 UTC 2018
The semantics of cloning a Reference object is not clearly defined. In
addition, it is questionable whether it can be meaningfully supported in
particular with concurrent reference processing.
The reachability state of a Reference object may change during GC
reference processing. The referent may have been cleared when it reaches
its reachability state. In addition, it may be enqueued or pending for
enqueuing. Cloning a Reference object with a referent that is
unreachable but not yet cleared might mean to resurrect the referent. A
cloned enqueued Reference object will never be enqueued. A Reference
object cannot be meaningfully cloned.
We propose Reference::clone to throw CloneNotSupportedException. To
clone a Reference object, it should create a new instance via its
constructor.
CSR: https://bugs.openjdk.java.net/browse/JDK-8202260
Webrev:
http://cr.openjdk.java.net/~mchung/jdk11/webrevs/8201793/webrev.00/
Mandy
More information about the core-libs-dev
mailing list