/** * Get the cache for the classloader * * @param cl the classloader * @return the map */ protected Map<String, WeakReference<T>> getClassLoaderCache(ClassLoader cl) { synchronized (cache) { Map<String, WeakReference<T>> result = cache.get(cl); if (result == null) { result = CollectionsFactory.createConcurrentReaderMap(); cache.put(cl, result); } return result; } } }