From d3766525da3faa01c94e023fae16148d1fb41169 Mon Sep 17 00:00:00 2001 From: Brandon Dahler Date: Mon, 3 Jan 2022 11:42:33 -0500 Subject: [PATCH] Use correct waiting methods for shutdown futures. --- README.md | 2 +- examples/agent/src/main/java/agent/App.java | 6 ++++-- examples/ecs-firelens/src/main/java/App.java | 13 ++++++++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 16b9937f..3a2f65d9 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ logger.putProperty("RequestId", "422b1569-16f6-4a03-b8f0-fe3fd9b100f8"); logger.flush(); // flush the sink, waiting up to 10s before giving up -environment.getSink().shutdown().orTimeout(10_000L, TimeUnit.MILLISECONDS); +environment.getSink().shutdown().get(10_000L, TimeUnit.MILLISECONDS); ``` ## API diff --git a/examples/agent/src/main/java/agent/App.java b/examples/agent/src/main/java/agent/App.java index dd7878c3..010c07fd 100644 --- a/examples/agent/src/main/java/agent/App.java +++ b/examples/agent/src/main/java/agent/App.java @@ -7,16 +7,18 @@ import software.amazon.cloudwatchlogs.emf.model.DimensionSet; import software.amazon.cloudwatchlogs.emf.model.Unit; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeUnit; public class App { - public static void main(String[] args) { + public static void main(String[] args) throws ExecutionException, InterruptedException, TimeoutException { DefaultEnvironment environment = new DefaultEnvironment(EnvironmentConfigurationProvider.getConfig()); emitMetric(environment); emitMetric(environment); emitMetric(environment); - environment.getSink().shutdown().orTimeout(360_000L, TimeUnit.MILLISECONDS); + environment.getSink().shutdown().get(360_000L, TimeUnit.MILLISECONDS); } private static void emitMetric(Environment environment) { diff --git a/examples/ecs-firelens/src/main/java/App.java b/examples/ecs-firelens/src/main/java/App.java index ee72a451..9a71fc79 100644 --- a/examples/ecs-firelens/src/main/java/App.java +++ b/examples/ecs-firelens/src/main/java/App.java @@ -17,6 +17,8 @@ import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeoutException; import software.amazon.cloudwatchlogs.emf.config.EnvironmentConfigurationProvider; import software.amazon.cloudwatchlogs.emf.environment.ECSEnvironment; import software.amazon.cloudwatchlogs.emf.environment.Environment; @@ -48,7 +50,16 @@ public static void main(String[] args) throws Exception { private static void registerShutdownHook() { // https://aws.amazon.com/blogs/containers/graceful-shutdowns-with-ecs/ Signal.handle(new Signal("TERM"), sig -> { - env.getSink().shutdown().orTimeout(1_000L, TimeUnit.MILLISECONDS); + try { + env.getSink().shutdown().get(1_000L, TimeUnit.MILLISECONDS); + } catch (InterruptedException | ExecutionException | TimeoutException e) { + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } + + e.printStackTrace(); + } + System.exit(0); }); }