From db59dcea65764e0949cfe193310eaabe261141b6 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 2 Dec 2018 13:55:25 +0800 Subject: [PATCH 1/3] Log exception when failing to load version list see https://github.com/huanghongxun/HMCL/issues/489#issuecomment-443427026 --- .../java/org/jackhuang/hmcl/ui/download/VersionsPage.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java index 6e4ff09d1..462c83c91 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java @@ -17,6 +17,8 @@ */ package org.jackhuang.hmcl.ui.download; +import static org.jackhuang.hmcl.util.Logging.LOG; + import com.jfoenix.controls.JFXCheckBox; import com.jfoenix.controls.JFXListView; import com.jfoenix.controls.JFXSpinner; @@ -38,6 +40,7 @@ import org.jackhuang.hmcl.ui.wizard.WizardPage; import java.util.List; import java.util.Map; +import java.util.logging.Level; import java.util.stream.Collectors; public final class VersionsPage extends StackPane implements WizardPage, Refreshable { @@ -139,6 +142,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh } }); } else { + LOG.log(Level.WARNING, "Failed to fetch versions list", (Throwable) variables.get("lastException")); Platform.runLater(() -> { transitionHandler.setContent(failedPane, ContainerAnimations.FADE.getAnimationProducer()); }); From 4d7af2e68be979fdb74bdbd4b1421abc2bbaa52c Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 2 Dec 2018 14:54:58 +0800 Subject: [PATCH 2/3] Fix #492 Related: 4d7318737681160c1cd80385ac88bdb111f86f18 --- .../java/org/jackhuang/hmcl/game/Argument.java | 15 ++------------- .../org/jackhuang/hmcl/game/StringArgument.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java index e0001ed96..c241ffec6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java @@ -30,7 +30,7 @@ import java.util.Map; * * @author huangyuhui */ -@JsonAdapter(Argument.Serializer.class) +@JsonAdapter(Argument.Deserializer.class) @Immutable public interface Argument extends Cloneable { @@ -43,7 +43,7 @@ public interface Argument extends Cloneable { */ List toString(Map keys, Map features); - class Serializer implements JsonDeserializer, JsonSerializer { + class Deserializer implements JsonDeserializer { @Override public Argument deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.isJsonPrimitive()) @@ -51,16 +51,5 @@ public interface Argument extends Cloneable { else return context.deserialize(json, RuledArgument.class); } - - @Override - public JsonElement serialize(Argument src, Type typeOfSrc, JsonSerializationContext context) { - if (src instanceof StringArgument) - return new JsonPrimitive(((StringArgument) src).getArgument()); - else if (src instanceof RuledArgument) - return context.serialize(src, RuledArgument.class); - else - throw new AssertionError("Unrecognized argument type: " + src); - } - } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java index f57d24524..788379b4d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java @@ -19,6 +19,13 @@ package org.jackhuang.hmcl.game; import org.jackhuang.hmcl.util.Immutable; +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.annotations.JsonAdapter; + +import java.lang.reflect.Type; import java.util.Collections; import java.util.List; import java.util.Map; @@ -29,6 +36,7 @@ import java.util.regex.Pattern; * * @author huangyuhui */ +@JsonAdapter(StringArgument.Serializer.class) @Immutable public final class StringArgument implements Argument { @@ -58,4 +66,11 @@ public final class StringArgument implements Argument { public String toString() { return argument; } + + public class Serializer implements JsonSerializer { + @Override + public JsonElement serialize(StringArgument src, Type typeOfSrc, JsonSerializationContext context) { + return new JsonPrimitive(src.getArgument()); + } + } } From 900f483a03237d178bc255fd487fc91ff0757d02 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 2 Dec 2018 14:57:37 +0800 Subject: [PATCH 3/3] Fix #493 --- .../src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java index f1130336f..0453e34ca 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java @@ -250,7 +250,8 @@ public final class FileUtils { } public static boolean makeDirectory(File directory) { - return directory.isDirectory() || directory.mkdirs(); + directory.mkdirs(); + return directory.isDirectory(); } public static boolean makeFile(File file) {