I'm quite unhappy with the fact that our lightweight java.io.File wrapper requires finalization for every instance.  Finalization really slows down GC because the object can't be removed immediately, it must be preserved through the GC and stuck on the Finalizer queue, and wait for the Finalizer to run.