mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 15:10:44 +01:00
Merge pull request #5011 from chimp1984/show-stacktrace-in-error-popup-at-view-exceptions
Show stacktrace in error popup at view exceptions
This commit is contained in:
commit
115ec78f4d
3 changed files with 24 additions and 5 deletions
|
@ -51,6 +51,7 @@ import bisq.common.UserThread;
|
|||
import bisq.common.app.DevEnv;
|
||||
import bisq.common.app.Log;
|
||||
import bisq.common.app.Version;
|
||||
import bisq.common.config.BaseCurrencyNetwork;
|
||||
import bisq.common.config.Config;
|
||||
import bisq.common.util.InvalidVersionException;
|
||||
import bisq.common.util.Utilities;
|
||||
|
@ -273,7 +274,8 @@ public class BisqSetup {
|
|||
|
||||
public void start() {
|
||||
// If user tried to downgrade we require a shutdown
|
||||
if (hasDowngraded(downGradePreventionHandler)) {
|
||||
if (Config.baseCurrencyNetwork() == BaseCurrencyNetwork.BTC_MAINNET &&
|
||||
hasDowngraded(downGradePreventionHandler)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,9 +23,13 @@ import bisq.desktop.common.view.View;
|
|||
import bisq.desktop.common.view.ViewFactory;
|
||||
import bisq.desktop.common.view.ViewLoader;
|
||||
|
||||
import bisq.common.util.Utilities;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
|
||||
import javafx.fxml.FXMLLoader;
|
||||
|
||||
import java.net.URL;
|
||||
|
@ -36,8 +40,11 @@ import java.util.ResourceBundle;
|
|||
|
||||
import java.lang.annotation.Annotation;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
@Slf4j
|
||||
@Singleton
|
||||
public class FxmlViewLoader implements ViewLoader {
|
||||
|
||||
|
@ -107,9 +114,19 @@ public class FxmlViewLoader implements ViewLoader {
|
|||
"does not implement [%s] as expected.", controller.getClass(), fxmlUrl, View.class);
|
||||
return (View) controller;
|
||||
} catch (IOException ex) {
|
||||
Throwable cause = ex.getCause();
|
||||
if (cause != null) {
|
||||
cause.printStackTrace();
|
||||
log.error(cause.toString());
|
||||
// We want to show stackTrace in error popup
|
||||
String stackTrace = Utilities.toTruncatedString(Joiner.on("\n").join(cause.getStackTrace()), 800, false);
|
||||
throw new ViewfxException(cause, "%s at loading view class\nStack trace:\n%s",
|
||||
cause.getClass().getSimpleName(), stackTrace);
|
||||
} else {
|
||||
throw new ViewfxException(ex, "Failed to load view from FXML file at [%s]", fxmlUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Copied and adapted from Spring Framework v4.3.6's AnnotationUtils#defaultValue
|
||||
|
@ -122,8 +139,7 @@ public class FxmlViewLoader implements ViewLoader {
|
|||
}
|
||||
try {
|
||||
return annotationType.getDeclaredMethod(attributeName).getDefaultValue();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,11 +21,12 @@ import javax.inject.Inject;
|
|||
import javax.inject.Singleton;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Singleton
|
||||
public class CachingViewLoader implements ViewLoader {
|
||||
|
||||
private final HashMap<Object, View> cache = new HashMap<>();
|
||||
private final Map<Class<? extends View>, View> cache = new HashMap<>();
|
||||
private final ViewLoader viewLoader;
|
||||
|
||||
@Inject
|
||||
|
|
Loading…
Add table
Reference in a new issue