mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-08-07 22:22:24 -04:00
show error popup when unrestricted monerod has 0 peers
This commit is contained in:
parent
f4d2646cf3
commit
9f55c5d648
3 changed files with 15 additions and 14 deletions
|
@ -93,7 +93,7 @@ public final class XmrConnectionService {
|
||||||
private final MoneroConnectionManager connectionManager;
|
private final MoneroConnectionManager connectionManager;
|
||||||
private final EncryptedConnectionList connectionList;
|
private final EncryptedConnectionList connectionList;
|
||||||
private final ObjectProperty<List<MoneroRpcConnection>> connections = new SimpleObjectProperty<>();
|
private final ObjectProperty<List<MoneroRpcConnection>> connections = new SimpleObjectProperty<>();
|
||||||
private final IntegerProperty numConnections = new SimpleIntegerProperty(0);
|
private final IntegerProperty numConnections = new SimpleIntegerProperty(-1);
|
||||||
private final ObjectProperty<MoneroRpcConnection> connectionProperty = new SimpleObjectProperty<>();
|
private final ObjectProperty<MoneroRpcConnection> connectionProperty = new SimpleObjectProperty<>();
|
||||||
private final LongProperty chainHeight = new SimpleLongProperty(0);
|
private final LongProperty chainHeight = new SimpleLongProperty(0);
|
||||||
private final DownloadListener downloadListener = new DownloadListener();
|
private final DownloadListener downloadListener = new DownloadListener();
|
||||||
|
@ -845,6 +845,9 @@ public final class XmrConnectionService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get the number of connections, which is only available if not restricted
|
||||||
|
int numOutgoingConnections = Boolean.TRUE.equals(lastInfo.isRestricted()) ? -1 : lastInfo.getNumOutgoingConnections();
|
||||||
|
|
||||||
// update properties on user thread
|
// update properties on user thread
|
||||||
UserThread.execute(() -> {
|
UserThread.execute(() -> {
|
||||||
|
|
||||||
|
@ -870,12 +873,19 @@ public final class XmrConnectionService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
connections.set(availableConnections);
|
connections.set(availableConnections);
|
||||||
numConnections.set(availableConnections.size());
|
numConnections.set(numOutgoingConnections);
|
||||||
|
|
||||||
// notify update
|
// notify update
|
||||||
numUpdates.set(numUpdates.get() + 1);
|
numUpdates.set(numUpdates.get() + 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// invoke error handling if no connections
|
||||||
|
if (numOutgoingConnections == 0) {
|
||||||
|
String errorMsg = "The Monero node has no connected peers. It may be experiencing a network connectivity issue.";
|
||||||
|
log.warn(errorMsg);
|
||||||
|
throw new RuntimeException(errorMsg);
|
||||||
|
}
|
||||||
|
|
||||||
// handle error recovery
|
// handle error recovery
|
||||||
if (lastLogPollErrorTimestamp != null) {
|
if (lastLogPollErrorTimestamp != null) {
|
||||||
log.info("Successfully fetched monerod info after previous error");
|
log.info("Successfully fetched monerod info after previous error");
|
||||||
|
|
|
@ -94,7 +94,7 @@ public class P2PNetworkSetup {
|
||||||
if (warning != null && p2pPeers == 0) {
|
if (warning != null && p2pPeers == 0) {
|
||||||
result = warning;
|
result = warning;
|
||||||
} else {
|
} else {
|
||||||
String p2pInfo = ((int) numXmrPeers > 0 ? Res.get("mainView.footer.xmrPeers", numXmrPeers) + " / " : "") + Res.get("mainView.footer.p2pPeers", numP2pPeers);
|
String p2pInfo = ((int) numXmrPeers >= 0 ? Res.get("mainView.footer.xmrPeers", numXmrPeers) + " / " : "") + Res.get("mainView.footer.p2pPeers", numP2pPeers);
|
||||||
if (dataReceived && hiddenService) {
|
if (dataReceived && hiddenService) {
|
||||||
result = p2pInfo;
|
result = p2pInfo;
|
||||||
} else if (p2pPeers == 0)
|
} else if (p2pPeers == 0)
|
||||||
|
|
|
@ -126,7 +126,6 @@ public class MainView extends InitializableView<StackPane, MainViewModel> {
|
||||||
private Label splashP2PNetworkLabel;
|
private Label splashP2PNetworkLabel;
|
||||||
private ProgressBar xmrSyncIndicator;
|
private ProgressBar xmrSyncIndicator;
|
||||||
private Label xmrSplashInfo;
|
private Label xmrSplashInfo;
|
||||||
private Popup p2PNetworkWarnMsgPopup, xmrNetworkWarnMsgPopup;
|
|
||||||
private final TorNetworkSettingsWindow torNetworkSettingsWindow;
|
private final TorNetworkSettingsWindow torNetworkSettingsWindow;
|
||||||
private final Preferences preferences;
|
private final Preferences preferences;
|
||||||
private static final int networkIconSize = 20;
|
private static final int networkIconSize = 20;
|
||||||
|
@ -713,15 +712,10 @@ public class MainView extends InitializableView<StackPane, MainViewModel> {
|
||||||
if (newValue != null) {
|
if (newValue != null) {
|
||||||
xmrInfoLabel.setId("splash-error-state-msg");
|
xmrInfoLabel.setId("splash-error-state-msg");
|
||||||
xmrInfoLabel.getStyleClass().add("error-text");
|
xmrInfoLabel.getStyleClass().add("error-text");
|
||||||
if (xmrNetworkWarnMsgPopup == null) {
|
new Popup().warning(newValue).show();
|
||||||
xmrNetworkWarnMsgPopup = new Popup().warning(newValue);
|
|
||||||
xmrNetworkWarnMsgPopup.show();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
xmrInfoLabel.setId("footer-pane");
|
xmrInfoLabel.setId("footer-pane");
|
||||||
xmrInfoLabel.getStyleClass().remove("error-text");
|
xmrInfoLabel.getStyleClass().remove("error-text");
|
||||||
if (xmrNetworkWarnMsgPopup != null)
|
|
||||||
xmrNetworkWarnMsgPopup.hide();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -804,10 +798,7 @@ public class MainView extends InitializableView<StackPane, MainViewModel> {
|
||||||
p2PNetworkLabel.idProperty().bind(model.getP2pNetworkLabelId());
|
p2PNetworkLabel.idProperty().bind(model.getP2pNetworkLabelId());
|
||||||
model.getP2pNetworkWarnMsg().addListener((ov, oldValue, newValue) -> {
|
model.getP2pNetworkWarnMsg().addListener((ov, oldValue, newValue) -> {
|
||||||
if (newValue != null) {
|
if (newValue != null) {
|
||||||
p2PNetworkWarnMsgPopup = new Popup().warning(newValue);
|
new Popup().warning(newValue).show();
|
||||||
p2PNetworkWarnMsgPopup.show();
|
|
||||||
} else if (p2PNetworkWarnMsgPopup != null) {
|
|
||||||
p2PNetworkWarnMsgPopup.hide();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
p2PNetworkIcon.setOnMouseClicked(e -> {
|
p2PNetworkIcon.setOnMouseClicked(e -> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue