aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-08-31 08:25:32 +0200
committerjonmv <venstad@gmail.com>2023-08-31 08:25:32 +0200
commiteb479a5207ea2b536b8d4cc78afa17203ff29be7 (patch)
treedb36e18af7b486d05e48a5f010fe0bac2fce0d3f /container-search/src/main/java/com/yahoo
parent2d3a1be956b24f3eda343bddcecea6b418f4cd7c (diff)
Shut down loggers on deconstruct, and do this in unit test instead of sleep
Diffstat (limited to 'container-search/src/main/java/com/yahoo')
-rw-r--r--container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/logging/AbstractThreadedLogger.java11
2 files changed, 12 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
index 601da11ab33..0fcc54493e3 100644
--- a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
+++ b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
@@ -54,8 +54,9 @@ public abstract class AbstractSpoolingLogger extends AbstractThreadedLogger impl
return true;
}
- // TODO Call from a component or make this class a component
- public void shutdown() {
+ @Override
+ public void deconstruct() {
+ super.deconstruct();
executorService.shutdown();
try {
if ( ! executorService.awaitTermination(10, TimeUnit.SECONDS))
diff --git a/container-search/src/main/java/com/yahoo/search/logging/AbstractThreadedLogger.java b/container-search/src/main/java/com/yahoo/search/logging/AbstractThreadedLogger.java
index ffc916bad65..db5d0494822 100644
--- a/container-search/src/main/java/com/yahoo/search/logging/AbstractThreadedLogger.java
+++ b/container-search/src/main/java/com/yahoo/search/logging/AbstractThreadedLogger.java
@@ -2,6 +2,8 @@
package com.yahoo.search.logging;
+import com.yahoo.component.AbstractComponent;
+
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionException;
@@ -10,7 +12,7 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
-abstract class AbstractThreadedLogger implements Logger {
+abstract class AbstractThreadedLogger extends AbstractComponent implements Logger {
private final static java.util.logging.Logger log = java.util.logging.Logger.getLogger(AbstractThreadedLogger.class.getName());
@@ -51,10 +53,15 @@ abstract class AbstractThreadedLogger implements Logger {
}
/**
- * Actually transports the entry to it's destination
+ * Actually transports the entry to its destination
*/
public abstract boolean transport(LoggerEntry entry);
+ /** Synchronously shuts down and waits for enqueued entries to be sent. */
+ @Override
+ public void deconstruct() {
+ executor.close();
+ }
private static class WorkerThread extends Thread {