diff --git a/Server/src/main/java/net/minecrell/serverlistplus/server/ScheduledTimerTask.java b/Server/src/main/java/net/minecrell/serverlistplus/server/ScheduledFutureTask.java similarity index 53% rename from Server/src/main/java/net/minecrell/serverlistplus/server/ScheduledTimerTask.java rename to Server/src/main/java/net/minecrell/serverlistplus/server/ScheduledFutureTask.java index 64ac0519..016c740f 100644 --- a/Server/src/main/java/net/minecrell/serverlistplus/server/ScheduledTimerTask.java +++ b/Server/src/main/java/net/minecrell/serverlistplus/server/ScheduledFutureTask.java @@ -4,16 +4,16 @@ import net.minecrell.serverlistplus.core.util.Wrapper; import java.util.TimerTask; +import java.util.concurrent.ScheduledFuture; -public final class ScheduledTimerTask extends Wrapper implements ScheduledTask { +public final class ScheduledFutureTask extends Wrapper> implements ScheduledTask { - public ScheduledTimerTask(TimerTask handle) { + public ScheduledFutureTask(ScheduledFuture handle) { super(handle); } @Override public void cancel() { - this.handle.cancel(); + this.handle.cancel(false); } - } diff --git a/Server/src/main/java/net/minecrell/serverlistplus/server/ServerListPlusServer.java b/Server/src/main/java/net/minecrell/serverlistplus/server/ServerListPlusServer.java index 167ac88d..b4529c14 100644 --- a/Server/src/main/java/net/minecrell/serverlistplus/server/ServerListPlusServer.java +++ b/Server/src/main/java/net/minecrell/serverlistplus/server/ServerListPlusServer.java @@ -38,7 +38,6 @@ import net.minecrell.serverlistplus.server.status.StatusPingResponse; import net.minecrell.serverlistplus.server.status.UserProfile; import net.minecrell.serverlistplus.server.util.FormattingCodes; -import net.minecrell.serverlistplus.server.util.RunnableTimerTask; import java.awt.image.BufferedImage; import java.net.InetSocketAddress; @@ -50,8 +49,8 @@ import java.util.Locale; import java.util.Optional; import java.util.OptionalInt; -import java.util.Timer; -import java.util.TimerTask; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.logging.Logger; @@ -65,7 +64,7 @@ public final class ServerListPlusServer implements ServerListPlusPlugin { private final NetworkManager network; - private final Timer timer = new Timer(true); + private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); private boolean started; @@ -343,14 +342,12 @@ public LoadingCache> getFaviconCache() { @Override public void runAsync(Runnable task) { - this.timer.schedule(new RunnableTimerTask(task), 0); // TODO: Remove + this.scheduler.execute(task); } @Override public ScheduledTask scheduleAsync(Runnable task, long repeat, TimeUnit unit) { - TimerTask timerTask = new RunnableTimerTask(task); - this.timer.scheduleAtFixedRate(timerTask, 0, unit.toMillis(repeat)); - return new ScheduledTimerTask(timerTask); + return new ScheduledFutureTask(this.scheduler.scheduleAtFixedRate(task, 0, repeat, unit)); } @Override diff --git a/Server/src/main/java/net/minecrell/serverlistplus/server/util/RunnableTimerTask.java b/Server/src/main/java/net/minecrell/serverlistplus/server/util/RunnableTimerTask.java deleted file mode 100644 index 9ab18dcb..00000000 --- a/Server/src/main/java/net/minecrell/serverlistplus/server/util/RunnableTimerTask.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.minecrell.serverlistplus.server.util; - -import java.util.TimerTask; - -public final class RunnableTimerTask extends TimerTask { - - private final Runnable runnable; - - public RunnableTimerTask(Runnable runnable) { - this.runnable = runnable; - } - - @Override - public void run() { - this.runnable.run(); - } - -}