Index: openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCRegistry.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCRegistry.java (revision 560334) +++ openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCRegistry.java (working copy) @@ -203,6 +203,23 @@ } /** + * De-Register all metadata associated with the given ClassLoader. + * Allows ClassLoaders to be garbage collected. + * + * @param cl the ClassLoader + */ + public static void deRegister(ClassLoader cl) { + synchronized (_metas) { + for (Iterator i = _metas.keySet().iterator(); i.hasNext();) { + Class pcClass = (Class)i.next(); + if (pcClass.getClassLoader() == cl) { + _metas.remove(pcClass); + } + } + } + } + + /** * Returns a collection of class objects of the registered * persistence-capable classes. */