From 9073b781b5205c559533be1a0a2343f63dc8cc2f Mon Sep 17 00:00:00 2001 From: Kim Gi Uk <2897robo@gmail.com> Date: Tue, 1 Apr 2025 03:08:18 +0900 Subject: [PATCH] fix: resolve SonarCloud issue in dirty flag / App.java #2865 (#3236) --- .../main/java/com/iluwatar/dirtyflag/App.java | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java index 6798c68ea..ed1ff06bb 100644 --- a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java +++ b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java @@ -57,20 +57,30 @@ public class App { /** Program execution point. */ public void run() { final var executorService = Executors.newSingleThreadScheduledExecutor(); - executorService.scheduleAtFixedRate( - new Runnable() { - final World world = new World(); + try { + executorService.scheduleAtFixedRate( + new Runnable() { + final World world = new World(); - @Override - public void run() { - var countries = world.fetch(); - LOGGER.info("Our world currently has the following countries:-"); - countries.stream().map(country -> "\t" + country).forEach(LOGGER::info); - } - }, - 0, - 15, - TimeUnit.SECONDS); // Run at every 15 seconds. + @Override + public void run() { + var countries = world.fetch(); + LOGGER.info("Our world currently has the following countries:-"); + countries.stream().map(country -> "\t" + country).forEach(LOGGER::info); + } + }, + 0, + 15, + TimeUnit.SECONDS); + + // Keep running for 45 seconds before shutdown (for demo purpose) + TimeUnit.SECONDS.sleep(45); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOGGER.error("Thread was interrupted", e); + } finally { + executorService.shutdown(); + } } /**