diff options
Diffstat (limited to 'patches/unapplied/server/0877-Fix-plugin-loggers-on-server-shutdown.patch')
-rw-r--r-- | patches/unapplied/server/0877-Fix-plugin-loggers-on-server-shutdown.patch | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/patches/unapplied/server/0877-Fix-plugin-loggers-on-server-shutdown.patch b/patches/unapplied/server/0877-Fix-plugin-loggers-on-server-shutdown.patch new file mode 100644 index 0000000000..9a7c82b944 --- /dev/null +++ b/patches/unapplied/server/0877-Fix-plugin-loggers-on-server-shutdown.patch @@ -0,0 +1,67 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jos=C3=A9=20Miguel=20Moreno?= <[email protected]> +Date: Sat, 5 Jun 2021 13:45:15 +0200 +Subject: [PATCH] Fix plugin loggers on server shutdown + + +diff --git a/src/main/java/io/papermc/paper/log/CustomLogManager.java b/src/main/java/io/papermc/paper/log/CustomLogManager.java +new file mode 100644 +index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dcd79602dc +--- /dev/null ++++ b/src/main/java/io/papermc/paper/log/CustomLogManager.java +@@ -0,0 +1,26 @@ ++package io.papermc.paper.log; ++ ++import java.util.logging.LogManager; ++ ++public class CustomLogManager extends LogManager { ++ private static CustomLogManager instance; ++ ++ public CustomLogManager() { ++ instance = this; ++ } ++ ++ @Override ++ public void reset() { ++ // Ignore calls to this method ++ } ++ ++ private void superReset() { ++ super.reset(); ++ } ++ ++ public static void forceReset() { ++ if (instance != null) { ++ instance.superReset(); ++ } ++ } ++} +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index 682005e4b19ba3959d4e3a66475487daf534a003..fbc06f45926e9073c95c97423f92a213898fcd48 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -1001,6 +1001,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa + net.minecrell.terminalconsole.TerminalConsoleAppender.close(); // Paper - Use TerminalConsoleAppender + } catch (Exception e) { + } ++ io.papermc.paper.log.CustomLogManager.forceReset(); // Paper - Reset loggers after shutdown + this.onServerExit(); + // Paper end + } +diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java +index f332af9c9e16c3851c5a14dad9ad182dd731ed87..755c223ab2a046285eb9916b6195093714f4c5ba 100644 +--- a/src/main/java/org/bukkit/craftbukkit/Main.java ++++ b/src/main/java/org/bukkit/craftbukkit/Main.java +@@ -18,6 +18,12 @@ public class Main { + public static boolean useJline = true; + public static boolean useConsole = true; + ++ // Paper start - Hijack log manager to ensure logging on shutdown ++ static { ++ System.setProperty("java.util.logging.manager", "io.papermc.paper.log.CustomLogManager"); ++ } ++ // Paper end ++ + public static void main(String[] args) { + // Paper start + final String warnWhenLegacyFormattingDetected = String.join(".", "net", "kyori", "adventure", "text", "warnWhenLegacyFormattingDetected"); |