From e62aa5e3e480f32b30f94a47123480a2b2f880bc Mon Sep 17 00:00:00 2001 From: Mariell Hoversholm Date: Tue, 16 Mar 2021 17:47:15 +0100 Subject: [PATCH] Fix class preloading --- ...69-Asynchronous-chunk-IO-and-loading.patch | 14 ++++++++++--- .../0438-Improved-Watchdog-Support.patch | 21 +++++++++++++------ ...-per-thread-native-byte-buffer-cache.patch | 4 ++-- ...4-Bukkit-world-container-is-not-used.patch | 4 ++-- ...-5885-Unable-to-disable-advancements.patch | 4 ++-- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch index dba9ede259..def8d896ee 100644 --- a/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch +++ b/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch @@ -2328,14 +2328,22 @@ index fbd33aef21b4539d249c367609a36491530fb7ca..5a410550cfb48505c9de9979465ed152 + } } diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 191a74bd9b894f9d64d0a55747cb17e07ceef597..949e374d1e3bdbe31b160ad5ab6c0153f16fb07e 100644 +index 191a74bd9b894f9d64d0a55747cb17e07ceef597..c0f5fdb832115c5a86005e4c3242d9fd7e52f82c 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -210,6 +210,7 @@ public class Main { +@@ -42,6 +42,7 @@ import net.minecraft.server.players.UserCache; + import net.minecraft.util.MathHelper; + import net.minecraft.util.datafix.DataConverterRegistry; + import net.minecraft.util.worldupdate.WorldUpgrader; ++import net.minecraft.world.entity.npc.VillagerTrades; + import net.minecraft.world.level.DataPackConfiguration; + import net.minecraft.world.level.GameRules; + import net.minecraft.world.level.World; +@@ -210,6 +211,7 @@ public class Main { convertable_conversionsession.a((IRegistryCustom) iregistrycustom_dimension, (SaveData) object); */ -+ Class.forName("net.minecraft.server.VillagerTrades");// Paper - load this sync so it won't fail later async ++ Class.forName(VillagerTrades.class.getSimpleName());// Paper - load this sync so it won't fail later async final DedicatedServer dedicatedserver = (DedicatedServer) MinecraftServer.a((thread) -> { DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, datapackconfiguration1, thread, iregistrycustom_dimension, convertable_conversionsession, resourcepackrepository, datapackresources, null, dedicatedserversettings, DataConverterRegistry.a(), minecraftsessionservice, gameprofilerepository, usercache, WorldLoadListenerLogger::new); diff --git a/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch b/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch index 59daff3156..f71293d47c 100644 --- a/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch +++ b/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch @@ -358,10 +358,19 @@ index 4828d356ca01cba5964c6397584d56643dbc0dae..55890ff463eb122934e8ba1fc550cf0c // Paper start diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 67331fa5463dd31e4aea3aebf6204ec5cb43d99e..9cd50aa48c5cd67631c8c99543ed8e162603b423 100644 +index 67331fa5463dd31e4aea3aebf6204ec5cb43d99e..2a36de929e6d433b0f67f0a901c03c624cd41e17 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -150,6 +150,37 @@ public class Main { +@@ -12,6 +12,8 @@ import java.util.logging.Level; + import java.util.logging.Logger; + import joptsimple.OptionParser; + import joptsimple.OptionSet; ++import net.minecraft.util.ExceptionSuppressor; ++import net.minecraft.world.level.lighting.LightEngineLayerEventListener; + import net.minecrell.terminalconsole.TerminalConsoleAppender; // Paper + + public class Main { +@@ -150,6 +152,37 @@ public class Main { OptionSet options = null; @@ -399,7 +408,7 @@ index 67331fa5463dd31e4aea3aebf6204ec5cb43d99e..9cd50aa48c5cd67631c8c99543ed8e16 try { options = parser.parse(args); } catch (joptsimple.OptionException ex) { -@@ -245,8 +276,64 @@ public class Main { +@@ -245,8 +278,64 @@ public class Main { } catch (Throwable t) { t.printStackTrace(); } @@ -442,9 +451,9 @@ index 67331fa5463dd31e4aea3aebf6204ec5cb43d99e..9cd50aa48c5cd67631c8c99543ed8e16 + tryPreloadClass("com.destroystokyo.paper.event.player.PlayerConnectionCloseEvent"); + tryPreloadClass("com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent"); + // Minecraft, seen during saving -+ tryPreloadClass("net.minecraft.world.level.lighting.LightEngineLayerEventListener$Void"); -+ tryPreloadClass("net.minecraft.world.level.lighting.LightEngineLayerEventListener"); -+ tryPreloadClass("net.minecraft.util.ExceptionSuppressor"); ++ tryPreloadClass(LightEngineLayerEventListener.Void.class.getSimpleName()); ++ tryPreloadClass(LightEngineLayerEventListener.class.getSimpleName()); ++ tryPreloadClass(ExceptionSuppressor.class.getSimpleName()); + // Paper end + } + } diff --git a/Spigot-Server-Patches/0466-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/Spigot-Server-Patches/0466-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch index 292b07146d..313ecce14c 100644 --- a/Spigot-Server-Patches/0466-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch +++ b/Spigot-Server-Patches/0466-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch @@ -17,10 +17,10 @@ keeping long lived large direct buffers in cache. Set system properly at server startup if not set already to help protect from this. diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 9cd50aa48c5cd67631c8c99543ed8e162603b423..8a1ff1000f82a590b293e8892a34484df068093c 100644 +index 2a36de929e6d433b0f67f0a901c03c624cd41e17..af1b93beee1cf4ea1be356eb47ef9a3c8d0f2837 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -20,6 +20,7 @@ public class Main { +@@ -22,6 +22,7 @@ public class Main { public static void main(String[] args) { // Todo: Installation script diff --git a/Spigot-Server-Patches/0535-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/Spigot-Server-Patches/0535-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch index 4330b194d5..f8679789c2 100644 --- a/Spigot-Server-Patches/0535-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch +++ b/Spigot-Server-Patches/0535-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SPIGOT-5824 Bukkit world-container is not used diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 949e374d1e3bdbe31b160ad5ab6c0153f16fb07e..9e453545c37750152debbf7a663b2ec55c54387f 100644 +index c0f5fdb832115c5a86005e4c3242d9fd7e52f82c..6a15a5f7d3e82f61c0f30bb6a339215376d4867d 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -131,11 +131,20 @@ public class Main { +@@ -132,11 +132,20 @@ public class Main { return; } diff --git a/Spigot-Server-Patches/0536-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/Spigot-Server-Patches/0536-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch index 7aba9efe37..55ca28c8f7 100644 --- a/Spigot-Server-Patches/0536-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch +++ b/Spigot-Server-Patches/0536-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SPIGOT-5885 Unable to disable advancements diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 9e453545c37750152debbf7a663b2ec55c54387f..4d8f976a2f9ba2b54c39978b83f7b3de55fc1979 100644 +index 6a15a5f7d3e82f61c0f30bb6a339215376d4867d..f34d5b214c4726f3b3b96610c1dca3d0d17a09ab 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -131,6 +131,7 @@ public class Main { +@@ -132,6 +132,7 @@ public class Main { return; }