From 2af4b7e5915e95897dcf5a2cb5b7c212ffcadf55 Mon Sep 17 00:00:00 2001 From: modmuss Date: Mon, 7 Apr 2025 11:54:08 +0100 Subject: [PATCH] Handle fabric.mod.json file being empty (#1280) * Throw a nicer error when the fabric.mod.json file is empty * Don't fail just log. --- .../fabricmc/loom/util/fmj/FabricModJsonFactory.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java b/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java index 00fb875e..0cfec9c6 100644 --- a/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java +++ b/src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java @@ -116,7 +116,15 @@ public final class FabricModJsonFactory { } try (Reader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) { - return create(LoomGradlePlugin.GSON.fromJson(reader, JsonObject.class), new FabricModJsonSource.SourceSetSource(project, sourceSets)); + final JsonObject modJson = LoomGradlePlugin.GSON.fromJson(reader, JsonObject.class); + + if (modJson == null) { + // fromJson returns null if the file is empty + LOGGER.warn("Failed to parse empty fabric.mod.json: {}", file.getAbsolutePath()); + return null; + } + + return create(modJson, new FabricModJsonSource.SourceSetSource(project, sourceSets)); } catch (JsonSyntaxException e) { LOGGER.warn("Failed to parse fabric.mod.json: {}", file.getAbsolutePath()); return null;