From 6dba778e60b215b6a4b6afefdeaed8d7de5f100e Mon Sep 17 00:00:00 2001 From: Luck Date: Sat, 31 Mar 2018 11:13:27 +0100 Subject: [PATCH] Catch exceptions thrown in repeating tasks to avoid subsequent executions from being cancelled --- .../me/lucko/luckperms/common/utils/RepeatingTask.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/me/lucko/luckperms/common/utils/RepeatingTask.java b/common/src/main/java/me/lucko/luckperms/common/utils/RepeatingTask.java index 35e21db01..6f79870f3 100644 --- a/common/src/main/java/me/lucko/luckperms/common/utils/RepeatingTask.java +++ b/common/src/main/java/me/lucko/luckperms/common/utils/RepeatingTask.java @@ -38,7 +38,15 @@ public abstract class RepeatingTask { protected RepeatingTask(long time, TimeUnit unit, String nameFormat) { this.executor = Executors.newSingleThreadScheduledExecutor(new ThreadFactoryBuilder().setNameFormat(nameFormat).build()); - this.executor.scheduleAtFixedRate(this::tick, time, time, unit); + this.executor.scheduleAtFixedRate(this::run, time, time, unit); + } + + private void run() { + try { + tick(); + } catch (Exception e) { + e.printStackTrace(); + } } protected abstract void tick();