diff --git a/pricenode/src/main/java/bisq/price/spot/ExchangeRateProvider.java b/pricenode/src/main/java/bisq/price/spot/ExchangeRateProvider.java index c8f87f1db56..b15cd5faedb 100644 --- a/pricenode/src/main/java/bisq/price/spot/ExchangeRateProvider.java +++ b/pricenode/src/main/java/bisq/price/spot/ExchangeRateProvider.java @@ -27,6 +27,7 @@ import org.knowm.xchange.currency.Currency; import org.knowm.xchange.currency.CurrencyPair; import org.knowm.xchange.dto.marketdata.Ticker; +import org.knowm.xchange.exceptions.ExchangeException; import org.knowm.xchange.exceptions.NotYetImplementedForExchangeException; import org.knowm.xchange.service.marketdata.MarketDataService; import org.knowm.xchange.service.marketdata.params.CurrencyPairsParam; @@ -210,8 +211,13 @@ public Collection getCurrencyPairs() { log.error("Could not query tickers for " + getName(), e); } }); - } - catch (Exception e) { + } catch (ExchangeException | // Errors reported by the exchange (rate limit, etc) + IOException | // Errors while trying to connect to the API (timeouts, etc) + // Potential error when integrating new exchange (hints that exchange + // provider implementation needs to overwrite + // requiresFilterDuringBulkTickerRetrieval() and have it return true ) + IllegalArgumentException e) { + // Catch and handle all other possible exceptions // If there was a problem with polling this exchange, return right away, // since there are no results to parse and process log.error("Could not query tickers for provider " + getName(), e); @@ -236,8 +242,7 @@ public Collection getCurrencyPairs() { String otherExchangeRateCurrency; if (t.getCurrencyPair().base.equals(Currency.BTC)) { otherExchangeRateCurrency = t.getCurrencyPair().counter.getCurrencyCode(); - } - else { + } else { otherExchangeRateCurrency = t.getCurrencyPair().base.getCurrencyCode(); } diff --git a/pricenode/src/main/java/bisq/price/spot/ExchangeRateService.java b/pricenode/src/main/java/bisq/price/spot/ExchangeRateService.java index 881235d715e..6fcf4a6eb2b 100644 --- a/pricenode/src/main/java/bisq/price/spot/ExchangeRateService.java +++ b/pricenode/src/main/java/bisq/price/spot/ExchangeRateService.java @@ -70,14 +70,15 @@ public Map getAllMarketPrices() { metadata.putAll(getMetadata(p, exchangeRates)); }); - return new LinkedHashMap() {{ - putAll(metadata); - // Use a sorted list by currency code to make comparision of json data between - // different price nodes easier - List values = new ArrayList<>(aggregateExchangeRates.values()); - values.sort(Comparator.comparing(ExchangeRate::getCurrency)); - put("data", values); - }}; + LinkedHashMap result = new LinkedHashMap<>(); + result.putAll(metadata); + // Use a sorted list by currency code to make comparision of json data between + // different price nodes easier + List values = new ArrayList<>(aggregateExchangeRates.values()); + values.sort(Comparator.comparing(ExchangeRate::getCurrency)); + result.put("data", values); + + return result; } /**