From: Debayan Sutradhar Date: Sat, 05 Jun 2021 22:03:15 +0530 Subject: Replaced timer by ExecutorService --- Replaced timer by ExecutorService --- --- 'a/src/main/java/com/stream_pi/server/controller/Controller.java' +++ b/src/main/java/com/stream_pi/server/controller/Controller.java @@ -392,26 +392,34 @@ public class Controller extends Base imp } else { - new Timer().schedule( - new TimerTask() { - @Override - public void run() - { - getLogger().info("action "+action.getID()+" clicked!"); + executor.execute(new Task() { + @Override + protected Void call() + { + try { + Thread.sleep(action.getDelayBeforeExecuting()); + + getLogger().info("action "+action.getID()+" clicked!"); - if(action instanceof ToggleAction) - { - onToggleActionClicked((ToggleAction) action, toggle, profileID, - client.getRemoteSocketAddress()); - } - else if (action instanceof NormalAction) - { - onNormalActionClicked((NormalAction) action, profileID, - client.getRemoteSocketAddress()); - } + if(action instanceof ToggleAction) + { + onToggleActionClicked((ToggleAction) action, toggle, profileID, + client.getRemoteSocketAddress()); + } + else if (action instanceof NormalAction) + { + onNormalActionClicked((NormalAction) action, profileID, + client.getRemoteSocketAddress()); } - }, action.getDelayBeforeExecuting() - ); + } + catch (InterruptedException e) + { + e.printStackTrace(); + getLogger().info("onActionClicked scheduled task was interrupted ..."); + } + return null; + } + }); } } }