UIDGenerator uses a ThreadLocal with a value class that belongs to Axiom (namely UIDGeneratorImpl). Since the ThreadLocal is never cleaned up explicitly (doing that would break the UIDGenerator), this may cause a class loader leak (i.e. in a Web application, it may prevent the class loader from being garbage collected when the application is stopped). Since UIDGeneratorImpl basically stores 3 values of type long, it should be easy to refactor the code so that the value class ThreadLocal is not loaded from the application class loader (e.g. by using long as value class). However, I first need to confirm that there is really a class loader leak here.