From 4fa01216b1fb8057c3028bead7327b33389ee081 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Sat, 30 Jun 2018 22:09:35 +0800 Subject: [PATCH] Add debug message for tracing EmptyStackException and IllegalStateException --- .../hmcl/ui/download/DownloadWizardProvider.java | 4 ++-- .../jackhuang/hmcl/ui/wizard/WizardController.java | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java index 49d540a74..00cb98ed9 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java @@ -102,10 +102,10 @@ public final class DownloadWizardProvider implements WizardProvider { case 1: return new ModpackPage(controller); default: - throw new IllegalStateException("Error step " + step + ", subStep " + subStep + ", settings: " + settings); + throw new IllegalStateException("Error step " + step + ", subStep " + subStep + ", settings: " + settings + ", pages: " + controller.getPages()); } default: - throw new IllegalStateException("error step " + step + ", settings: " + settings); + throw new IllegalStateException("error step " + step + ", settings: " + settings + ", pages: " + controller.getPages()); } } 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 85f8725b8..f348e7462 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 @@ -20,10 +20,7 @@ package org.jackhuang.hmcl.ui.wizard; import javafx.scene.Node; import org.jackhuang.hmcl.task.Task; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Stack; +import java.util.*; public class WizardController implements Navigation { private final WizardDisplayer displayer; @@ -47,6 +44,10 @@ public class WizardController implements Navigation { this.provider = provider; } + public List getPages() { + return Collections.unmodifiableList(pages); + } + @Override public void onStart() { Objects.requireNonNull(provider); @@ -81,6 +82,10 @@ public class WizardController implements Navigation { @Override public void onPrev(boolean cleanUp) { + if (!canPrev()) { + throw new IllegalStateException("Cannot go backward since this is the back page. Pages: " + pages); + } + Node page = pages.pop(); if (cleanUp && page instanceof WizardPage) ((WizardPage) page).cleanup(settings);