[concurrency-interest] Object finalization
vitalyd at gmail.com
Tue May 15 16:32:34 EDT 2012
I would say yes as we're all in agreement that finalization order is
unspecified, so if the fields themselves are of a type with a finalized
then they could already be finalized.
As for an exception in the constructor, looks like in JDK 6 and onwards the
finalizer will not run if an exception occurs before Object's constructor
exits (from Oracle's Secure Coding Guidelines for java, guideline 4-5).
Sent from my phone
On May 15, 2012 4:06 PM, "Dr Heinz M. Kabutz" <heinz at javaspecialists.eu>
> Sure, the fields cannot be null, but would it be possible that they
> have already been finalized?
> On 15/05/2012, Bob Lee <crazybob at crazybob.org> wrote:
> > So there isn't any confusion, the original code is safe without null
> > in the finalizer. While the finalizer can run concurrently with other
> > methods, the JLS
> > guarantees<
> > the constructor will finish before the finalizer runs: "The completion
> > of an object's constructor happens-before (§17.4.5) the execution of its
> > finalize method (in the formal sense of happens-before)."
> > Hans, I used your static volatile pinning trick in an experimental
> > ThreadLocal implementation I wrote. :-)
> > See the "pin" field:
> > Bob
> Dr Heinz M. Kabutz (PhD CompSci)
> Author of "The Java(tm) Specialists' Newsletter"
> Sun Java Champion
> IEEE Certified Software Development Professional
> Tel: +30 69 75 595 262
> Skype: kabutz
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Concurrency-interest