Description
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.