From ede9a7cba982d0a024106db9e3619efcc2506ad1 Mon Sep 17 00:00:00 2001 From: foss-mc <69294560+foss-mc@users.noreply.github.com> Date: Wed, 21 Jul 2021 12:13:25 +0000 Subject: [PATCH] Allow unsuccessful replacement of BungeeCord thread pool (#15) * Allow unsuccessful replacement of BungeeCord thread pool Port https://github.com/minecrafter/RedisBungee/pull/76 Some BungeeCord forks have different implementation of thread pool and RedisBungee won't load in such case * Update RedisBungee.java --- .../imaginarycode/minecraft/redisbungee/RedisBungee.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java index 4e04222..7ebe68d 100644 --- a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java +++ b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java @@ -223,14 +223,15 @@ public final class RedisBungee extends Plugin { @Override public void onEnable() { ThreadFactory factory = ((ThreadPoolExecutor) getExecutorService()).getThreadFactory(); - getExecutorService().shutdownNow(); - ScheduledExecutorService service; + ScheduledExecutorService service = Executors.newScheduledThreadPool(24, factory); try { Field field = Plugin.class.getDeclaredField("service"); field.setAccessible(true); - field.set(this, service = Executors.newScheduledThreadPool(24, factory)); + ExecutorService builtinService = (ExecutorService) field.get(this); + field.set(this, service); + builtinService.shutdownNow(); } catch (Exception e) { - throw new RuntimeException("Can't replace BungeeCord thread pool with our own", e); + getLogger().log(Level.WARNING, "Can't replace BungeeCord thread pool with our own", e); } try { loadConfig();