protected EnhancedConfiguration getConfiguration() { // Assign configuration to local variable first, as calls to clearCache can null it out at any time EnhancedConfiguration configuration = this.configurationCache; if ( configuration == null || shouldRebuildConifuguration() ) { synchronized ( this ) { // double-checked locking of volatile is apparently OK with java5+ // http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html configuration = this.configurationCache; if ( configuration == null || shouldRebuildConifuguration() ) { configuration = new EnhancedConfiguration( doGetConfiguration() ); this.configurationCache = configuration; } } } return configuration; }
public void clearCache() { super.clearCache(); manager.clearCache(); }