in src/main/java/org/apache/sling/commons/log/logback/internal/LogConfigManager.java [1504:1528]
private void fallbackConfiguration(LoggerContext lc, Model failsafeTop) {
JoranConfigurator joranConfigurator = new JoranConfiguratorWrapper(this);
joranConfigurator.setContext(context);
ConfigurationWatchList oldCWL = ConfigurationWatchListUtil.getConfigurationWatchList(context);
ConfigurationWatchList newCWL = oldCWL.buildClone();
if (failsafeTop == null) {
addWarn("No previous configuration to fall back on.");
} else {
addWarn("Given previous errors, falling back to previously registered safe configuration.");
addInfo("Safe model " + failsafeTop);
try {
lc.reset();
ConfigurationWatchListUtil.registerConfigurationWatchList(context, newCWL);
ModelUtil.resetForReuse(failsafeTop);
joranConfigurator.processModel(failsafeTop);
addInfo("Re-registering previous fallback configuration once more as a fallback configuration point");
joranConfigurator.registerSafeConfiguration(failsafeTop);
context.fireConfigurationEvent(newConfigurationEndedSuccessfullyEvent(this));
addInfo("after registerSafeConfiguration");
} catch (Exception e) {
addError("Unexpected exception thrown by a configuration considered safe.", e);
}
}
}