> On Dec 17, 2015, at 6:05 PM, Tao Mao <yiyeg...@gmail.com> wrote: > > Hi Kim, > > 34 * <p> Suppose the garbage collector determines at a certain point in time > 35 * that an object is <a href="package-summary.html#reachability"> > 36 * phantom reachable</a>. At that time it will atomically clear > 37 * all phantom references to that object and all phantom references to > 38 * any other phantom-reachable objects from which that object is > reachable. > 39 * At the same time or at some later time it will enqueue those > newly-cleared > 40 * phantom references that are registered with reference queues. > > XYZRefenrece concept is never being understood too well besides the authors > who spend time grinding words. WeakReference > (https://docs.oracle.com/javase/7/docs/api/java/lang/ref/WeakReference.html) > states this: "At that time it will atomically clear all weak references to > that object and all weak references to any other weakly-reachable objects > from which that object is reachable through a chain of strong and soft > references." > > On line 38, can we also add "through a chain of strong, soft, and weak > references." to the above, which I think is the case? >
Yes it is and this is not strictly needed. For phantom reference case, this can be left “unqualified” as it’s basically a chain of any reference type. > In addition, in src/java.base/share/classes/java/lang/ref/package-info.java, > can we add WeakHashMap > (https://docs.oracle.com/javase/7/docs/api/java/util/WeakHashMap.html) as a > concrete example of so-called canonicalized mappings to help readers > understand its usage? I always need to look up for what "canonicalized > mappings" really means and end up with "OK, it's WeakHashMap”. In the Notification section, it does reference WeakHashMap (although it might not contain the exact description you are looking at). Mandy > Thanks. > Tao Mao > > > > On Thu, Dec 17, 2015 at 1:30 PM, Kim Barrett <kim.barr...@oracle.com> wrote: > On Dec 4, 2015, at 1:07 PM, Kim Barrett <kim.barr...@oracle.com> wrote: > > > > On Dec 3, 2015, at 6:04 PM, Mandy Chung <mandy.ch...@oracle.com> wrote: > >> > >>> [Indeed, this whole section isn't strictly necessary; all of it can be > >>> inferred from information in other places.] > >> > >> Agree. This section is no longer necessary and maybe just remove it: > > > > I wasn't actually intending to suggest removal. It seems like there > > is useful overview information to be had here, rather than requiring > > readers to make not necessarily obvious inferences. My impression is > > that readability is valued more highly than terseness in Java > > documentation. > > Sorry for the long gap in the discussion. Mandy and I have been > talking about what to do about the "Automatically-cleared references" > section that was the topic of some debate. We've decided to eliminate > it, which led us to some additional modifications. > > Here's the latest set of webrevs: > http://cr.openjdk.java.net/~kbarrett/8071507/jdk.06/ > http://cr.openjdk.java.net/~kbarrett/8071507/hotspot.06/ > > They've been rebased to hs-rt tip, which required resolving a minor > merge conflict with a nearby change to logging in > referenceProcessor.cpp. Other than that, there are only specification > wording changes. Here's the incremental change from the previous > version: > http://cr.openjdk.java.net/~kbarrett/8071507/jdk.06.inc/ > > We are treating the discussions around changing PhantomReference to > forbid a null queue as out of scope for this change. As Mandy said > earlier, she might propose a separate change for that in the future. > >