From b53a3ebcc2a361339b647e70d73aff8c09afad78 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Wed, 29 Apr 2020 22:58:25 +0800 Subject: [PATCH] alt: add logs to figure out the reason why app crashes. --- .../org/jackhuang/hmcl/ui/wizard/WizardController.java | 5 +++++ .../java/org/jackhuang/hmcl/task/AsyncTaskExecutor.java | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/WizardController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/WizardController.java index bcaa92a07..702cf4ec6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/WizardController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/WizardController.java @@ -19,6 +19,7 @@ package org.jackhuang.hmcl.ui.wizard; import javafx.scene.Node; import org.jackhuang.hmcl.task.Task; +import org.jackhuang.hmcl.util.Logging; import java.util.*; @@ -63,6 +64,8 @@ public class WizardController implements Navigation { ((WizardPage) page).onNavigate(settings); displayer.onStart(); + + Logging.LOG.info("Navigating to " + page + ", pages: " + pages); displayer.navigateTo(page, NavigationDirection.START); } @@ -77,6 +80,7 @@ public class WizardController implements Navigation { if (page instanceof WizardPage) ((WizardPage) page).onNavigate(settings); + Logging.LOG.info("Navigating to " + page + ", pages: " + pages); displayer.navigateTo(page, NavigationDirection.NEXT); } @@ -99,6 +103,7 @@ public class WizardController implements Navigation { if (prevPage instanceof WizardPage) ((WizardPage) prevPage).onNavigate(settings); + Logging.LOG.info("Navigating to " + prevPage + ", pages: " + pages); displayer.navigateTo(prevPage, NavigationDirection.PREVIOUS); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/AsyncTaskExecutor.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/AsyncTaskExecutor.java index 6cadd3d85..a3b28474b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/AsyncTaskExecutor.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/AsyncTaskExecutor.java @@ -22,12 +22,12 @@ import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.Logging; import org.jackhuang.hmcl.util.function.ExceptionalRunnable; -import java.util.Collection; -import java.util.Collections; +import java.util.*; import java.util.concurrent.CancellationException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; import java.util.concurrent.ExecutionException; +import java.util.concurrent.RejectedExecutionException; import java.util.logging.Level; /** @@ -56,7 +56,8 @@ public final class AsyncTaskExecutor extends TaskExecutor { Throwable resolvedException = resolveException(exception); if (resolvedException instanceof RuntimeException && !(resolvedException instanceof CancellationException) && - !(resolvedException instanceof JsonParseException)) { + !(resolvedException instanceof JsonParseException) && + !(resolvedException instanceof RejectedExecutionException)) { // Track uncaught RuntimeException which are thrown mostly by our mistake if (uncaughtExceptionHandler != null) uncaughtExceptionHandler.uncaughtException(Thread.currentThread(), resolvedException);