@Override public Object getProperty(String key, Object defaultValue) { for (PropertiesProvider provider : getDelegates()) { try { Object rawValue = provider.getProperty(key); if (rawValue != null && !isCyclicReference(key, rawValue)) { return substitute(String.valueOf(rawValue), new HashSet<String>()); } } catch (Exception e) { LOGGER.debug("Skipping properties provider:{}, due to:{}", provider, e.getMessage()); } } return defaultValue; }
if (PLACEHOLDER_PATTERN.matcher(replacement).matches()) { copyOfVisited.add(name); replacement = substitute(replacement, copyOfVisited);