diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/FlowMds.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/FlowMds.java index f45a683..04e49e9 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/FlowMds.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/FlowMds.java @@ -162,7 +162,7 @@ public class FlowMds implements ModsDirScanner { } } - private final HashMap timeouts = new HashMap<>(); + private final HashMap backoffs = new HashMap<>(); private void performScanTask(Map> discovered) throws IOException { if (!Files.isDirectory(instance.modsDir())) { return; @@ -178,19 +178,19 @@ public class FlowMds implements ModsDirScanner { pipeline.addFeedbackTask(discovered.get(ScanStage.NONE)); pipeline.addFeedbackTask(discovered.get(ScanStage.DISCOVER)); if (targetStage.contains(ScanStage.DOWNLOAD)) { - pipeline.addTask(ScanStage.DOWNLOAD, new MdsTaskRetryWrapper(timeouts, new MdsDownloadTask(instance))); + pipeline.addTask(ScanStage.DOWNLOAD, new MdsTaskRetryWrapper(backoffs, new MdsDownloadTask(instance))); pipeline.addFeedbackTask(discovered.get(ScanStage.DOWNLOAD)); } if (targetStage.contains(ScanStage.CROSSREFERENCE)) { - pipeline.addTask(ScanStage.CROSSREFERENCE, new MdsTaskRetryWrapper(timeouts, new MdsCrossReferenceTask(instance))); + pipeline.addTask(ScanStage.CROSSREFERENCE, new MdsTaskRetryWrapper(backoffs, new MdsCrossReferenceTask(instance))); pipeline.addFeedbackTask(discovered.get(ScanStage.CROSSREFERENCE)); } if (targetStage.contains(ScanStage.UPDATECHECK)) { - pipeline.addTask(ScanStage.UPDATECHECK, new MdsTaskRetryWrapper(timeouts, new MdsUpdateTask(instance, getGameVersion()))); + pipeline.addTask(ScanStage.UPDATECHECK, new MdsTaskRetryWrapper(backoffs, new MdsUpdateTask(instance, getGameVersion()))); pipeline.addFeedbackTask(discovered.get(ScanStage.UPDATECHECK)); } pipeline.addFeedbackTask(discovered.get(ScanStage.ALL)); - var futures1 = pipeline.run(factory, getToScan(), new MdsDiscoverTask(timeouts, instance, getGameVersion())); + var futures1 = pipeline.run(factory, getToScan(), new MdsDiscoverTask(backoffs, instance, getGameVersion())); var futures2 = pipeline.run(factory, descriptions.entrySet().stream().map(Tuple::from).collect(Collectors.toSet())); for (CompletableFuture future : Stream.concat(futures1.stream(), futures2.stream()).toList()) { try { diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsDiscoverTask.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsDiscoverTask.java index 76ba70b..e0b9d1a 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsDiscoverTask.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsDiscoverTask.java @@ -14,7 +14,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.HashMap; -public record MdsDiscoverTask(HashMap timeouts, ProtoInstance instance, String gameVersion) implements ThrowingFunction { +public record MdsDiscoverTask(HashMap backoffs, ProtoInstance instance, String gameVersion) implements ThrowingFunction { @Override public Mod apply(Path file) throws IOException { if (!Files.exists(file)) return null; @@ -26,8 +26,8 @@ public record MdsDiscoverTask(HashMap timeouts, Prot private Mod discover(Path jarPath, Path imodPath) throws IOException { String key = imodPath.getFileName().toString() + "/" + MdsDiscoverTask.class.getTypeName(); - ExponentialBackoff state = timeouts.computeIfAbsent(key, _ -> new ExponentialBackoff()); - if (!state.shouldTry()) return null; + ExponentialBackoff backoff = backoffs.computeIfAbsent(key, _ -> new ExponentialBackoff()); + if (!backoff.shouldTry()) return null; try { ModMeta meta; if (Files.exists(imodPath)) meta = GC_ModMeta.deserialize(imodPath, GsonPreset.CONFIG); @@ -36,10 +36,10 @@ public record MdsDiscoverTask(HashMap timeouts, Prot GC_ModMeta.serialize(meta, imodPath, GsonPreset.CONFIG); } Mod result = new MdsMod(instance, imodPath, jarPath, meta); - state.success(); + backoff.success(); return result; } catch (RuntimeException | IOException e) { - state.fail(); + backoff.fail(); throw e; } } diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsTaskRetryWrapper.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsTaskRetryWrapper.java index 3556181..4bcb737 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsTaskRetryWrapper.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/flow/MdsTaskRetryWrapper.java @@ -7,17 +7,17 @@ import io.gitlab.jfronny.inceptum.launcher.util.ExponentialBackoff; import java.io.IOException; import java.util.Map; -public record MdsTaskRetryWrapper(Map timeouts, ThrowingConsumer inner) implements ThrowingConsumer { +public record MdsTaskRetryWrapper(Map backoffs, ThrowingConsumer inner) implements ThrowingConsumer { @Override public void accept(MdsMod mod) throws IOException { String key = mod.getMetadataPath().getFileName().toString() + "/" + inner.getClass().getTypeName(); - ExponentialBackoff state = timeouts.computeIfAbsent(key, _ -> new ExponentialBackoff()); - if (!state.shouldTry()) return; + ExponentialBackoff backoff = backoffs.computeIfAbsent(key, _ -> new ExponentialBackoff()); + if (!backoff.shouldTry()) return; try { inner.accept(mod); - state.success(); + backoff.success(); } catch (IOException e) { - state.fail(); + backoff.fail(); throw e; } }