I have a simpler and more secure solution. I just need one method on
ClassLoader:

 public class ClassLoader {
   public void keepReferenceTo(Object o) { ... }
   ...
 }

The ClassLoader would keep a strong reference to the passed reference
indefinitely (using some sort of minimal memory footprint, wait-free
data structure internally). We could add a convenience method to
Class, too, but it would just delegate to the same method on the
Class's loader.

Now, my library code can just keep a weak reference to the object, and
I know it won't be cleared until the class loader is reclaimed.

Bob

Reply via email to