From fdf7330523b8c2f0b79bd1f53709c7a09671e829 Mon Sep 17 00:00:00 2001 From: notevil Date: Sun, 26 Apr 2026 22:07:18 +0200 Subject: [PATCH] BUG-RACE-01 : document Phase 2 listener registration ordering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewer flagged race between AnimationManager parsing (LIVING_MOTION_CODEC.getOrThrow) and LivingMotionReloadListener.apply(). Investigation confirmed : - AnimationManager is NOT currently registered as a reload listener (Phase 2 pending) - Forge 1.20.1 has no PreparableReloadListener.getDependencies() — that's a Fabric/NeoForge API - 1.20.1 ordering mechanism = registration list order via SimpleReloadInstance.barrier.wait() Fix : preventive comment in AnimationManager.apply() documenting that when Phase 2 wires this listener, it MUST be registered AFTER LivingMotionReloadListener / ArmatureReloadListener / PoseTypeReloadListener in TiedUpMod.ForgeEvents.onAddReloadListeners + V2ClientSetup.onRegisterReloadListeners. Drive-by : add docs.tar.gz to .gitignore (artist export bundle). No actionable race today — pure documentation hardening. --- .gitignore | 1 + .../tiedup/remake/rig/anim/AnimationManager.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/.gitignore b/.gitignore index c16f1ed..1d59642 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ logs/ Thumbs.db desktop.ini docs/ +docs.tar.gz diff --git a/src/main/java/com/tiedup/remake/rig/anim/AnimationManager.java b/src/main/java/com/tiedup/remake/rig/anim/AnimationManager.java index fcb9bb7..f6f5f0e 100644 --- a/src/main/java/com/tiedup/remake/rig/anim/AnimationManager.java +++ b/src/main/java/com/tiedup/remake/rig/anim/AnimationManager.java @@ -170,6 +170,20 @@ public class AnimationManager extends SimplePreparableReloadListener registeredAnimation = this.animationById.values().stream()