Is the code below expected to be running in the thread created by System.runFinalization()? If so, check for that, i.e. that the thread name is as you expect.
61 } else {
62 /*
63 * A 'non-finalizer' thread in this context means that
we
64 * are processing the GC.run_finalization command.
Proceed
65 * with the finalization.
