Why is the runFinalizersOnExit method in class System depricated?

The explaination given in javadocs for deprication of runFinalizersOnExit in System class is that "It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock". But the finalizers are supposed to be called only when the Java runtime exits. The confusion I have is once the java runtime exits we should not have any live objects hence the aboue case should not arise or have i missed some details. Please help.

[527 byte] By [sohail_hirani] at [2007-9-26 1:16:04]
# 1

The finalize method goes off when garbage collection happens, and this doesn't always happen when the program ends. Finalize methods are not well supported in Java since they are not always called (or they get called while the program is still running). Sun should come up with a better plan on the finalize method and so they are executed when the program ends. This isn't what finalizeOnExit does, despite the name.

smh3r at 2007-6-29 0:43:21 > top of Java-index,Archived Forums,Java Programming...