JDK-8027351: (ref) Base's class finalize method not invoked if a private finalize method exists in its subclass
paul.sandoz at oracle.com
Mon Nov 4 10:16:40 UTC 2013
On Nov 2, 2013, at 10:03 AM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
> On 01/11/2013 21:11, Mandy Chung wrote:
>> I was expecting that would get optimized during runtime and it's a simple getter method. It's a good suggestion to cache it at the finalize thread start time and here is the revised webrev:
> This looks good. A small typo in ensureAccessAvailable, "ntil" -> "until". Also the continue isn't needed.
Plus there is other unmodified code that uses "continue" as well (#207 in patched code).
On using a static field to hold JavaLangAccess. If Peter's suggestion is not applicable (splitting out finalization functionality from JavaLangAccess) then perhaps an alternative is:
- ensureAccessAvailable returns JavaLangAccess (rename to getJavaLangAccess?)
- runFinalizer accepts as a parameter JavaLangAccess
> On the finalizer thread now waiting for the system classes to be initialized then this is probably a good thing (although I can imagine subtle changes for corner cases, say where an agent is playing with fire and instrumenting classes early in the startup).
More information about the core-libs-dev