diff --git a/src/main/java/io/bitsquare/gui/main/MainView.java b/src/main/java/io/bitsquare/gui/main/MainView.java index b6bb648822..43dedf1b28 100644 --- a/src/main/java/io/bitsquare/gui/main/MainView.java +++ b/src/main/java/io/bitsquare/gui/main/MainView.java @@ -157,8 +157,10 @@ public class MainView extends ActivatableView { Platform.runLater( () -> model.initBackend().subscribe( - next -> { }, - error -> { }, + next -> { + }, + error -> { + }, () -> Platform.runLater(() -> { bankAccountComboBoxHolder.getChildren().setAll(createBankAccountComboBox()); diff --git a/src/main/java/io/bitsquare/gui/main/MainViewModel.java b/src/main/java/io/bitsquare/gui/main/MainViewModel.java index cba00b332d..4a23ff9363 100644 --- a/src/main/java/io/bitsquare/gui/main/MainViewModel.java +++ b/src/main/java/io/bitsquare/gui/main/MainViewModel.java @@ -159,25 +159,32 @@ class MainViewModel implements ViewModel { () -> Platform.runLater(() -> networkSyncProgress.set(1.0))); Observable message = messageService.init(); + message.publish(); message.subscribe( - state -> Platform.runLater(() -> bootstrapState.set(state)), - error -> log.error(error.toString())); + state -> + Platform.runLater(() -> bootstrapState.set(state)), + error -> log.error(error.toString()), + () -> log.trace("message completed")); Observable wallet = walletService.initialize(Platform::runLater); wallet.subscribe( - next -> { }, + next -> { + }, error -> Platform.runLater(() -> walletServiceException.set(error)), - () -> { }); + () -> log.trace("wallet completed")); Observable backend = Observable.merge(message, wallet); backend.subscribe( - next -> { }, - error -> { }, + next -> { + }, + error -> log.error(error.toString()), () -> Platform.runLater(() -> { + log.trace("backend completed"); tradeManager.getPendingTrades().addListener( (MapChangeListener) change -> updateNumPendingTrades()); updateNumPendingTrades(); - })); + }) + ); return backend; } @@ -207,6 +214,7 @@ class MainViewModel implements ViewModel { private void updateNumPendingTrades() { + log.debug("updateNumPendingTrades " + tradeManager.getPendingTrades().size()); numPendingTrades.set(tradeManager.getPendingTrades().size()); } diff --git a/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerFactory.java b/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerFactory.java index 6eecc33846..eb7689fea5 100644 --- a/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerFactory.java +++ b/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerFactory.java @@ -33,7 +33,6 @@ import java.security.KeyPair; import javax.inject.Inject; -import javafx.application.Platform; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; @@ -331,7 +330,7 @@ class BootstrappedPeerFactory { log.error(message); bootstrapState.setMessage(message); - Platform.runLater(() -> this.bootstrapState.set(bootstrapState)); + this.bootstrapState.set(bootstrapState); } private void handleError(BootstrapState state, String errorMessage) { diff --git a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java b/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java index b2191508e8..9060dcc0af 100644 --- a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java +++ b/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java @@ -114,9 +114,12 @@ public class TomP2PNode implements ClientNode { this.keyPair = keyPair; bootstrappedPeerFactory.setKeyPair(keyPair); - Subject bootstrapState = BehaviorSubject.create(); + Subject bootstrapStateSubject = BehaviorSubject.create(); - bootstrappedPeerFactory.getBootstrapState().addListener((ov, oldValue, newValue) -> bootstrapState.onNext(newValue)); + bootstrappedPeerFactory.getBootstrapState().addListener((ov, oldValue, newValue) -> { + log.debug("BootstrapState changed " + newValue); + bootstrapStateSubject.onNext(newValue); + }); SettableFuture bootstrapFuture = bootstrappedPeerFactory.start(); Futures.addCallback(bootstrapFuture, new FutureCallback() { @@ -129,24 +132,24 @@ public class TomP2PNode implements ClientNode { try { storeAddress(); } catch (NetworkException e) { - bootstrapState.onError(e); + bootstrapStateSubject.onError(e); } - bootstrapState.onCompleted(); + bootstrapStateSubject.onCompleted(); } else { log.error("Error at bootstrap: peerDHT = null"); - bootstrapState.onError(new BitsquareException("Error at bootstrap: peerDHT = null")); + bootstrapStateSubject.onError(new BitsquareException("Error at bootstrap: peerDHT = null")); } } @Override public void onFailure(@NotNull Throwable t) { log.error("Exception at bootstrap " + t.getMessage()); - bootstrapState.onError(t); + bootstrapStateSubject.onError(t); } }); - return bootstrapState.asObservable(); + return bootstrapStateSubject.asObservable(); } public void shutDown() {