From abda9f50e17e0a3c8db99dd0025305eac98b3d2f Mon Sep 17 00:00:00 2001 From: Glavo Date: Sat, 12 Apr 2025 02:13:14 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#3807:=20=E4=BF=AE=E5=A4=8D=20Fabric=20Me?= =?UTF-8?q?tadata=20=E6=97=A0=E6=95=88=E6=97=B6=20FabricInstallTask=20?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=20NPE=20=E7=9A=84=E9=97=AE=E9=A2=98=20=20(#3?= =?UTF-8?q?814)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmcl/download/fabric/FabricInstallTask.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java index 0199bdd66..96d7d3838 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java @@ -30,6 +30,7 @@ import org.jackhuang.hmcl.task.GetTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.gson.JsonUtils; +import java.io.IOException; import java.util.*; import static org.jackhuang.hmcl.download.UnsupportedInstallationException.FABRIC_NOT_COMPATIBLE_WITH_FORGE; @@ -83,8 +84,12 @@ public final class FabricInstallTask extends Task { } @Override - public void execute() { - setResult(getPatch(JsonUtils.GSON.fromJson(launchMetaTask.getResult(), FabricInfo.class), remote.getGameVersion(), remote.getSelfVersion())); + public void execute() throws IOException { + FabricInfo fabricInfo = JsonUtils.GSON.fromJson(launchMetaTask.getResult(), FabricInfo.class); + if (fabricInfo == null) + throw new IOException("Fabric metadata is invalid"); + + setResult(getPatch(fabricInfo, remote.getGameVersion(), remote.getSelfVersion())); dependencies.add(dependencyManager.checkLibraryCompletionAsync(getResult(), true)); }