I imagine it would prevent the collection of
any objects, since the finalizer
thread will be blocked.
Once, quite early in
Java's lifetime, I spent two
days trying to understand a deadlock in which one of the two threads involved was the finalizer thread. The subconscious lesson I learned from this was to never do anything non-trivial in finalize() -- this rule has served me well over the years.