You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/09/08 14:50:31 UTC

[02/50] [abbrv] logging-log4j2 git commit: Propagate and use timeout values from Configurator.shutdown(LoggerContext, long, TimeUnit).

Propagate and use timeout values from
Configurator.shutdown(LoggerContext,long,TimeUnit).

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/9ba97f2f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/9ba97f2f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/9ba97f2f

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 9ba97f2fbfafbfb17747152cfdb94f05237fa553
Parents: 433b845
Author: Gary Gregory <gg...@apache.org>
Authored: Tue Sep 6 02:38:16 2016 -0400
Committer: Gary Gregory <gg...@apache.org>
Committed: Tue Sep 6 02:38:16 2016 -0400

----------------------------------------------------------------------
 .../org/apache/logging/log4j/core/AbstractLifeCycle.java  |  6 ++++--
 .../java/org/apache/logging/log4j/core/LoggerContext.java |  2 +-
 .../log4j/core/appender/routing/RoutingAppender.java      |  2 +-
 .../logging/log4j/core/async/AsyncLoggerContext.java      |  3 ++-
 .../logging/log4j/core/config/AbstractConfiguration.java  | 10 +++++-----
 .../logging/log4j/core/filter/AbstractFilterable.java     |  4 ++--
 .../apache/logging/log4j/core/filter/CompositeFilter.java |  2 +-
 .../apache/logging/log4j/core/net/server/JmsServer.java   |  3 ++-
 .../log4j/core/util/DefaultShutdownCallbackRegistry.java  |  3 ++-
 .../org/apache/logging/log4j/junit/LoggerContextRule.java |  8 +++++---
 .../apache/logging/log4j/web/Log4jWebInitializerImpl.java |  2 +-
 11 files changed, 26 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/AbstractLifeCycle.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/AbstractLifeCycle.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/AbstractLifeCycle.java
index 8c3c883..3fb15bf 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/AbstractLifeCycle.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/AbstractLifeCycle.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.core;
 
-import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.status.StatusLogger;
@@ -29,6 +28,9 @@ import org.apache.logging.log4j.status.StatusLogger;
  */
 public class AbstractLifeCycle implements LifeCycle {
 
+    public static final int DEFAULT_STOP_TIMEOUT = -1;
+    public static final TimeUnit DEFAULT_STOP_TIMEUNIT = TimeUnit.MILLISECONDS;
+
     /**
      * Allow subclasses access to the status logger without creating another instance.
      */
@@ -121,7 +123,7 @@ public class AbstractLifeCycle implements LifeCycle {
 
     @Override
     public void stop() {
-        stop(-1, TimeUnit.MILLISECONDS);
+        stop(DEFAULT_STOP_TIMEOUT, DEFAULT_STOP_TIMEUNIT);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
index 3fc7fb4..8575f01 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
@@ -325,7 +325,7 @@ public class LoggerContext extends AbstractLifeCycle
             final Configuration prev = configuration;
             configuration = NULL_CONFIGURATION;
             updateLoggers();
-            prev.stop();
+            prev.stop(timeout, timeUnit);
             externalContext = null;
             LogManager.getFactory().removeContext(this);
             final String source = "LoggerContext \'" + getName() + "\'";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
index 1909963..fbe431e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
@@ -103,7 +103,7 @@ public final class RoutingAppender extends AbstractAppender {
         for (final Map.Entry<String, AppenderControl> entry : appenders.entrySet()) {
             final String name = entry.getValue().getAppender().getName();
             if (!map.containsKey(name)) {
-                entry.getValue().getAppender().stop();
+                entry.getValue().getAppender().stop(timeout, timeUnit);
             }
         }
         setStopped();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java
index 326faf3..68326f7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java
@@ -101,7 +101,8 @@ public class AsyncLoggerContext extends LoggerContext {
     @Override
     public boolean stop(final long timeout, final TimeUnit timeUnit) {
         setStopping();
-        loggerDisruptor.stop(); // first stop Disruptor
+        // first stop Disruptor
+        loggerDisruptor.stop(timeout, timeUnit); 
         super.stop(timeout, timeUnit);
         return true;
     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index b165366..7a13bac 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -306,17 +306,17 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
         if (!loggerConfigs.isEmpty()) {
             LOGGER.trace("{} stopping {} LoggerConfigs.", cls, loggerConfigs.size());
             for (final LoggerConfig logger : loggerConfigs.values()) {
-                logger.stop();
+                logger.stop(timeout, timeUnit);
             }
         }
         LOGGER.trace("{} stopping root LoggerConfig.", cls);
         if (!root.isStopped()) {
-            root.stop();
+            root.stop(timeout, timeUnit);
         }
 
         if (hasAsyncLoggers()) {
             LOGGER.trace("{} stopping AsyncLoggerConfigDisruptor.", cls);
-            asyncLoggerConfigDisruptor.stop();
+            asyncLoggerConfigDisruptor.stop(timeout, timeUnit);
         }
 
         // Stop the appenders in reverse order in case they still have activity.
@@ -326,7 +326,7 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
             // LOG4J2-511, LOG4J2-392 stop AsyncAppenders first
             LOGGER.trace("{} stopping {} AsyncAppenders.", cls, async.size());
             for (final Appender appender : async) {
-                appender.stop();
+                appender.stop(timeout, timeUnit);
             }
         }
 
@@ -340,7 +340,7 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
         int appenderCount = 0;
         for (int i = array.length - 1; i >= 0; --i) {
             if (array[i].isStarted()) { // then stop remaining Appenders
-                array[i].stop();
+                array[i].stop(timeout, timeUnit);
                 appenderCount++;
             }
         }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
index e12067e..81b8ea9 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
@@ -148,7 +148,7 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi
     public boolean stop(final long timeout, final TimeUnit timeUnit) {
         this.setStopping();
         if (filter != null) {
-            filter.stop();
+            filter.stop(timeout, timeUnit);
         }
         this.setStopped();
         return true;
@@ -162,7 +162,7 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi
             this.setStopping();
         }
         if (filter != null) {
-            filter.stop();
+            filter.stop(timeout, timeUnit);
         }
         if (changeLifeCycleState) {
             this.setStopped();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/CompositeFilter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/CompositeFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/CompositeFilter.java
index a539418..300fd80 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/CompositeFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/CompositeFilter.java
@@ -136,7 +136,7 @@ public final class CompositeFilter extends AbstractLifeCycle implements Iterable
     public boolean stop(final long timeout, final TimeUnit timeUnit) {
         this.setStopping();
         for (final Filter filter : filters) {
-            filter.stop();
+            filter.stop(timeout, timeUnit);
         }
         setStopped();
         return true;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
index 0341461..887bcc5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
@@ -30,6 +30,7 @@ import javax.jms.MessageListener;
 import javax.jms.ObjectMessage;
 
 import org.apache.logging.log4j.LoggingException;
+import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.LifeCycle;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.LogEventListener;
@@ -99,7 +100,7 @@ public class JmsServer extends LogEventListener implements MessageListener, Life
 
     @Override    
     public void stop() {
-        stop(-1, TimeUnit.MILLISECONDS);
+        stop(AbstractLifeCycle.DEFAULT_STOP_TIMEOUT, AbstractLifeCycle.DEFAULT_STOP_TIMEUNIT);
     }
     
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java
index 611abdc..ac822ee 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java
@@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.LifeCycle;
 import org.apache.logging.log4j.status.StatusLogger;
 
@@ -152,7 +153,7 @@ public class DefaultShutdownCallbackRegistry implements ShutdownCallbackRegistry
 
     @Override    
     public void stop() {
-        stop(-1, TimeUnit.MILLISECONDS);
+        stop(AbstractLifeCycle.DEFAULT_STOP_TIMEOUT, AbstractLifeCycle.DEFAULT_STOP_TIMEUNIT);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-core/src/test/java/org/apache/logging/log4j/junit/LoggerContextRule.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/junit/LoggerContextRule.java b/log4j-core/src/test/java/org/apache/logging/log4j/junit/LoggerContextRule.java
index aa866f5..25a7a02 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/junit/LoggerContextRule.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/junit/LoggerContextRule.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.junit;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -53,8 +54,8 @@ public class LoggerContextRule implements TestRule {
     private LoggerContext loggerContext;
     private Class<? extends ContextSelector> contextSelectorClass;
     private String testClassName;
-    private long shutdownTimeout;
-    private TimeUnit shutdownTimeUnit;
+    private final long shutdownTimeout;
+    private final TimeUnit shutdownTimeUnit;
 
     /**
      * Constructs a new LoggerContextRule without a configuration file.
@@ -82,7 +83,8 @@ public class LoggerContextRule implements TestRule {
      *            custom ContextSelector class to use instead of default
      */
     public LoggerContextRule(final String configLocation, final Class<? extends ContextSelector> contextSelectorClass) {
-        this(configLocation, contextSelectorClass, 0, null);
+        this(configLocation, contextSelectorClass, AbstractLifeCycle.DEFAULT_STOP_TIMEOUT,
+                AbstractLifeCycle.DEFAULT_STOP_TIMEUNIT);
     }
 
     public LoggerContextRule(final String configLocation, final Class<? extends ContextSelector> contextSelectorClass,

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9ba97f2f/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
----------------------------------------------------------------------
diff --git a/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java b/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
index 287e253..6efa69a 100644
--- a/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
+++ b/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
@@ -229,7 +229,7 @@ final class Log4jWebInitializerImpl extends AbstractLifeCycle implements Log4jWe
                 if (this.namedContextSelector != null) {
                     this.namedContextSelector.removeContext(this.name);
                 }
-                this.loggerContext.stop();
+                this.loggerContext.stop(timeout, timeUnit);
                 this.loggerContext.setExternalContext(null);
                 this.loggerContext = null;
             }