diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/InstallerPanel.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/InstallerPanel.java index 4c6aa963a..142063f19 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/InstallerPanel.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/InstallerPanel.java @@ -42,7 +42,7 @@ public class InstallerPanel extends Page { /** * Creates new form InstallerPanel * - * @param gsp To get the minecraft version + * @param gsp To get the minecraft version * @param installerType load which installer */ public InstallerPanel(GameSettingsPanel gsp, InstallerType installerType) { @@ -122,7 +122,11 @@ public class InstallerPanel extends Page { InstallerType id; Task refreshVersionsTask() { - return list.refresh(new String[] { gsp.getMinecraftVersionFormatted() }).after(new TaskRunnable(this::loadVersions)); + Task t = list.refresh(new String[] { gsp.getMinecraftVersionFormatted() }); + if (t != null) + return t.after(new TaskRunnable(this::loadVersions)); + else + return null; } public synchronized InstallerVersionList.InstallerVersion getVersion(int idx) { diff --git a/HMCSM/src/main/java/org/jackhuang/hellominecraft/svrmgr/util/WaitForThread.java b/HMCSM/src/main/java/org/jackhuang/hellominecraft/svrmgr/util/WaitForThread.java index 30b31f411..430692a02 100755 --- a/HMCSM/src/main/java/org/jackhuang/hellominecraft/svrmgr/util/WaitForThread.java +++ b/HMCSM/src/main/java/org/jackhuang/hellominecraft/svrmgr/util/WaitForThread.java @@ -17,9 +17,8 @@ */ package org.jackhuang.hellominecraft.svrmgr.util; -import java.util.logging.Level; -import java.util.logging.Logger; import org.jackhuang.hellominecraft.util.EventHandler; +import org.jackhuang.hellominecraft.util.logging.HMCLog; /** * @@ -40,7 +39,7 @@ public class WaitForThread extends Thread { int exitCode = p.waitFor(); event.execute(exitCode); } catch (InterruptedException ex) { - Logger.getLogger(WaitForThread.class.getName()).log(Level.SEVERE, null, ex); + HMCLog.err("Game has been interrupted.", ex); event.execute(-1); } } diff --git a/HMCUtils/src/main/java/org/jackhuang/hellominecraft/util/tasks/TaskList.java b/HMCUtils/src/main/java/org/jackhuang/hellominecraft/util/tasks/TaskList.java index 11408d5a5..7e06bf5f3 100755 --- a/HMCUtils/src/main/java/org/jackhuang/hellominecraft/util/tasks/TaskList.java +++ b/HMCUtils/src/main/java/org/jackhuang/hellominecraft/util/tasks/TaskList.java @@ -112,9 +112,10 @@ public class TaskList extends Thread { } try { counter.await(); - } catch (InterruptedException ignore) { + return bool.get(); + } catch (InterruptedException ignore) { // this task is canceled, so failed. + return false; } - return bool.get(); } private boolean executeTask(Task t) {