diff --git a/common/src/main/java/bisq/common/taskrunner/TaskRunner.java b/common/src/main/java/bisq/common/taskrunner/TaskRunner.java index 86cf9f3810..d8870b09f4 100644 --- a/common/src/main/java/bisq/common/taskrunner/TaskRunner.java +++ b/common/src/main/java/bisq/common/taskrunner/TaskRunner.java @@ -28,7 +28,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class TaskRunner { - private final Queue> tasks = new LinkedBlockingQueue<>(); + private final Queue>> tasks = new LinkedBlockingQueue<>(); private final T sharedModel; private final Class sharedModelClass; private final ResultHandler resultHandler; @@ -36,7 +36,7 @@ public class TaskRunner { private boolean failed = false; private boolean isCanceled; - private Class currentTask; + private Class> currentTask; public TaskRunner(T sharedModel, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) { diff --git a/core/src/main/java/bisq/core/app/BisqHeadlessApp.java b/core/src/main/java/bisq/core/app/BisqHeadlessApp.java index 49fe00c10d..71a6ab4e39 100644 --- a/core/src/main/java/bisq/core/app/BisqHeadlessApp.java +++ b/core/src/main/java/bisq/core/app/BisqHeadlessApp.java @@ -33,7 +33,6 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class BisqHeadlessApp implements HeadlessApp { - private static final long LOG_MEMORY_PERIOD_MIN = 10; @Getter private static Runnable shutDownHandler; @@ -96,7 +95,6 @@ public class BisqHeadlessApp implements HeadlessApp { bisqSetup.setOsxKeyLoggerWarningHandler(() -> log.info("setOsxKeyLoggerWarningHandler")); bisqSetup.setQubesOSInfoHandler(() -> log.info("setQubesOSInfoHandler")); - //TODO move to bisqSetup corruptedStorageFileHandler.getFiles().ifPresent(files -> log.warn("getCorruptedDatabaseFiles. files={}", files)); tradeManager.setTakeOfferRequestErrorMessageHandler(errorMessage -> log.error("onTakeOfferRequestErrorMessageHandler")); } diff --git a/core/src/main/java/bisq/core/app/TorSetup.java b/core/src/main/java/bisq/core/app/TorSetup.java index 2b9451e4e5..b2ff5378b7 100644 --- a/core/src/main/java/bisq/core/app/TorSetup.java +++ b/core/src/main/java/bisq/core/app/TorSetup.java @@ -39,7 +39,7 @@ import static bisq.common.util.Preconditions.checkDir; @Slf4j @Singleton public class TorSetup { - private File torDir; + private final File torDir; @Inject public TorSetup(@Named(Config.TOR_DIR) File torDir) { diff --git a/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java b/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java index 7d1eebe981..fb4b87b12e 100644 --- a/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java +++ b/core/src/main/java/bisq/core/dao/state/storage/DaoStateStorageService.java @@ -43,6 +43,8 @@ import lombok.extern.slf4j.Slf4j; */ @Slf4j public class DaoStateStorageService extends StoreService { + private static final String FILE_NAME = "DaoStateStore"; + private final DaoState daoState; private final DaoStateMonitoringService daoStateMonitoringService; @@ -71,7 +73,7 @@ public class DaoStateStorageService extends StoreService { @Override public String getFileName() { - return "DaoStateStore"; + return FILE_NAME; } public void persistNow(DaoState daoState, LinkedList daoStateHashChain, Runnable completeHandler) { diff --git a/core/src/main/java/bisq/core/support/dispute/DisputeListService.java b/core/src/main/java/bisq/core/support/dispute/DisputeListService.java index 1ee8f02046..59c14f3138 100644 --- a/core/src/main/java/bisq/core/support/dispute/DisputeListService.java +++ b/core/src/main/java/bisq/core/support/dispute/DisputeListService.java @@ -63,7 +63,7 @@ public abstract class DisputeListService> impleme this.persistenceManager = persistenceManager; disputeList = getConcreteDisputeList(); - this.persistenceManager.initialize(disputeList, PersistenceManager.Priority.HIGH); + this.persistenceManager.initialize(disputeList, getFileName(), PersistenceManager.Priority.HIGH); } diff --git a/core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationDisputeList.java b/core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationDisputeList.java index e1d9e83844..d0e36fbc2b 100644 --- a/core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationDisputeList.java +++ b/core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationDisputeList.java @@ -26,7 +26,6 @@ import bisq.common.proto.ProtoUtil; import com.google.protobuf.Message; -import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -64,7 +63,7 @@ public final class ArbitrationDisputeList extends DisputeList { forEach(dispute -> checkArgument(dispute.getSupportType().equals(SupportType.ARBITRATION), "Support type has to be ARBITRATION")); return protobuf.PersistableEnvelope.newBuilder().setArbitrationDisputeList(protobuf.ArbitrationDisputeList.newBuilder() - .addAllDispute(ProtoUtil.collectionToProto(new ArrayList<>(getList()), protobuf.Dispute.class))).build(); + .addAllDispute(ProtoUtil.collectionToProto(getList(), protobuf.Dispute.class))).build(); } public static ArbitrationDisputeList fromProto(protobuf.ArbitrationDisputeList proto, diff --git a/core/src/main/java/bisq/core/support/dispute/mediation/MediationDisputeList.java b/core/src/main/java/bisq/core/support/dispute/mediation/MediationDisputeList.java index 6f7ea7d157..297b30bfec 100644 --- a/core/src/main/java/bisq/core/support/dispute/mediation/MediationDisputeList.java +++ b/core/src/main/java/bisq/core/support/dispute/mediation/MediationDisputeList.java @@ -26,7 +26,6 @@ import bisq.common.proto.ProtoUtil; import com.google.protobuf.Message; -import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -59,7 +58,7 @@ public final class MediationDisputeList extends DisputeList { @Override public Message toProtoMessage() { return protobuf.PersistableEnvelope.newBuilder().setMediationDisputeList(protobuf.MediationDisputeList.newBuilder() - .addAllDispute(ProtoUtil.collectionToProto(new ArrayList<>(getList()), protobuf.Dispute.class))).build(); + .addAllDispute(ProtoUtil.collectionToProto(getList(), protobuf.Dispute.class))).build(); } public static MediationDisputeList fromProto(protobuf.MediationDisputeList proto, diff --git a/core/src/main/java/bisq/core/support/dispute/refund/RefundDisputeList.java b/core/src/main/java/bisq/core/support/dispute/refund/RefundDisputeList.java index cfe6afe26f..9e1b697a28 100644 --- a/core/src/main/java/bisq/core/support/dispute/refund/RefundDisputeList.java +++ b/core/src/main/java/bisq/core/support/dispute/refund/RefundDisputeList.java @@ -26,7 +26,6 @@ import bisq.common.proto.ProtoUtil; import com.google.protobuf.Message; -import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -63,7 +62,7 @@ public final class RefundDisputeList extends DisputeList { forEach(dispute -> checkArgument(dispute.getSupportType().equals(SupportType.REFUND), "Support type has to be REFUND")); return protobuf.PersistableEnvelope.newBuilder().setRefundDisputeList(protobuf.RefundDisputeList.newBuilder() - .addAllDispute(ProtoUtil.collectionToProto(new ArrayList<>(getList()), protobuf.Dispute.class))).build(); + .addAllDispute(ProtoUtil.collectionToProto(getList(), protobuf.Dispute.class))).build(); } public static RefundDisputeList fromProto(protobuf.RefundDisputeList proto, diff --git a/core/src/main/java/bisq/core/trade/closed/ClosedTradableManager.java b/core/src/main/java/bisq/core/trade/closed/ClosedTradableManager.java index 4e8a1c4784..f3adfe9f67 100644 --- a/core/src/main/java/bisq/core/trade/closed/ClosedTradableManager.java +++ b/core/src/main/java/bisq/core/trade/closed/ClosedTradableManager.java @@ -54,8 +54,8 @@ public class ClosedTradableManager implements PersistedDataHost { this.keyRing = keyRing; this.priceFeedService = priceFeedService; this.dumpDelayedPayoutTx = dumpDelayedPayoutTx; - this.persistenceManager = persistenceManager; + this.persistenceManager.initialize(closedTradables, "ClosedTrades"); } @@ -66,9 +66,7 @@ public class ClosedTradableManager implements PersistedDataHost { closedTradables.setAll(persisted.getList()); } - closedTradables.forEach(tradable -> { - tradable.getOffer().setPriceFeedService(priceFeedService); - }); + closedTradables.forEach(tradable -> tradable.getOffer().setPriceFeedService(priceFeedService)); dumpDelayedPayoutTx.maybeDumpDelayedPayoutTxs(closedTradables, "delayed_payout_txs_closed"); } diff --git a/core/src/main/java/bisq/core/trade/failed/FailedTradesManager.java b/core/src/main/java/bisq/core/trade/failed/FailedTradesManager.java index 5bafdd04e2..3c2b1b1786 100644 --- a/core/src/main/java/bisq/core/trade/failed/FailedTradesManager.java +++ b/core/src/main/java/bisq/core/trade/failed/FailedTradesManager.java @@ -65,6 +65,7 @@ public class FailedTradesManager implements PersistedDataHost { this.btcWalletService = btcWalletService; this.dumpDelayedPayoutTx = dumpDelayedPayoutTx; this.persistenceManager = persistenceManager; + this.persistenceManager.initialize(failedTrades, "FailedTrades"); } diff --git a/core/src/main/java/bisq/core/user/Preferences.java b/core/src/main/java/bisq/core/user/Preferences.java index 50641cddea..dee261ee4d 100644 --- a/core/src/main/java/bisq/core/user/Preferences.java +++ b/core/src/main/java/bisq/core/user/Preferences.java @@ -898,6 +898,8 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid tradeCurrenciesAsObservable.add(change.getAddedSubList().get(0)); else if (change.wasRemoved() && change.getRemovedSize() == 1 && initialReadDone) tradeCurrenciesAsObservable.remove(change.getRemoved().get(0)); + + requestPersistence(); } private boolean blockExplorerExists(ArrayList explorers, diff --git a/desktop/src/main/java/bisq/desktop/main/MainViewModel.java b/desktop/src/main/java/bisq/desktop/main/MainViewModel.java index 51788adf6a..e8db146e39 100644 --- a/desktop/src/main/java/bisq/desktop/main/MainViewModel.java +++ b/desktop/src/main/java/bisq/desktop/main/MainViewModel.java @@ -130,14 +130,14 @@ public class MainViewModel implements ViewModel, BisqSetup.BisqSetupListener { private final CorruptedStorageFileHandler corruptedStorageFileHandler; @Getter - private BooleanProperty showAppScreen = new SimpleBooleanProperty(); - private DoubleProperty combinedSyncProgress = new SimpleDoubleProperty(-1); + private final BooleanProperty showAppScreen = new SimpleBooleanProperty(); + private final DoubleProperty combinedSyncProgress = new SimpleDoubleProperty(-1); private final BooleanProperty isSplashScreenRemoved = new SimpleBooleanProperty(); private Timer checkNumberOfBtcPeersTimer; private Timer checkNumberOfP2pNetworkPeersTimer; @SuppressWarnings("FieldCanBeLocal") private MonadicBinding tradesAndUIReady; - private Queue> popupQueue = new PriorityQueue<>(Comparator.comparing(Overlay::getDisplayOrderPriority)); + private final Queue> popupQueue = new PriorityQueue<>(Comparator.comparing(Overlay::getDisplayOrderPriority)); /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/desktop/src/main/java/bisq/desktop/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java b/desktop/src/main/java/bisq/desktop/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java index efc0c42888..3c8a124e24 100644 --- a/desktop/src/main/java/bisq/desktop/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java +++ b/desktop/src/main/java/bisq/desktop/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java @@ -111,7 +111,7 @@ class AltCoinAccountsDataModel extends ActivatableDataModel { else preferences.addCryptoCurrency((CryptoCurrency) singleTradeCurrency); } else if (tradeCurrencies != null && !tradeCurrencies.isEmpty()) { - tradeCurrencies.stream().forEach(tradeCurrency -> { + tradeCurrencies.forEach(tradeCurrency -> { if (tradeCurrency instanceof FiatCurrency) preferences.addFiatCurrency((FiatCurrency) tradeCurrency); else diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/notifications/NotificationCenter.java b/desktop/src/main/java/bisq/desktop/main/overlays/notifications/NotificationCenter.java index ed661e050c..61e9fbed0e 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/notifications/NotificationCenter.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/notifications/NotificationCenter.java @@ -112,7 +112,7 @@ public class NotificationCenter { tradeManager.getTradesAsObservableList().addListener((ListChangeListener) change -> { change.next(); if (change.wasRemoved()) { - change.getRemoved().stream().forEach(trade -> { + change.getRemoved().forEach(trade -> { String tradeId = trade.getId(); if (disputeStateSubscriptionsMap.containsKey(tradeId)) { disputeStateSubscriptionsMap.get(tradeId).unsubscribe(); diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java index 286894ae26..233c891787 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java @@ -122,7 +122,7 @@ public class PendingTradesDataModel extends ActivatableDataModel { private ChangeListener tradeStateChangeListener; private Trade selectedTrade; @Getter - private PubKeyRing pubKeyRing; + private final PubKeyRing pubKeyRing; /////////////////////////////////////////////////////////////////////////////////////////// // Constructor, initialization diff --git a/desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java b/desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java index 00afc7f1b7..f102f4e56c 100644 --- a/desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java +++ b/desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java @@ -168,7 +168,7 @@ public abstract class DisputeView extends ActivatableView { protected InputTextField filterTextField; private ChangeListener filterTextFieldListener; protected AutoTooltipButton sigCheckButton, reOpenButton, sendPrivateNotificationButton, reportButton, fullReportButton; - private Map> disputeChatMessagesListeners = new HashMap<>(); + private final Map> disputeChatMessagesListeners = new HashMap<>(); @Nullable private ListChangeListener disputesListener; // Only set in mediation cases protected Label alertIconLabel; diff --git a/proto/src/main/proto/pb.proto b/proto/src/main/proto/pb.proto index 48b238c9ec..e16746c09b 100644 --- a/proto/src/main/proto/pb.proto +++ b/proto/src/main/proto/pb.proto @@ -1401,7 +1401,7 @@ message Trade { NodeAddress refund_agent_node_address = 33; PubKeyRing refund_agent_pub_key_ring = 34; RefundResultState refund_result_state = 35; - int64 last_refresh_request_date = 36; + int64 last_refresh_request_date = 36 [deprecated = true]; string counter_currency_extra_data = 37; string asset_tx_proof_result = 38; // name of AssetTxProofResult enum }