private ConfigurationContext getManagerContext ( final CacheManager mgr ) { ConfigurationContext ctx = manager2defaultConfig . get ( mgr ) ; if ( ctx != null ) { return ctx ; } synchronized ( this ) { ctx = manager2defaultConfig . get ( mgr ) ; if ( ctx != null ) { return ctx ; } if ( mgr . isDefaultManager ( ) ) { ctx = classLoader2config . get ( mgr . getClassLoader ( ) ) ; } if ( ctx == null ) { ctx = createContext ( mgr . getClassLoader ( ) , mgr . getName ( ) , getFileName ( mgr ) ) ; } Map < CacheManager , ConfigurationContext > m2 = new HashMap < CacheManager , ConfigurationContext > ( manager2defaultConfig ) ; m2 . put ( mgr , ctx ) ; manager2defaultConfig = m2 ; return ctx ; } }
Hold the cache default configuration of a manager in a hash table . This is reused for all caches of one manager .