From 000820203762df9d3c53ca39911a2179e0c9b301 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Sat, 28 Mar 2015 15:34:28 +0100 Subject: [PATCH] Cleanup from code inspection --- .gitignore | 1 - .../app/bootstrap/BootstrapNode.java | 3 +- .../enzo/notification/Notification.java | 2 +- .../java/io/bitsquare/BitsquareException.java | 2 ++ .../java/io/bitsquare/BitsquareModule.java | 2 +- .../bitsquare/app/BitsquareEnvironment.java | 7 ++-- .../java/io/bitsquare/app/UpdateProcess.java | 21 ++++-------- .../arbitration/ArbitrationRepository.java | 13 ++++---- .../io/bitsquare/arbitration/Arbitrator.java | 30 ++++++++--------- .../btc/AddressBasedCoinSelector.java | 2 ++ .../java/io/bitsquare/btc/AddressEntry.java | 2 +- .../io/bitsquare/btc/AddressEntryList.java | 2 +- .../io/bitsquare/btc/TradeWalletService.java | 27 +++++++-------- .../java/io/bitsquare/btc/WalletService.java | 14 +++----- .../taskrunner/InterceptTaskException.java | 1 + .../io/bitsquare/common/taskrunner/Task.java | 6 +--- .../common/taskrunner/TaskRunner.java | 6 ++-- .../common/viewfx/ViewfxException.java | 2 ++ .../common/viewfx/view/FxmlView.java | 2 +- .../common/viewfx/view/ViewPath.java | 4 ++- .../bitsquare/common/viewfx/view/Wizard.java | 2 +- .../bitsquare/crypto/EncryptionService.java | 2 +- .../java/io/bitsquare/crypto/HashService.java | 2 +- .../io/bitsquare/crypto/SignatureService.java | 2 +- .../java/io/bitsquare/gui/Navigation.java | 1 + .../java/io/bitsquare/gui/SystemTray.java | 3 +- .../src/main/java/io/bitsquare/gui/images.css | 1 + .../java/io/bitsquare/gui/main/MainView.java | 2 +- .../io/bitsquare/gui/main/MainViewModel.java | 8 ++--- .../ArbitratorRegistrationView.java | 6 ++-- .../funds/transactions/TransactionsView.java | 3 +- .../main/funds/withdrawal/WithdrawalView.java | 3 +- .../gui/main/portfolio/PortfolioView.java | 2 -- .../pending/PendingTradesDataModel.java | 1 + .../portfolio/pending/PendingTradesView.java | 2 +- .../pending/PendingTradesViewModel.java | 4 +++ .../gui/main/settings/SettingsView.java | 5 +-- .../createoffer/CreateOfferDataModel.java | 8 ++--- .../trade/takeoffer/TakeOfferDataModel.java | 2 +- .../trade/takeoffer/TakeOfferViewModel.java | 3 +- .../io/bitsquare/gui/util/BSFormatter.java | 33 ++++++++----------- .../io/bitsquare/gui/util/Transitions.java | 2 +- .../java/io/bitsquare/locale/Country.java | 1 + .../io/bitsquare/locale/CurrencyUtil.java | 2 +- .../io/bitsquare/locale/LanguageUtil.java | 2 +- .../main/java/io/bitsquare/locale/Region.java | 1 + .../main/java/io/bitsquare/offer/Offer.java | 2 +- .../java/io/bitsquare/offer/OfferBook.java | 2 +- .../offer/tomp2p/TomP2POfferBookService.java | 6 ++-- .../java/io/bitsquare/p2p/ClientNode.java | 2 +- .../p2p/EncryptedMailboxMessage.java | 2 +- .../io/bitsquare/p2p/NetworkException.java | 2 ++ .../p2p/tomp2p/BootstrappedPeerBuilder.java | 2 +- .../p2p/tomp2p/TomP2PMailboxService.java | 4 +-- .../p2p/tomp2p/TomP2PMessageService.java | 9 ++--- .../io/bitsquare/p2p/tomp2p/TomP2PNode.java | 4 +-- .../io/bitsquare/storage/FileManager.java | 33 ++++++++++--------- .../java/io/bitsquare/storage/Storage.java | 2 +- .../trade/offerer/tasks/OffererTradeTask.java | 2 +- .../trade/taker/tasks/TakerTradeTask.java | 2 +- .../io/bitsquare/user/AccountSettings.java | 4 +-- .../src/main/java/io/bitsquare/user/User.java | 7 ++-- .../java/io/bitsquare/util/DSAKeyUtil.java | 14 ++------ .../java/io/bitsquare/util/DesktopUtil.java | 13 +++----- .../java/io/bitsquare/util/Utilities.java | 13 ++++---- .../spring/JOptCommandLinePropertySource.java | 8 ++--- .../resources/i18n/displayStrings.properties | 2 +- 67 files changed, 177 insertions(+), 210 deletions(-) diff --git a/.gitignore b/.gitignore index 6a3d41f624..c965dc5076 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ !.idea/copyright/profiles_settings.xml !.idea/codeStyleSettings.xml *.iml -*/*.iml *.spvchain *.wallet *.ser diff --git a/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java b/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java index b46f698c79..25864f21db 100644 --- a/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java +++ b/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java @@ -40,7 +40,6 @@ public class BootstrapNode { private static final Logger log = LoggerFactory.getLogger(BootstrapNode.class); private static Peer peer = null; - private static boolean running = true; private final Environment env; private boolean noPeersInfoPrinted; @@ -97,7 +96,7 @@ public class BootstrapNode { log.info("Bootstrap node started with name " + name + " and port " + port); new Thread(() -> { - while (running) { + while (true) { if (peer.peerBean().peerMap().all().size() > 0) { noPeersInfoPrinted = false; log.info("Number of peers online = " + peer.peerBean().peerMap().all().size()); diff --git a/core/src/main/java/eu/hansolo/enzo/notification/Notification.java b/core/src/main/java/eu/hansolo/enzo/notification/Notification.java index 68902668b3..46d10c5165 100644 --- a/core/src/main/java/eu/hansolo/enzo/notification/Notification.java +++ b/core/src/main/java/eu/hansolo/enzo/notification/Notification.java @@ -96,7 +96,7 @@ public class Notification { // ******************** Constructor *************************************** - private Notifier() { + Notifier() { init(); initGraphics(); } diff --git a/core/src/main/java/io/bitsquare/BitsquareException.java b/core/src/main/java/io/bitsquare/BitsquareException.java index ced9490e4f..36e704d4d5 100644 --- a/core/src/main/java/io/bitsquare/BitsquareException.java +++ b/core/src/main/java/io/bitsquare/BitsquareException.java @@ -20,6 +20,8 @@ package io.bitsquare; @SuppressWarnings("serializable") public class BitsquareException extends RuntimeException { + private static final long serialVersionUID = 556191645860856173L; + public BitsquareException(Throwable cause) { super(cause); } diff --git a/core/src/main/java/io/bitsquare/BitsquareModule.java b/core/src/main/java/io/bitsquare/BitsquareModule.java index abd63ff5bb..139cd9f01a 100644 --- a/core/src/main/java/io/bitsquare/BitsquareModule.java +++ b/core/src/main/java/io/bitsquare/BitsquareModule.java @@ -34,7 +34,7 @@ public abstract class BitsquareModule extends AbstractModule { private static final Logger log = LoggerFactory.getLogger(BitsquareModule.class); protected final Environment env; - private final List modules = new ArrayList(); + private final List modules = new ArrayList<>(); protected BitsquareModule(Environment env) { checkNotNull(env, "Environment must not be null"); diff --git a/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java b/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java index cd857e6655..862a05607f 100644 --- a/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java +++ b/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java @@ -121,8 +121,11 @@ public class BitsquareEnvironment extends StandardEnvironment { return new ResourcePropertySource(BITSQUARE_CLASSPATH_PROPERTY_SOURCE_NAME, resource); } - PropertySource defaultProperties() throws Exception { - return new PropertiesPropertySource(BITSQUARE_DEFAULT_PROPERTY_SOURCE_NAME, new Properties() {{ + PropertySource defaultProperties() { + return new PropertiesPropertySource(BITSQUARE_DEFAULT_PROPERTY_SOURCE_NAME, new Properties() { + private static final long serialVersionUID = -8478089705207326165L; + + { setProperty(APP_DATA_DIR_KEY, appDataDir); setProperty(APP_DATA_DIR_CLEAN_KEY, DEFAULT_APP_DATA_DIR_CLEAN); diff --git a/core/src/main/java/io/bitsquare/app/UpdateProcess.java b/core/src/main/java/io/bitsquare/app/UpdateProcess.java index 3ba56438b6..872b77174e 100644 --- a/core/src/main/java/io/bitsquare/app/UpdateProcess.java +++ b/core/src/main/java/io/bitsquare/app/UpdateProcess.java @@ -26,13 +26,10 @@ import java.io.File; import java.nio.file.Path; import java.util.List; -import java.util.function.Function; import javafx.animation.AnimationTimer; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.value.ChangeListener; -import javafx.beans.value.ObservableValue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,7 +59,7 @@ public class UpdateProcess { return BUILD_VERSION; } - private Environment environment; + private final Environment environment; public enum State { CHECK_FOR_UPDATES, @@ -98,12 +95,9 @@ public class UpdateProcess { log.info("UpdateFX current version " + BUILD_VERSION); // process.timeout() will cause an error state back but we don't want to break startup in case of an timeout - timeoutTimer = Utilities.setTimeout(10000, new Function() { - @Override - public Void apply(AnimationTimer animationTimer) { - process.onCompleted(); - return null; - } + timeoutTimer = Utilities.setTimeout(10000, animationTimer -> { + process.onCompleted(); + return null; }); timeoutTimer.start(); @@ -118,11 +112,8 @@ public class UpdateProcess { } }; - updater.progressProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observableValue, Number oldValue, Number newValue) { - log.trace("progressProperty newValue = " + newValue); - } + updater.progressProperty().addListener((observableValue, oldValue, newValue) -> { + log.trace("progressProperty newValue = " + newValue); }); log.info("Checking for updates!"); diff --git a/core/src/main/java/io/bitsquare/arbitration/ArbitrationRepository.java b/core/src/main/java/io/bitsquare/arbitration/ArbitrationRepository.java index d5b815ece3..5f7a7850a2 100644 --- a/core/src/main/java/io/bitsquare/arbitration/ArbitrationRepository.java +++ b/core/src/main/java/io/bitsquare/arbitration/ArbitrationRepository.java @@ -28,7 +28,9 @@ import com.google.inject.Inject; import java.io.Serializable; +import java.security.NoSuchAlgorithmException; import java.security.PublicKey; +import java.security.spec.InvalidKeySpecException; import java.util.Arrays; import java.util.HashMap; @@ -48,7 +50,6 @@ public class ArbitrationRepository implements Serializable { private static final long serialVersionUID = 1L; transient private static final Logger log = LoggerFactory.getLogger(ArbitrationRepository.class); - transient private final Storage storage; transient private final ArbitratorService arbitratorService; transient private final Arbitrator defaultArbitrator; transient private final ObservableMap arbitratorsObservableMap = FXCollections.observableHashMap(); @@ -61,14 +62,14 @@ public class ArbitrationRepository implements Serializable { @Inject public ArbitrationRepository(Storage storage, Storage arbitratorStorage, - ArbitratorService arbitratorService) { - this.storage = storage; + ArbitratorService arbitratorService) throws InvalidKeySpecException, NoSuchAlgorithmException { + Storage storage1 = storage; this.arbitratorService = arbitratorService; byte[] walletPubKey = Utils.HEX.decode("03a418bf0cb60a35ce217c7f80a2db08a4f5efbe56a0e7602fbc392dea6b63f840"); - PublicKey p2pSigPubKey = DSAKeyUtil.decodePubKeyHex + PublicKey p2pSigPubKey = null; + p2pSigPubKey = DSAKeyUtil.decodePubKeyHex ("308201b83082012c06072a8648ce3804013082011f02818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c70215009760508f15230bccb292b982a2eb840bf0581cf502818100f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a0381850002818100db47d4cf76e9bfcc0ba1e98c21c19ba45d1440fa2fec732f664dc8fd63e98877e648aac6db8d1035cd640fe5ff2e0030c2f8694ed124e81bd42c5446a1ce5288d5c8b4073d1cd890fe61ee4527f4e3184279f394cb9c2a4e7924cb2e82320a846cc140304eac6d41d4eaebc4d69b92725715497a82890be9f49d348fda20b095"); - this.defaultArbitrator = new Arbitrator(arbitratorStorage, "default-524f-46c0-b96e-de5a11d3475d", walletPubKey, @@ -107,7 +108,7 @@ public class ArbitrationRepository implements Serializable { ArbitrationRepository.this.arbitratorsObservableMap.putAll(ArbitrationRepository.this.arbitratorsMap); allArbitratorsSynced = true; }, - (errorMessage -> log.error(errorMessage))); + (log::error)); } public Map getArbitratorsMap() { diff --git a/core/src/main/java/io/bitsquare/arbitration/Arbitrator.java b/core/src/main/java/io/bitsquare/arbitration/Arbitrator.java index 9b1ef2b5ad..2f4768bfc5 100644 --- a/core/src/main/java/io/bitsquare/arbitration/Arbitrator.java +++ b/core/src/main/java/io/bitsquare/arbitration/Arbitrator.java @@ -28,8 +28,6 @@ import java.security.PublicKey; import java.util.List; import java.util.Objects; -import org.jetbrains.annotations.NotNull; - public class Arbitrator implements Serializable { // That object is sent over the wire, so we need to take care of version compatibility. private static final long serialVersionUID = 1L; @@ -67,7 +65,7 @@ public class Arbitrator implements Serializable { } - transient private Storage storage; + final transient private Storage storage; // Persisted fields private final String id; @@ -85,19 +83,19 @@ public class Arbitrator implements Serializable { private String webUrl; private String description; - public Arbitrator(@NotNull Storage storage, - @NotNull String id, - @NotNull byte[] pubKey, - @NotNull PublicKey p2pSigPubKey, - @NotNull String name, - @NotNull Reputation reputation, - @NotNull ID_TYPE idType, - @NotNull List languageCodes, - @NotNull Coin fee, - @NotNull List arbitrationMethods, - @NotNull List idVerifications, - @NotNull String webUrl, - @NotNull String description) { + public Arbitrator(Storage storage, + String id, + byte[] pubKey, + PublicKey p2pSigPubKey, + String name, + Reputation reputation, + ID_TYPE idType, + List languageCodes, + Coin fee, + List arbitrationMethods, + List idVerifications, + String webUrl, + String description) { this.storage = storage; this.id = id; this.pubKey = pubKey; diff --git a/core/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java b/core/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java index f83c8f2481..1dec4d6049 100644 --- a/core/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java +++ b/core/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java @@ -65,6 +65,8 @@ class AddressBasedCoinSelector extends DefaultCoinSelector { Collections.sort(outputs, (a, b) -> { int depth1 = 0; int depth2 = 0; + assert a.getParentTransaction() != null; + assert b.getParentTransaction() != null; TransactionConfidence conf1 = a.getParentTransaction().getConfidence(); TransactionConfidence conf2 = b.getParentTransaction().getConfidence(); if (conf1.getConfidenceType() == TransactionConfidence.ConfidenceType.BUILDING) diff --git a/core/src/main/java/io/bitsquare/btc/AddressEntry.java b/core/src/main/java/io/bitsquare/btc/AddressEntry.java index be6c0c6826..4e6235d8b1 100644 --- a/core/src/main/java/io/bitsquare/btc/AddressEntry.java +++ b/core/src/main/java/io/bitsquare/btc/AddressEntry.java @@ -91,7 +91,7 @@ public class AddressEntry implements Serializable { return pubKey; } - public static enum Context { + public enum Context { REGISTRATION_FEE, TRADE, ARBITRATOR_DEPOSIT diff --git a/core/src/main/java/io/bitsquare/btc/AddressEntryList.java b/core/src/main/java/io/bitsquare/btc/AddressEntryList.java index 59219fb442..f74c3def90 100644 --- a/core/src/main/java/io/bitsquare/btc/AddressEntryList.java +++ b/core/src/main/java/io/bitsquare/btc/AddressEntryList.java @@ -36,7 +36,7 @@ public class AddressEntryList extends ArrayList implements Seriali private static final long serialVersionUID = 1L; transient private static final Logger log = LoggerFactory.getLogger(AddressEntryList.class); - transient private Storage storage; + final transient private Storage storage; transient private Wallet wallet; // Persisted fields are in ArrayList superclass diff --git a/core/src/main/java/io/bitsquare/btc/TradeWalletService.java b/core/src/main/java/io/bitsquare/btc/TradeWalletService.java index 450d3751d6..49f7927317 100644 --- a/core/src/main/java/io/bitsquare/btc/TradeWalletService.java +++ b/core/src/main/java/io/bitsquare/btc/TradeWalletService.java @@ -47,6 +47,7 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import javax.inject.Inject; @@ -138,7 +139,7 @@ public class TradeWalletService { return takeOfferFeeTx; } - public void broadcastTakeOfferFeeTx(Transaction takeOfferFeeTx, FutureCallback callback) throws InsufficientMoneyException { + public void broadcastTakeOfferFeeTx(Transaction takeOfferFeeTx, FutureCallback callback) { ListenableFuture future = walletAppKit.peerGroup().broadcastTransaction(takeOfferFeeTx).future(); Futures.addCallback(future, callback); } @@ -206,10 +207,8 @@ public class TradeWalletService { printTxWithInputs("dummyTX", dummyTX); - List connectedOutputsForAllInputs = new ArrayList<>(); - for (TransactionInput input : dummyTX.getInputs()) { - connectedOutputsForAllInputs.add(input.getConnectedOutput()); - } + List connectedOutputsForAllInputs = dummyTX.getInputs().stream().map(TransactionInput::getConnectedOutput) + .collect(Collectors.toList()); // Only save offerer outputs, the dummy output (index 1) is ignored List outputs = new ArrayList<>(); @@ -279,9 +278,7 @@ public class TradeWalletService { preparedDepositTx.addOutput(p2SHMultiSigOutput); // Add optional offerer outputs - for (TransactionOutput output : offererOutputs) { - preparedDepositTx.addOutput(output); - } + offererOutputs.forEach(preparedDepositTx::addOutput); Coin takersSpendingAmount = Coin.ZERO; @@ -300,6 +297,7 @@ public class TradeWalletService { checkScriptSig(preparedDepositTx, input, i); // add up spending amount + assert input.getConnectedOutput() != null; takersSpendingAmount = takersSpendingAmount.add(input.getConnectedOutput().getValue()); } @@ -352,6 +350,7 @@ public class TradeWalletService { depositTx.addInput(input); // add up spending amount + assert input.getConnectedOutput() != null; offererSpendingAmount = offererSpendingAmount.add(input.getConnectedOutput().getValue()); } @@ -370,9 +369,7 @@ public class TradeWalletService { } // Add all outputs from takersPreparedDepositTx to depositTx - for (TransactionOutput output : takersPreparedDepositTx.getOutputs()) { - depositTx.addOutput(output); - } + takersPreparedDepositTx.getOutputs().forEach(depositTx::addOutput); // Sign inputs for (int i = 0; i < offererConnectedOutputsForAllInputs.size(); i++) { @@ -514,6 +511,7 @@ public class TradeWalletService { verifyTransaction(payoutTx); checkWalletConsistency(); checkScriptSig(payoutTx, input, 0); + assert input.getConnectedOutput() != null; input.verify(input.getConnectedOutput()); printTxWithInputs("payoutTx", payoutTx); @@ -595,8 +593,10 @@ public class TradeWalletService { } private void signInput(Transaction transaction, TransactionInput input, int inputIndex) throws SigningException { + assert input.getConnectedOutput() != null; Script scriptPubKey = input.getConnectedOutput().getScriptPubKey(); ECKey sigKey = input.getOutpoint().getConnectedKey(wallet); + assert sigKey != null; Sha256Hash hash = transaction.hashForSignature(inputIndex, scriptPubKey, Transaction.SigHash.ALL, false); ECKey.ECDSASignature signature = sigKey.sign(hash); TransactionSignature txSig = new TransactionSignature(signature, Transaction.SigHash.ALL, false); @@ -614,6 +614,7 @@ public class TradeWalletService { private void checkScriptSig(Transaction transaction, TransactionInput input, int inputIndex) throws TransactionVerificationException { try { log.trace("Verifies that this script (interpreted as a scriptSig) correctly spends the given scriptPubKey. Check input at index: " + inputIndex); + assert input.getConnectedOutput() != null; input.getScriptSig().correctlySpends(transaction, inputIndex, input.getConnectedOutput().getScriptPubKey()); } catch (Throwable t) { t.printStackTrace(); @@ -651,8 +652,8 @@ public class TradeWalletService { /////////////////////////////////////////////////////////////////////////////////////////// public class Result { - private List connectedOutputsForAllInputs; - private List outputs; + private final List connectedOutputsForAllInputs; + private final List outputs; private Transaction depositTx; diff --git a/core/src/main/java/io/bitsquare/btc/WalletService.java b/core/src/main/java/io/bitsquare/btc/WalletService.java index 5165d0cd55..41e3c943b2 100644 --- a/core/src/main/java/io/bitsquare/btc/WalletService.java +++ b/core/src/main/java/io/bitsquare/btc/WalletService.java @@ -90,7 +90,6 @@ public class WalletService { private final TradeWalletService tradeWalletService; private final AddressEntryList addressEntryList; private final NetworkParameters params; - private final FeePolicy feePolicy; private final SignatureService signatureService; private final File walletDir; private final String walletPrefix; @@ -107,13 +106,12 @@ public class WalletService { /////////////////////////////////////////////////////////////////////////////////////////// @Inject - public WalletService(BitcoinNetwork bitcoinNetwork, FeePolicy feePolicy, SignatureService signatureService, + public WalletService(BitcoinNetwork bitcoinNetwork, SignatureService signatureService, TradeWalletService tradeWalletService, AddressEntryList addressEntryList, UserAgent userAgent, @Named(DIR_KEY) File walletDir, @Named(PREFIX_KEY) String walletPrefix) { this.tradeWalletService = tradeWalletService; this.addressEntryList = addressEntryList; this.params = bitcoinNetwork.getParameters(); - this.feePolicy = feePolicy; this.signatureService = signatureService; this.walletDir = walletDir; this.walletPrefix = walletPrefix; @@ -262,7 +260,6 @@ public class WalletService { return ImmutableList.copyOf(addressEntryList); } - @NotNull public AddressEntry getRegistrationAddressEntry() { return registrationAddressEntry; } @@ -377,12 +374,9 @@ public class WalletService { @SuppressWarnings("UnusedDeclaration") public boolean isRegistrationFeeConfirmed() { - TransactionConfidence transactionConfidence = null; - if (getRegistrationAddressEntry() != null) { - transactionConfidence = getConfidenceForAddress(getRegistrationAddressEntry().getAddress()); - } - return transactionConfidence != null && - transactionConfidence.getConfidenceType().equals(TransactionConfidence.ConfidenceType.BUILDING); + assert getRegistrationAddressEntry() != null; + TransactionConfidence transactionConfidence = getConfidenceForAddress(getRegistrationAddressEntry().getAddress()); + return TransactionConfidence.ConfidenceType.BUILDING.equals(transactionConfidence.getConfidenceType()); } diff --git a/core/src/main/java/io/bitsquare/common/taskrunner/InterceptTaskException.java b/core/src/main/java/io/bitsquare/common/taskrunner/InterceptTaskException.java index f42cd37599..f3f19af231 100644 --- a/core/src/main/java/io/bitsquare/common/taskrunner/InterceptTaskException.java +++ b/core/src/main/java/io/bitsquare/common/taskrunner/InterceptTaskException.java @@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory; public class InterceptTaskException extends RuntimeException { private static final Logger log = LoggerFactory.getLogger(InterceptTaskException.class); + private static final long serialVersionUID = 5216202440370333534L; public InterceptTaskException(String message) { super(message); diff --git a/core/src/main/java/io/bitsquare/common/taskrunner/Task.java b/core/src/main/java/io/bitsquare/common/taskrunner/Task.java index aaa11e5a8a..6d4f81b0c1 100644 --- a/core/src/main/java/io/bitsquare/common/taskrunner/Task.java +++ b/core/src/main/java/io/bitsquare/common/taskrunner/Task.java @@ -17,10 +17,6 @@ package io.bitsquare.common.taskrunner; -import io.bitsquare.btc.exceptions.SigningException; -import io.bitsquare.btc.exceptions.TransactionVerificationException; -import io.bitsquare.btc.exceptions.WalletException; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,7 +45,7 @@ public abstract class Task { } } - abstract protected void doRun() throws WalletException, TransactionVerificationException, SigningException; + abstract protected void doRun(); private void interceptBeforeRun() { if (getClass() == taskToInterceptBeforeRun) diff --git a/core/src/main/java/io/bitsquare/common/taskrunner/TaskRunner.java b/core/src/main/java/io/bitsquare/common/taskrunner/TaskRunner.java index 7cbef20c0c..8f1f75212a 100644 --- a/core/src/main/java/io/bitsquare/common/taskrunner/TaskRunner.java +++ b/core/src/main/java/io/bitsquare/common/taskrunner/TaskRunner.java @@ -21,6 +21,7 @@ import io.bitsquare.common.handlers.ErrorMessageHandler; import io.bitsquare.common.handlers.ResultHandler; import java.util.Arrays; +import java.util.List; import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; @@ -45,8 +46,9 @@ public class TaskRunner { this.errorMessageHandler = errorMessageHandler; } - public final void addTasks(Class... items) { - tasks.addAll(Arrays.asList(items)); + public final void addTasks(Class>... items) { + List>> list = Arrays.asList(items); + tasks.addAll(list); } public void run() { diff --git a/core/src/main/java/io/bitsquare/common/viewfx/ViewfxException.java b/core/src/main/java/io/bitsquare/common/viewfx/ViewfxException.java index c32eb0aed6..3b3275d685 100644 --- a/core/src/main/java/io/bitsquare/common/viewfx/ViewfxException.java +++ b/core/src/main/java/io/bitsquare/common/viewfx/ViewfxException.java @@ -21,6 +21,8 @@ import static java.lang.String.format; public class ViewfxException extends RuntimeException { + private static final long serialVersionUID = -6266047448442595372L; + public ViewfxException(Throwable cause, String format, Object... args) { super(format(format, args), cause); } diff --git a/core/src/main/java/io/bitsquare/common/viewfx/view/FxmlView.java b/core/src/main/java/io/bitsquare/common/viewfx/view/FxmlView.java index faec91e597..bd095fbab2 100644 --- a/core/src/main/java/io/bitsquare/common/viewfx/view/FxmlView.java +++ b/core/src/main/java/io/bitsquare/common/viewfx/view/FxmlView.java @@ -41,6 +41,6 @@ public @interface FxmlView { */ Class convention() default DefaultPathConvention.class; - static interface PathConvention extends Function, String> { + interface PathConvention extends Function, String> { } } diff --git a/core/src/main/java/io/bitsquare/common/viewfx/view/ViewPath.java b/core/src/main/java/io/bitsquare/common/viewfx/view/ViewPath.java index 6cbd35bc5a..ac08955a59 100644 --- a/core/src/main/java/io/bitsquare/common/viewfx/view/ViewPath.java +++ b/core/src/main/java/io/bitsquare/common/viewfx/view/ViewPath.java @@ -22,6 +22,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; public class ViewPath extends ArrayList> implements Serializable { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -36,7 +37,8 @@ public class ViewPath extends ArrayList> implements Serial public static ViewPath to(Class... elements) { ViewPath path = new ViewPath(); - path.addAll(Arrays.asList(elements)); + List> list = Arrays.asList(elements); + path.addAll(list); return path; } diff --git a/core/src/main/java/io/bitsquare/common/viewfx/view/Wizard.java b/core/src/main/java/io/bitsquare/common/viewfx/view/Wizard.java index 040a6ee4c5..48acd2a713 100644 --- a/core/src/main/java/io/bitsquare/common/viewfx/view/Wizard.java +++ b/core/src/main/java/io/bitsquare/common/viewfx/view/Wizard.java @@ -20,7 +20,7 @@ package io.bitsquare.common.viewfx.view; public interface Wizard extends View { void nextStep(Step currentStep); - public interface Step { + interface Step { void hideWizardNavigation(); void setWizard(Wizard wizard); diff --git a/core/src/main/java/io/bitsquare/crypto/EncryptionService.java b/core/src/main/java/io/bitsquare/crypto/EncryptionService.java index d2dcfdfa04..8c249ca07c 100644 --- a/core/src/main/java/io/bitsquare/crypto/EncryptionService.java +++ b/core/src/main/java/io/bitsquare/crypto/EncryptionService.java @@ -73,7 +73,7 @@ public class EncryptionService { public T decryptToObject(PrivateKey privateKey, Bucket bucket) throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException { - return (T) Utilities.byteArrayToObject(decrypt(privateKey, bucket)); + return Utilities.byteArrayToObject(decrypt(privateKey, bucket)); } public Bucket encrypt(PublicKey publicKey, byte[] payload) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, diff --git a/core/src/main/java/io/bitsquare/crypto/HashService.java b/core/src/main/java/io/bitsquare/crypto/HashService.java index 6567bea455..e77d059441 100644 --- a/core/src/main/java/io/bitsquare/crypto/HashService.java +++ b/core/src/main/java/io/bitsquare/crypto/HashService.java @@ -24,6 +24,6 @@ public class HashService { public Sha256Hash hash(String message) { byte[] data = Utils.formatMessageForSigning(message); - return Sha256Hash.createDouble(data); + return Sha256Hash.hashTwice(data); } } diff --git a/core/src/main/java/io/bitsquare/crypto/SignatureService.java b/core/src/main/java/io/bitsquare/crypto/SignatureService.java index 68fc7d1ac5..d6d0f89bac 100644 --- a/core/src/main/java/io/bitsquare/crypto/SignatureService.java +++ b/core/src/main/java/io/bitsquare/crypto/SignatureService.java @@ -29,7 +29,7 @@ public class SignatureService { public String signMessage(ECKey key, String message) { byte[] data = Utils.formatMessageForSigning(message); - Sha256Hash hash = Sha256Hash.createDouble(data); + Sha256Hash hash = Sha256Hash.hashTwice(data); return signMessage(key, hash); } diff --git a/core/src/main/java/io/bitsquare/gui/Navigation.java b/core/src/main/java/io/bitsquare/gui/Navigation.java index a1d5ea8eef..8a527acdcf 100644 --- a/core/src/main/java/io/bitsquare/gui/Navigation.java +++ b/core/src/main/java/io/bitsquare/gui/Navigation.java @@ -74,6 +74,7 @@ public class Navigation implements Serializable { currentPath = null; } + @SuppressWarnings("unchecked") public void navigateTo(Class... viewClasses) { navigateTo(ViewPath.to(viewClasses)); } diff --git a/core/src/main/java/io/bitsquare/gui/SystemTray.java b/core/src/main/java/io/bitsquare/gui/SystemTray.java index 695e9525eb..f82ccb21e4 100644 --- a/core/src/main/java/io/bitsquare/gui/SystemTray.java +++ b/core/src/main/java/io/bitsquare/gui/SystemTray.java @@ -54,9 +54,8 @@ public class SystemTray { private final Runnable onExit; private final MenuItem toggleShowHideItem = new MenuItem(HIDE_WINDOW_LABEL); - public static void create(Stage stage, Runnable onExit) { - systemTray = new SystemTray(stage, onExit); + systemTray = new SystemTray(stage, onExit); } public SystemTray(Stage stage, Runnable onExit) { diff --git a/core/src/main/java/io/bitsquare/gui/images.css b/core/src/main/java/io/bitsquare/gui/images.css index 8e8a39793a..1933fb02c4 100644 --- a/core/src/main/java/io/bitsquare/gui/images.css +++ b/core/src/main/java/io/bitsquare/gui/images.css @@ -1,4 +1,5 @@ /* splash screen */ +/*noinspection CssUnknownTarget*/ #image-splash-logo { -fx-image: url("../../../images/logo_splash.png"); } diff --git a/core/src/main/java/io/bitsquare/gui/main/MainView.java b/core/src/main/java/io/bitsquare/gui/main/MainView.java index 53df27601b..3236d164da 100644 --- a/core/src/main/java/io/bitsquare/gui/main/MainView.java +++ b/core/src/main/java/io/bitsquare/gui/main/MainView.java @@ -160,7 +160,7 @@ public class MainView extends InitializableView { }); // Delay a bit to give time for rendering the splash screen - Platform.runLater(() -> model.initBackend()); + Platform.runLater(model::initBackend); } private void setupNotificationIcon(Pane portfolioButtonHolder) { diff --git a/core/src/main/java/io/bitsquare/gui/main/MainViewModel.java b/core/src/main/java/io/bitsquare/gui/main/MainViewModel.java index be0d3dc47f..accfa1507d 100644 --- a/core/src/main/java/io/bitsquare/gui/main/MainViewModel.java +++ b/core/src/main/java/io/bitsquare/gui/main/MainViewModel.java @@ -86,10 +86,10 @@ class MainViewModel implements ViewModel { private final User user; private final WalletService walletService; - private ArbitrationRepository arbitrationRepository; + private final ArbitrationRepository arbitrationRepository; private final ClientNode clientNode; private final TradeManager tradeManager; - private UpdateProcess updateProcess; + private final UpdateProcess updateProcess; private final BSFormatter formatter; @Inject @@ -123,7 +123,7 @@ class MainViewModel implements ViewModel { } public void initBackend() { - Platform.runLater(() -> updateProcess.init()); + Platform.runLater(updateProcess::init); setBitcoinNetworkSyncProgress(-1); walletService.getDownloadProgress().subscribe( @@ -179,7 +179,7 @@ class MainViewModel implements ViewModel { next -> { }, error -> log.error(error.toString()), - () -> Platform.runLater(() -> onAllServicesInitialized()) + () -> Platform.runLater(this::onAllServicesInitialized) ); } diff --git a/core/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java b/core/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java index cbdb2e46d8..01fefa5387 100644 --- a/core/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java +++ b/core/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java @@ -262,7 +262,7 @@ public class ArbitratorRegistrationView extends ActivatableView { // log.debug("arbitrator added successfully " + arbitratorService.getAllArbitrators().size()); }, - (errorMessage -> log.error(errorMessage))); + log::error); } @FXML @@ -284,9 +284,7 @@ public class ArbitratorRegistrationView extends ActivatableView { - Utilities.copyToClipboard(securityDepositAddress); - }); + copyIcon.setOnMouseClicked(e -> Utilities.copyToClipboard(securityDepositAddress)); paymentDoneButton.setDisable(walletService.getArbitratorDepositBalance().isZero()); log.debug("getArbitratorDepositBalance " + walletService.getArbitratorDepositBalance()); diff --git a/core/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java b/core/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java index 101e0781a4..c6016be935 100644 --- a/core/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java +++ b/core/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java @@ -77,8 +77,7 @@ public class TransactionsView extends ActivatableViewAndModel { @Override public void doDeactivate() { - for (TransactionsListItem transactionsListItem : transactionsListItems) - transactionsListItem.cleanup(); + transactionsListItems.forEach(TransactionsListItem::cleanup); } private void openTxDetails(TransactionsListItem item) { diff --git a/core/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java b/core/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java index 1fda3d0436..b293113536 100644 --- a/core/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java +++ b/core/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java @@ -116,8 +116,7 @@ public class WithdrawalView extends ActivatableViewAndModel { @Override public void doDeactivate() { - for (WithdrawalListItem item : addressList) - item.cleanup(); + addressList.forEach(WithdrawalListItem::cleanup); } @FXML diff --git a/core/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java b/core/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java index 7d20e0252c..e6a632c50e 100644 --- a/core/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java +++ b/core/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java @@ -47,13 +47,11 @@ public class PortfolioView extends ActivatableViewAndModel private final ViewLoader viewLoader; private final Navigation navigation; - private final TradeManager tradeManager; @Inject public PortfolioView(CachingViewLoader viewLoader, Navigation navigation, TradeManager tradeManager) { this.viewLoader = viewLoader; this.navigation = navigation; - this.tradeManager = tradeManager; } @Override diff --git a/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java b/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java index f253e5331a..65fb0558e8 100644 --- a/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java +++ b/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java @@ -226,6 +226,7 @@ class PendingTradesDataModel implements Activatable, DataModel { public Coin getAmountToWithdraw() { Trade trade = selectedItem.getTrade(); Coin amountToWithdraw = trade.getSecurityDeposit(); + assert trade.getTradeAmount() != null; if (trade instanceof OffererTrade) amountToWithdraw = amountToWithdraw.add(trade.getTradeAmount()); return amountToWithdraw; diff --git a/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java b/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java index f142c839ba..7cefd5ccb9 100644 --- a/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java +++ b/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java @@ -159,7 +159,7 @@ public class PendingTradesView extends ActivatableViewAndModel table.requestFocus()); + Platform.runLater(table::requestFocus); table.getFocusModel().focus(model.selectedIndex.get()); txIdTextField.setup(model.getWalletService(), model.txId.get()); selectedIndexChangeListener.changed(null, null, model.selectedIndex.get()); diff --git a/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java b/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java index 177bab0f46..d5bf153d0e 100644 --- a/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java +++ b/core/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java @@ -182,6 +182,7 @@ class PendingTradesViewModel extends ActivatableWithDataModel @FXML Tab preferencesTab, networkSettingsTab; - private Preferences preferences; private Navigation.Listener navigationListener; private ChangeListener tabChangeListener; @@ -48,10 +46,9 @@ public class SettingsView extends ActivatableViewAndModel private final Navigation navigation; @Inject - public SettingsView(CachingViewLoader viewLoader, Navigation navigation, Preferences preferences) { + public SettingsView(CachingViewLoader viewLoader, Navigation navigation) { this.viewLoader = viewLoader; this.navigation = navigation; - this.preferences = preferences; } @Override diff --git a/core/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java b/core/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java index ce42a7f142..75a382cc91 100644 --- a/core/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java +++ b/core/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java @@ -69,9 +69,8 @@ class CreateOfferDataModel implements Activatable, DataModel { private final TradeManager tradeManager; private final WalletService walletService; - private ArbitratorService arbitratorService; private final AccountSettings accountSettings; - private Preferences preferences; + private final Preferences preferences; private final BSFormatter formatter; private final String offerId; @@ -111,7 +110,7 @@ class CreateOfferDataModel implements Activatable, DataModel { AccountSettings accountSettings, Preferences preferences, User user, BSFormatter formatter) { this.tradeManager = tradeManager; this.walletService = walletService; - this.arbitratorService = arbitratorService; + ArbitratorService arbitratorService1 = arbitratorService; this.accountSettings = accountSettings; this.preferences = preferences; this.formatter = formatter; @@ -151,8 +150,7 @@ class CreateOfferDataModel implements Activatable, DataModel { // might be changed after screen change if (accountSettings != null) { // set it here again to cover the case of an securityDeposit change after a screen change - if (accountSettings != null) - securityDepositAsCoin.set(accountSettings.getSecurityDeposit()); + securityDepositAsCoin.set(accountSettings.getSecurityDeposit()); acceptedCountries.setAll(accountSettings.getAcceptedCountries()); acceptedLanguageCodes.setAll(accountSettings.getAcceptedLanguageLocaleCodes()); diff --git a/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java b/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java index 434857f290..6c5570489a 100644 --- a/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java +++ b/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java @@ -125,7 +125,7 @@ class TakeOfferDataModel implements Activatable, DataModel { } void takeOffer(TakeOfferResultHandler handler) { - tradeManager.requestTakeOffer(amountAsCoin.get(), offer, (trade) -> handler.handleResult(trade)); + tradeManager.requestTakeOffer(amountAsCoin.get(), offer, handler::handleResult); } void calculateVolume() { diff --git a/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java b/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java index 87c74ead24..101442bc1c 100644 --- a/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java +++ b/core/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java @@ -47,7 +47,7 @@ import static javafx.beans.binding.Bindings.createStringBinding; class TakeOfferViewModel extends ActivatableWithDataModel implements ViewModel { private static final Logger log = LoggerFactory.getLogger(TakeOfferViewModel.class); - public static enum State { + public enum State { CHECK_AVAILABILITY, AMOUNT_SCREEN, PAYMENT_SCREEN, @@ -219,6 +219,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel im break; case DEPOSIT_PUBLISHED: case DEPOSIT_CONFIRMED: + assert takerTrade.getDepositTx() != null; transactionId.set(takerTrade.getDepositTx().getHashAsString()); applyTakeOfferRequestResult(true); break; diff --git a/core/src/main/java/io/bitsquare/gui/util/BSFormatter.java b/core/src/main/java/io/bitsquare/gui/util/BSFormatter.java index ae5fbe4f87..31fb767794 100644 --- a/core/src/main/java/io/bitsquare/gui/util/BSFormatter.java +++ b/core/src/main/java/io/bitsquare/gui/util/BSFormatter.java @@ -73,7 +73,7 @@ public class BSFormatter { // format is like: 1,00 never more then 2 decimals private final MonetaryFormat fiatFormat = MonetaryFormat.FIAT.repeatOptionalDecimals(0, 0).code(0, currencyCode); - private ArbitrationRepository arbitrationRepository; + private final ArbitrationRepository arbitrationRepository; @Inject @@ -131,8 +131,7 @@ public class BSFormatter { try { return coinFormat.noCode().format(coin).toString(); } catch (Throwable t) { - if (coin != null) - log.warn("Exception at formatBtc: " + t.toString()); + log.warn("Exception at formatBtc: " + t.toString()); return ""; } } @@ -148,8 +147,7 @@ public class BSFormatter { // pre and post fixing return coinFormat.postfixCode().format(coin).toString(); } catch (Throwable t) { - if (coin != null) - log.warn("Exception at formatBtcWithCode: " + t.toString()); + log.warn("Exception at formatBtcWithCode: " + t.toString()); return ""; } } @@ -159,12 +157,11 @@ public class BSFormatter { } public Coin parseToCoin(String input) { - if (input != null) { + if (input != null && input.length() > 0) { try { return coinFormat.parse(cleanInput(input)); } catch (Throwable t) { - if (input != null && input.length() > 0) - log.warn("Exception at parseToBtc: " + t.toString()); + log.warn("Exception at parseToBtc: " + t.toString()); return Coin.ZERO; } } @@ -217,8 +214,7 @@ public class BSFormatter { try { return fiatFormat.noCode().format(fiat).toString(); } catch (Throwable t) { - if (fiat != null) - log.warn("Exception at formatFiat: " + t.toString()); + log.warn("Exception at formatFiat: " + t.toString()); return ""; } } @@ -232,8 +228,7 @@ public class BSFormatter { try { return fiatFormat.postfixCode().format(fiat).toString(); } catch (Throwable t) { - if (fiat != null) - log.warn("Exception at formatFiatWithCode: " + t.toString()); + log.warn("Exception at formatFiatWithCode: " + t.toString()); return ""; } } @@ -243,12 +238,11 @@ public class BSFormatter { } public Fiat parseToFiat(String input) { - if (input != null) { + if (input != null && input.length() > 0) { try { return Fiat.parseFiat(currencyCode, cleanInput(input)); } catch (Exception e) { - if (input != null && input.length() > 0) - log.warn("Exception at parseToFiat: " + e.toString()); + log.warn("Exception at parseToFiat: " + e.toString()); return Fiat.valueOf(currencyCode, 0); } @@ -268,12 +262,11 @@ public class BSFormatter { */ public Fiat parseToFiatWith2Decimals(String input) { - if (input != null) { + if (input != null && input.length() > 0) { try { return parseToFiat(new BigDecimal(cleanInput(input)).setScale(2, BigDecimal.ROUND_HALF_UP).toString()); } catch (Throwable t) { - if (input != null && input.length() > 0) - log.warn("Exception at parseCoinTo4Decimals: " + t.toString()); + log.warn("Exception at parseCoinTo4Decimals: " + t.toString()); return Fiat.valueOf(currencyCode, 0); } @@ -317,7 +310,7 @@ public class BSFormatter { } public String arbitratorsToNames(List arbitrators) { - return arbitrators.stream().map(e -> e.getName()).collect(Collectors.joining(", ")); + return arbitrators.stream().map(Arbitrator::getName).collect(Collectors.joining(", ")); } public String arbitratorIdsToNames(List ids) { @@ -325,7 +318,7 @@ public class BSFormatter { } public String languageCodesToString(List languageLocales) { - return languageLocales.stream().map(e -> LanguageUtil.getDisplayName(e)).collect(Collectors.joining(", ")); + return languageLocales.stream().map(LanguageUtil::getDisplayName).collect(Collectors.joining(", ")); } public String arbitrationMethodsToString(List methods) { diff --git a/core/src/main/java/io/bitsquare/gui/util/Transitions.java b/core/src/main/java/io/bitsquare/gui/util/Transitions.java index 9afc5bcfa5..e8067a6bc8 100644 --- a/core/src/main/java/io/bitsquare/gui/util/Transitions.java +++ b/core/src/main/java/io/bitsquare/gui/util/Transitions.java @@ -36,7 +36,7 @@ public class Transitions { public final static int DEFAULT_DURATION = 400; - private Preferences preferences; + private final Preferences preferences; private Timeline removeBlurTimeLine; @Inject diff --git a/core/src/main/java/io/bitsquare/locale/Country.java b/core/src/main/java/io/bitsquare/locale/Country.java index 6d647819df..e1f5327075 100644 --- a/core/src/main/java/io/bitsquare/locale/Country.java +++ b/core/src/main/java/io/bitsquare/locale/Country.java @@ -44,6 +44,7 @@ public class Country implements Serializable { Country country = (Country) o; if (code != null ? !code.equals(country.code) : country.code != null) return false; + //noinspection SimplifiableIfStatement if (name != null ? !name.equals(country.name) : country.name != null) return false; return !(region != null ? !region.equals(country.region) : country.region != null); diff --git a/core/src/main/java/io/bitsquare/locale/CurrencyUtil.java b/core/src/main/java/io/bitsquare/locale/CurrencyUtil.java index 20ac874c19..537cfc1787 100644 --- a/core/src/main/java/io/bitsquare/locale/CurrencyUtil.java +++ b/core/src/main/java/io/bitsquare/locale/CurrencyUtil.java @@ -26,7 +26,7 @@ import java.util.stream.Collectors; public class CurrencyUtil { public static List getAllCurrencyCodes() { - return getAllCurrencies().stream().map(e -> e.getCurrencyCode()).collect(Collectors.toList()); + return getAllCurrencies().stream().map(Currency::getCurrencyCode).collect(Collectors.toList()); } public static String getDefaultCurrencyAsCode() { diff --git a/core/src/main/java/io/bitsquare/locale/LanguageUtil.java b/core/src/main/java/io/bitsquare/locale/LanguageUtil.java index 1a1186121c..925f46b726 100644 --- a/core/src/main/java/io/bitsquare/locale/LanguageUtil.java +++ b/core/src/main/java/io/bitsquare/locale/LanguageUtil.java @@ -33,7 +33,7 @@ public class LanguageUtil { new Locale(locale.getLanguage(), "").getISO3Language()).collect(Collectors.toSet()); List allLocaleCodes = new ArrayList<>(); allLocaleCodes.addAll(allLocaleCodesAsSet); - allLocaleCodes.sort((locale1, locale2) -> locale1.compareTo(locale2)); + allLocaleCodes.sort(String::compareTo); return allLocaleCodes; } diff --git a/core/src/main/java/io/bitsquare/locale/Region.java b/core/src/main/java/io/bitsquare/locale/Region.java index 70a2879bd8..04242029b9 100644 --- a/core/src/main/java/io/bitsquare/locale/Region.java +++ b/core/src/main/java/io/bitsquare/locale/Region.java @@ -41,6 +41,7 @@ public class Region implements Serializable { Region region = (Region) o; + //noinspection SimplifiableIfStatement if (code != null ? !code.equals(region.code) : region.code != null) return false; return !(name != null ? !name.equals(region.name) : region.name != null); diff --git a/core/src/main/java/io/bitsquare/offer/Offer.java b/core/src/main/java/io/bitsquare/offer/Offer.java index 48749fd0f9..2deff1a0a4 100644 --- a/core/src/main/java/io/bitsquare/offer/Offer.java +++ b/core/src/main/java/io/bitsquare/offer/Offer.java @@ -133,7 +133,7 @@ public class Offer implements Serializable { stateProperty = new SimpleObjectProperty<>(state); } - public void validate() throws Exception { + public void validate() { checkNotNull(getAcceptedCountries(), "AcceptedCountries is null"); checkNotNull(getAcceptedLanguageCodes(), "AcceptedLanguageLocales is null"); checkNotNull(getAmount(), "Amount is null"); diff --git a/core/src/main/java/io/bitsquare/offer/OfferBook.java b/core/src/main/java/io/bitsquare/offer/OfferBook.java index 488e3f7e1b..d3739d8844 100644 --- a/core/src/main/java/io/bitsquare/offer/OfferBook.java +++ b/core/src/main/java/io/bitsquare/offer/OfferBook.java @@ -86,7 +86,7 @@ public class OfferBook { public void onOffersReceived(List offers) { //TODO use deltas instead replacing the whole list offerBookListItems.clear(); - offers.stream().forEach(e -> addOfferToOfferBookListItems(e)); + offers.stream().forEach(OfferBook.this::addOfferToOfferBookListItems); } @Override diff --git a/core/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferBookService.java b/core/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferBookService.java index ef34b75921..66b5f95e2a 100644 --- a/core/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferBookService.java +++ b/core/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferBookService.java @@ -286,10 +286,10 @@ public class TomP2POfferBookService extends TomP2PDHTService implements OfferBoo log.error("Get invalidationTimestamp from DHT failed. Data = " + data); } } - else if (futureGet.data() == null) { + /*else if (futureGet.data() == null) { // OK as nothing is set at the moment - // log.trace("Get invalidationTimestamp from DHT returns null. That is ok for the startup."); - } + log.trace("Get invalidationTimestamp from DHT returns null. That is ok for the startup."); + }*/ else { log.error("Get invalidationTimestamp from DHT failed with reason:" + futureGet.failedReason()); } diff --git a/core/src/main/java/io/bitsquare/p2p/ClientNode.java b/core/src/main/java/io/bitsquare/p2p/ClientNode.java index afb0a59eb2..d3d96e25c4 100644 --- a/core/src/main/java/io/bitsquare/p2p/ClientNode.java +++ b/core/src/main/java/io/bitsquare/p2p/ClientNode.java @@ -28,5 +28,5 @@ public interface ClientNode { Node getBootstrapNodeAddress(); - public Observable bootstrap(KeyPair keyPair); + Observable bootstrap(KeyPair keyPair); } diff --git a/core/src/main/java/io/bitsquare/p2p/EncryptedMailboxMessage.java b/core/src/main/java/io/bitsquare/p2p/EncryptedMailboxMessage.java index 5f702c8e73..d6be9c33a6 100644 --- a/core/src/main/java/io/bitsquare/p2p/EncryptedMailboxMessage.java +++ b/core/src/main/java/io/bitsquare/p2p/EncryptedMailboxMessage.java @@ -31,7 +31,7 @@ public class EncryptedMailboxMessage implements MailboxMessage, Serializable { private static final long serialVersionUID = -3111178895546299769L; private static final Logger log = LoggerFactory.getLogger(EncryptedMailboxMessage.class); - private Bucket bucket; + private final Bucket bucket; public EncryptedMailboxMessage(Bucket bucket) { this.bucket = bucket; diff --git a/core/src/main/java/io/bitsquare/p2p/NetworkException.java b/core/src/main/java/io/bitsquare/p2p/NetworkException.java index 859a1f6b53..7060e8a31b 100644 --- a/core/src/main/java/io/bitsquare/p2p/NetworkException.java +++ b/core/src/main/java/io/bitsquare/p2p/NetworkException.java @@ -22,6 +22,8 @@ import java.io.IOException; @SuppressWarnings("serializable") public class NetworkException extends IOException { + private static final long serialVersionUID = 3635593267998809977L; + public NetworkException(Throwable cause) { super(cause); } diff --git a/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java b/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java index d3d48c39b4..9c2fe6d879 100644 --- a/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java +++ b/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java @@ -78,7 +78,7 @@ public class BootstrappedPeerBuilder { private KeyPair keyPair; private final int port; - private boolean useManualPortForwarding; + private final boolean useManualPortForwarding; private final Node bootstrapNode; private final String networkInterface; diff --git a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMailboxService.java b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMailboxService.java index f973277b92..9d0881abbd 100644 --- a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMailboxService.java +++ b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMailboxService.java @@ -153,9 +153,7 @@ public class TomP2PMailboxService extends TomP2PDHTService implements MailboxSer // it might change in future to something like foundAndRemoved and notFound // See discussion at: https://github.com/tomp2p/TomP2P/issues/57#issuecomment-62069840 log.trace("isRemoved? " + futureRemove.isRemoved()); - executor.execute(() -> { - resultHandler.handleResult(); - }); + executor.execute(resultHandler::handleResult); } @Override diff --git a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java index 8474d52c93..3cc36cfb31 100644 --- a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java +++ b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java @@ -27,7 +27,6 @@ import io.bitsquare.p2p.MessageHandler; import io.bitsquare.p2p.MessageService; import io.bitsquare.p2p.Peer; import io.bitsquare.p2p.listener.SendMessageListener; -import io.bitsquare.user.User; import java.security.PublicKey; @@ -46,9 +45,8 @@ public class TomP2PMessageService extends TomP2PService implements MessageServic private static final Logger log = LoggerFactory.getLogger(TomP2PMessageService.class); private final CopyOnWriteArrayList messageHandlers = new CopyOnWriteArrayList<>(); - private MailboxService mailboxService; - private User user; - private EncryptionService encryptionService; + private final MailboxService mailboxService; + private final EncryptionService encryptionService; /////////////////////////////////////////////////////////////////////////////////////////// @@ -56,10 +54,9 @@ public class TomP2PMessageService extends TomP2PService implements MessageServic /////////////////////////////////////////////////////////////////////////////////////////// @Inject - public TomP2PMessageService(TomP2PNode tomP2PNode, MailboxService mailboxService, User user, EncryptionService encryptionService) { + public TomP2PMessageService(TomP2PNode tomP2PNode, MailboxService mailboxService, EncryptionService encryptionService) { super(tomP2PNode); this.mailboxService = mailboxService; - this.user = user; this.encryptionService = encryptionService; } diff --git a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PNode.java b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PNode.java index c926eb16de..9478563480 100644 --- a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PNode.java +++ b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PNode.java @@ -55,7 +55,7 @@ public class TomP2PNode implements ClientNode { private PeerDHT peerDHT; private BootstrappedPeerBuilder bootstrappedPeerBuilder; private final Subject bootstrapStateSubject; - private List resultHandlers = new CopyOnWriteArrayList<>(); + private final List resultHandlers = new CopyOnWriteArrayList<>(); /////////////////////////////////////////////////////////////////////////////////////////// @@ -94,7 +94,7 @@ public class TomP2PNode implements ClientNode { public void onSuccess(@Nullable PeerDHT peerDHT) { if (peerDHT != null) { TomP2PNode.this.peerDHT = peerDHT; - resultHandlers.stream().forEach(e -> e.handleResult()); + resultHandlers.stream().forEach(ResultHandler::handleResult); bootstrapStateSubject.onCompleted(); } else { diff --git a/core/src/main/java/io/bitsquare/storage/FileManager.java b/core/src/main/java/io/bitsquare/storage/FileManager.java index 6b6c45a48f..728c5ababe 100644 --- a/core/src/main/java/io/bitsquare/storage/FileManager.java +++ b/core/src/main/java/io/bitsquare/storage/FileManager.java @@ -100,6 +100,7 @@ public class FileManager { .setNameFormat("FileManager thread") .setPriority(Thread.MIN_PRIORITY); // Avoid competing with the GUI thread. + //noinspection Convert2Lambda builder.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable throwable) { @@ -118,17 +119,14 @@ public class FileManager { this.delay = delay; this.delayTimeUnit = checkNotNull(delayTimeUnit); - this.saver = new Callable() { - @Override - public Void call() throws Exception { - // Runs in an auto save thread. - if (!savePending.getAndSet(false)) { - // Some other scheduled request already beat us to it. - return null; - } - saveNowInternal(serializable); + this.saver = () -> { + // Runs in an auto save thread. + if (!savePending.getAndSet(false)) { + // Some other scheduled request already beat us to it. return null; } + saveNowInternal(serializable); + return null; }; Runtime.getRuntime().addShutdownHook(new Thread() { @@ -165,11 +163,11 @@ public class FileManager { executor.schedule(saver, delay, delayTimeUnit); } - public Object read(File file) throws IOException, ClassNotFoundException { + public T read(File file) throws IOException, ClassNotFoundException { lock.lock(); try (final FileInputStream fileInputStream = new FileInputStream(file); final ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream)) { - return objectInputStream.readObject(); + return (T) objectInputStream.readObject(); } finally { lock.unlock(); } @@ -213,7 +211,8 @@ public class FileManager { public void removeAndBackupFile(String fileName) throws IOException { File corruptedBackupDir = new File(Paths.get(dir.getAbsolutePath(), "corrupted").toString()); if (!corruptedBackupDir.exists()) - corruptedBackupDir.mkdir(); + if (!corruptedBackupDir.mkdir()) + log.warn("make dir failed"); File corruptedFile = new File(Paths.get(dir.getAbsolutePath(), "corrupted", fileName).toString()); renameTempFileToFile(storageFile, corruptedFile); @@ -222,7 +221,8 @@ public class FileManager { public void backupFile(String fileName) throws IOException { File backupDir = new File(Paths.get(dir.getAbsolutePath(), "backup").toString()); if (!backupDir.exists()) - backupDir.mkdir(); + if (!backupDir.mkdir()) + log.warn("make dir failed"); File backupFile = new File(Paths.get(dir.getAbsolutePath(), "backup", fileName).toString()); Files.copy(storageFile, backupFile); @@ -232,20 +232,21 @@ public class FileManager { // Private /////////////////////////////////////////////////////////////////////////////////////////// - private void saveNowInternal(T serializable) throws IOException { + private void saveNowInternal(T serializable) { long now = System.currentTimeMillis(); saveToFile(serializable, dir, storageFile); log.info("Save {} completed in {}msec", storageFile, System.currentTimeMillis() - now); } - private void saveToFile(T serializable, File dir, File storageFile) throws IOException { + private void saveToFile(T serializable, File dir, File storageFile) { lock.lock(); File tempFile = null; FileOutputStream fileOutputStream = null; ObjectOutputStream objectOutputStream = null; try { if (!dir.exists()) - dir.mkdir(); + if (!dir.mkdir()) + log.warn("make dir failed"); tempFile = File.createTempFile("temp", null, dir); diff --git a/core/src/main/java/io/bitsquare/storage/Storage.java b/core/src/main/java/io/bitsquare/storage/Storage.java index 6983282f69..2b535ba0fb 100644 --- a/core/src/main/java/io/bitsquare/storage/Storage.java +++ b/core/src/main/java/io/bitsquare/storage/Storage.java @@ -111,7 +111,7 @@ public class Storage { if (storageFile.exists()) { long now = System.currentTimeMillis(); try { - T persistedObject = (T) fileManager.read(storageFile); + T persistedObject = fileManager.read(storageFile); log.info("Read {} completed in {}msec", serializable.getClass().getSimpleName(), System.currentTimeMillis() - now); // If we did not get any exception we can be sure the data are consistent so we make a backup diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/OffererTradeTask.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/OffererTradeTask.java index bf7ede4d46..31047fd492 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/OffererTradeTask.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/OffererTradeTask.java @@ -41,6 +41,6 @@ class OffererTradeTask extends Task { } @Override - protected void doRun() throws WalletException, TransactionVerificationException, SigningException { + protected void doRun() { } } diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/TakerTradeTask.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/TakerTradeTask.java index 60479de946..87c154ed26 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/TakerTradeTask.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/TakerTradeTask.java @@ -41,6 +41,6 @@ class TakerTradeTask extends Task { } @Override - protected void doRun() throws WalletException, TransactionVerificationException, SigningException { + protected void doRun() { } } diff --git a/core/src/main/java/io/bitsquare/user/AccountSettings.java b/core/src/main/java/io/bitsquare/user/AccountSettings.java index e4316ebd09..4acb9957ee 100644 --- a/core/src/main/java/io/bitsquare/user/AccountSettings.java +++ b/core/src/main/java/io/bitsquare/user/AccountSettings.java @@ -40,7 +40,7 @@ public class AccountSettings implements Serializable { // That object is saved to disc. We need to take care of changes to not break deserialization. private static final long serialVersionUID = 1L; - transient private Storage storage; + final transient private Storage storage; // Persisted fields private List acceptedLanguageLocaleCodes = new ArrayList<>(); @@ -119,7 +119,7 @@ public class AccountSettings implements Serializable { } public List getAcceptedArbitratorIds() { - return acceptedArbitrators.stream().map(e -> e.getId()).collect(Collectors.toList()); + return acceptedArbitrators.stream().map(Arbitrator::getId).collect(Collectors.toList()); } public List getAcceptedLanguageLocaleCodes() { diff --git a/core/src/main/java/io/bitsquare/user/User.java b/core/src/main/java/io/bitsquare/user/User.java index 4cf5473423..2aeb8b59eb 100644 --- a/core/src/main/java/io/bitsquare/user/User.java +++ b/core/src/main/java/io/bitsquare/user/User.java @@ -57,7 +57,6 @@ public class User implements Serializable { transient private static final Logger log = LoggerFactory.getLogger(User.class); transient private Storage storage; - transient private EncryptionService encryptionService; // Persisted fields private KeyPair p2pSigKeyPair; @@ -67,13 +66,13 @@ public class User implements Serializable { private FiatAccount currentFiatAccount; // Observable wrappers - transient private ObservableList fiatAccountsObservableList = FXCollections.observableArrayList(fiatAccounts); - transient private ObjectProperty currentFiatAccountProperty = new SimpleObjectProperty<>(currentFiatAccount); + final transient private ObservableList fiatAccountsObservableList = FXCollections.observableArrayList(fiatAccounts); + final transient private ObjectProperty currentFiatAccountProperty = new SimpleObjectProperty<>(currentFiatAccount); @Inject public User(Storage storage, EncryptionService encryptionService) { this.storage = storage; - this.encryptionService = encryptionService; + EncryptionService encryptionService1 = encryptionService; User persisted = storage.initAndGetPersisted(this); if (persisted != null) { diff --git a/core/src/main/java/io/bitsquare/util/DSAKeyUtil.java b/core/src/main/java/io/bitsquare/util/DSAKeyUtil.java index 78a8040a5a..775bbe4e0c 100755 --- a/core/src/main/java/io/bitsquare/util/DSAKeyUtil.java +++ b/core/src/main/java/io/bitsquare/util/DSAKeyUtil.java @@ -31,18 +31,10 @@ import org.slf4j.LoggerFactory; public class DSAKeyUtil { private static final Logger log = LoggerFactory.getLogger(DSAKeyUtil.class); - public static PublicKey decodePubKeyHex(String pubKeyHex) { + public static PublicKey decodePubKeyHex(String pubKeyHex) throws NoSuchAlgorithmException, InvalidKeySpecException { X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(Utils.HEX.decode(pubKeyHex)); - try { - KeyFactory keyFactory = KeyFactory.getInstance("DSA"); - return keyFactory.generatePublic(pubKeySpec); - } catch (NoSuchAlgorithmException e) { - log.error("could not find algorithm", e); - return null; - } catch (InvalidKeySpecException e) { - log.error("wrong keyspec", e); - return null; - } + KeyFactory keyFactory = KeyFactory.getInstance("DSA"); + return keyFactory.generatePublic(pubKeySpec); } public static String encodePubKeyToHex(PublicKey pubKey) { diff --git a/core/src/main/java/io/bitsquare/util/DesktopUtil.java b/core/src/main/java/io/bitsquare/util/DesktopUtil.java index 208e0a24c1..68f9a5a91e 100644 --- a/core/src/main/java/io/bitsquare/util/DesktopUtil.java +++ b/core/src/main/java/io/bitsquare/util/DesktopUtil.java @@ -18,9 +18,8 @@ class DesktopUtil { if (openSystemSpecific(uri.toString())) return true; - if (browseDESKTOP(uri)) return true; + return browseDESKTOP(uri); - return false; } @@ -28,9 +27,8 @@ class DesktopUtil { if (openSystemSpecific(file.getPath())) return true; - if (openDESKTOP(file)) return true; + return openDESKTOP(file); - return false; } @@ -42,9 +40,8 @@ class DesktopUtil { if (openSystemSpecific(file.getPath())) return true; - if (editDESKTOP(file)) return true; + return editDESKTOP(file); - return false; } @@ -175,7 +172,7 @@ class DesktopUtil { private static String[] prepareCommand(String command, String args, String file) { - List parts = new ArrayList(); + List parts = new ArrayList<>(); parts.add(command); if (args != null) { @@ -202,7 +199,7 @@ class DesktopUtil { System.out.println(msg); } - public static enum EnumOS { + public enum EnumOS { linux, macos, solaris, unknown, windows; public boolean isLinux() { diff --git a/core/src/main/java/io/bitsquare/util/Utilities.java b/core/src/main/java/io/bitsquare/util/Utilities.java index 24bf63f0a4..0265e78534 100644 --- a/core/src/main/java/io/bitsquare/util/Utilities.java +++ b/core/src/main/java/io/bitsquare/util/Utilities.java @@ -152,7 +152,7 @@ public class Utilities { return result; } - public static Object byteArrayToObject(byte[] data) { + public static T byteArrayToObject(byte[] data) { ByteArrayInputStream bis = new ByteArrayInputStream(data); ObjectInput in = null; Object result = null; @@ -175,7 +175,7 @@ public class Utilities { // ignore close exception } } - return result; + return (T) result; } public static byte[] objectToBytArray(Object object) { @@ -249,17 +249,16 @@ public class Utilities { if (folder.isDirectory()) { File[] list = folder.listFiles(); if (list != null) { - for (int i = 0; i < list.length; i++) { - File tmpF = list[i]; + for (File tmpF : list) { if (tmpF.isDirectory()) { removeDirectory(tmpF); } - tmpF.delete(); + if (!tmpF.delete()) + log.warn("can't delete file : " + tmpF); } } - if (!folder.delete()) { + if (!folder.delete()) log.warn("can't delete folder : " + folder); - } } } diff --git a/core/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java b/core/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java index fe5825dda0..af4437bffe 100644 --- a/core/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java +++ b/core/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java @@ -17,9 +17,9 @@ package io.bitsquare.util.spring; -import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; import joptsimple.OptionSet; @@ -38,10 +38,8 @@ public class JOptCommandLinePropertySource extends org.springframework.core.env. @Override public List getOptionValues(String name) { List argValues = this.source.valuesOf(name); - List stringArgValues = new ArrayList<>(); - for (Object argValue : argValues) { - stringArgValues.add(argValue instanceof String ? (String) argValue : argValue.toString()); - } + List stringArgValues = argValues.stream().map(argValue -> argValue instanceof String ? (String) argValue : argValue.toString()).collect + (Collectors.toList()); if (stringArgValues.isEmpty()) { return (this.source.has(name) ? Collections.emptyList() : null); } diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 7cc435c235..53b0a33eaf 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -121,7 +121,7 @@ takeOffer.advancedBox.txType=Payments method: takeOffer.advancedBox.currency=Currency: takeOffer.advancedBox.county=Payments account country: takeOffer.advancedBox.info=These are the offer restrictions your trading partner has defined in his offer. Your \ - settings are matching those constraints and you are able to trade with him. + settings are matching those constraints and you are able to trade with him. takeOffer.success.headline=Your have successfully published the deposit. takeOffer.success.info=You need to wait now for the Bitcoin buyer to transfer the money to you. \nYou will get a \