From b64df318ce4c369e57bce7b301d7d08aca7593e2 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 23 Mar 2024 17:18:05 -0500 Subject: [PATCH] Improve error handling in DebugRenderer --- .../core/render/renderer/DebugRenderer.java | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DebugRenderer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DebugRenderer.java index 7f53323f0..92fec9b71 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DebugRenderer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/DebugRenderer.java @@ -56,10 +56,9 @@ public class DebugRenderer { public static DebugRenderer INSTANCE = new DebugRenderer(); - public static final ConfigBasedLogger logger = new ConfigBasedLogger( - LogManager.getLogger(TestRenderer.class), () -> ELoggerMode.LOG_ALL_TO_CHAT); - public static final ConfigBasedSpamLogger spamLogger = new ConfigBasedSpamLogger( - LogManager.getLogger(TestRenderer.class), () -> ELoggerMode.LOG_ALL_TO_CHAT, 1); + public static final ConfigBasedLogger LOGGER = new ConfigBasedLogger(LogManager.getLogger(TestRenderer.class), () -> ELoggerMode.LOG_ALL_TO_CHAT); + public static final ConfigBasedSpamLogger SPAM_LOGGER = new ConfigBasedSpamLogger(LogManager.getLogger(TestRenderer.class), () -> ELoggerMode.LOG_ALL_TO_CHAT, 1); + private static final IMinecraftRenderWrapper MC_RENDER = SingletonInjector.INSTANCE.get(IMinecraftRenderWrapper.class); @@ -480,18 +479,25 @@ public class DebugRenderer { synchronized (this) { - Iterator> iterator = rendererList.iterator(); - while (iterator.hasNext()) + try { - WeakReference ref = iterator.next(); - IDebugRenderable renderable = ref.get(); - if (renderable == null) + Iterator> iterator = rendererList.iterator(); + while (iterator.hasNext()) { - iterator.remove(); - continue; + WeakReference ref = iterator.next(); + IDebugRenderable renderable = ref.get(); + if (renderable == null) + { + iterator.remove(); + continue; + } + + renderable.debugRender(debugRenderer); } - - renderable.debugRender(debugRenderer); + } + catch (Exception e) + { + SPAM_LOGGER.error("Unexpected Debug renderer error, Error: "+e.getMessage(), e); } } }