How does a "finalizer guardian" [Effective Java , page 30] work ? Have you used them? Did it solve any specific problem ?