Make sure to not use zero timeout for FlumePersistentManager shutdown
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/81eeff13 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/81eeff13 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/81eeff13 Branch: refs/heads/LOG4J2-1390 Commit: 81eeff13e83b98aec8338b8461322df5a71d78d9 Parents: 78cbb44 Author: Mikael Ståldal <mikael.stal...@magine.com> Authored: Thu Sep 29 18:25:02 2016 +0200 Committer: Mikael Ståldal <mikael.stal...@magine.com> Committed: Thu Sep 29 18:25:02 2016 +0200 ---------------------------------------------------------------------- .../flume/appender/FlumePersistentManager.java | 28 +++++++++----------- 1 file changed, 13 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/81eeff13/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java ---------------------------------------------------------------------- diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java index 4711ae0..82fede1 100644 --- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java +++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java @@ -31,10 +31,21 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; - import javax.crypto.Cipher; import javax.crypto.SecretKey; +import com.sleepycat.je.Cursor; +import com.sleepycat.je.CursorConfig; +import com.sleepycat.je.Database; +import com.sleepycat.je.DatabaseConfig; +import com.sleepycat.je.DatabaseEntry; +import com.sleepycat.je.Environment; +import com.sleepycat.je.EnvironmentConfig; +import com.sleepycat.je.LockConflictException; +import com.sleepycat.je.LockMode; +import com.sleepycat.je.OperationStatus; +import com.sleepycat.je.StatsConfig; +import com.sleepycat.je.Transaction; import org.apache.flume.Event; import org.apache.flume.event.SimpleEvent; import org.apache.logging.log4j.LoggingException; @@ -49,19 +60,6 @@ import org.apache.logging.log4j.core.util.Log4jThreadFactory; import org.apache.logging.log4j.core.util.SecretKeyProvider; import org.apache.logging.log4j.util.Strings; -import com.sleepycat.je.Cursor; -import com.sleepycat.je.CursorConfig; -import com.sleepycat.je.Database; -import com.sleepycat.je.DatabaseConfig; -import com.sleepycat.je.DatabaseEntry; -import com.sleepycat.je.Environment; -import com.sleepycat.je.EnvironmentConfig; -import com.sleepycat.je.LockConflictException; -import com.sleepycat.je.LockMode; -import com.sleepycat.je.OperationStatus; -import com.sleepycat.je.StatsConfig; -import com.sleepycat.je.Transaction; - /** * Manager that persists data to Berkeley DB before passing it on to Flume. */ @@ -220,7 +218,7 @@ public class FlumePersistentManager extends FlumeAvroManager { LOGGER.debug("Shutting down FlumePersistentManager"); worker.shutdown(); final long requestedTimeoutMillis = timeUnit.toMillis(timeout); - final long shutdownWaitMillis = requestedTimeoutMillis < 0 ? SHUTDOWN_WAIT_MILLIS : requestedTimeoutMillis; + final long shutdownWaitMillis = requestedTimeoutMillis > 0 ? requestedTimeoutMillis : SHUTDOWN_WAIT_MILLIS; try { worker.join(shutdownWaitMillis); } catch (final InterruptedException ie) {