void () { ApplicationManager.getApplication().executeOnPooledThread(() -> { try { Object priceJson = getPluginPricesJsonObject(); if (priceJson instanceof Map) { Map<String, String> result = parsePrices((Map)priceJson); ApplicationManager.getApplication().invokeLater(() -> { checkAccess(); for (Entry<String, String> entry : result.entrySet()) { Object callback = myPriceTable.put(entry.getKey(), entry.getValue()); if (callback instanceof Consumer) { ((Consumer<String>)callback).consume(entry.getValue()); } } clear(); myPrepared = true; myPreparing = false; }, ModalityState.any()); } } catch (IOException e) { e.printStackTrace(); LOG.debug(e); } }); }