private List<CurrencyProviderSpi> collectProviders(CurrencyQuery query) { List<CurrencyProviderSpi> result = new ArrayList<>(); if (!query.getProviderNames().isEmpty()) { for (String providerName : query.getProviderNames()) { CurrencyProviderSpi provider = getProvider(providerName); if (provider == null) { Logger.getLogger(DefaultMonetaryCurrenciesSingletonSpi.class.getName()).warning("No such currency " + "provider found, ignoring: " + providerName); } else { result.add(provider); } } } else{ for(String providerName:getDefaultProviderChain()){ CurrencyProviderSpi provider = getProvider(providerName); if (provider == null) { Logger.getLogger(DefaultMonetaryCurrenciesSingletonSpi.class.getName()).warning("No such currency " + "provider found, ignoring: " + providerName); } else { result.add(provider); } } } return result; }