From 0bd675fc7c98c298405b13b828bf7f6cd4646fdc Mon Sep 17 00:00:00 2001 From: JFronny Date: Tue, 3 Oct 2023 20:16:00 +0200 Subject: [PATCH] fix: prevent endlessly recursive serialization due to misinterpretation of checked method as getter --- .../launcher/model/inceptum/InstanceMeta.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/model/inceptum/InstanceMeta.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/model/inceptum/InstanceMeta.java index d2c56b3..6666027 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/model/inceptum/InstanceMeta.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/model/inceptum/InstanceMeta.java @@ -1,5 +1,6 @@ package io.gitlab.jfronny.inceptum.launcher.model.inceptum; +import io.gitlab.jfronny.gson.compile.annotations.GPrefer; import io.gitlab.jfronny.gson.compile.annotations.GSerializable; import io.gitlab.jfronny.inceptum.common.GsonPreset; @@ -39,18 +40,21 @@ public class InstanceMeta { } public void checkArguments() { - arguments = arguments == null ? Arguments.EMPTY : arguments.checked(); + arguments = Arguments.checked(arguments); } @GSerializable(configure = GsonPreset.Config.class) public record Arguments(List jvm, List client, List server) { public static final Arguments EMPTY = new Arguments(List.of(), List.of(), List.of()); - public Arguments checked() { + @GPrefer public Arguments {} + + public static Arguments checked(Arguments of) { + if (of == null) return EMPTY; return new Arguments( - jvm == null ? List.of() : jvm, - client == null ? List.of() : client, - server == null ? List.of() : server + of.jvm == null ? List.of() : of.jvm, + of.client == null ? List.of() : of.client, + of.server == null ? List.of() : of.server ); }