/** * Initializes this metadata provider. If called after the metadata provider has already been initialized this * method simply returns. * * @throws MetadataProviderException thrown if there is a problem initializing the problem and fail fast * Initialization is enabled */ public synchronized void initialize() throws MetadataProviderException { if (initialized) { return; } try { doInitialization(); initialized = true; } catch (MetadataProviderException e) { if (failFastInitialization) { log.error("Metadata provider failed to properly initialize, fail-fast=true, halting", e); throw e; } else { log.error("Metadata provider failed to properly initialize, fail-fast=false, " + "continuing on in a degraded state", e); initialized = true; } } }