You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ck...@apache.org on 2020/07/18 16:00:30 UTC
[logging-log4j2] branch master updated: LOG4J2-2898: Avoid
initializing volatile fields with default values (#367)
This is an automated email from the ASF dual-hosted git repository.
ckozak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/master by this push:
new 60a73f6 LOG4J2-2898: Avoid initializing volatile fields with default values (#367)
60a73f6 is described below
commit 60a73f6f6cc6f478471e773119691822a427fc56
Author: Turbanov Andrey <tu...@gmail.com>
AuthorDate: Sat Jul 18 19:00:19 2020 +0300
LOG4J2-2898: Avoid initializing volatile fields with default values (#367)
---
.../src/main/java/org/apache/logging/log4j/util/StackLocatorUtil.java | 2 +-
.../src/main/java/org/apache/logging/log4j/core/LoggerContext.java | 2 +-
.../java/org/apache/logging/log4j/core/appender/AsyncAppender.java | 2 +-
.../java/org/apache/logging/log4j/core/appender/FailoverAppender.java | 2 +-
.../logging/log4j/core/appender/rolling/RollingFileManager.java | 4 ++--
.../apache/logging/log4j/core/appender/routing/RoutingAppender.java | 2 +-
.../apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java | 2 +-
.../org/apache/logging/log4j/core/config/ConfigurationFactory.java | 4 ++--
.../org/apache/logging/log4j/core/config/ConfigurationSource.java | 2 +-
.../apache/logging/log4j/core/config/LockingReliabilityStrategy.java | 2 +-
.../apache/logging/log4j/core/config/status/StatusConfiguration.java | 2 +-
.../logging/log4j/core/time/internal/format/FixedDateFormat.java | 4 ++--
.../main/java/org/apache/logging/log4j/core/util/WatcherFactory.java | 2 +-
.../java/org/apache/logging/log4j/flume/appender/FlumeAppender.java | 2 +-
.../org/apache/logging/log4j/flume/appender/FlumeAvroManager.java | 2 +-
.../apache/logging/log4j/flume/appender/FlumePersistentManager.java | 2 +-
.../org/apache/logging/log4j/jdbc/appender/JdbcDatabaseManager.java | 2 +-
.../main/java/org/apache/logging/log4j/jms/appender/JmsManager.java | 2 +-
.../main/java/org/apache/logging/log4j/perf/jmh/ClocksBenchmark.java | 2 +-
.../java/org/apache/logging/log4j/perf/jmh/LoggerConfigBenchmark.java | 2 +-
.../java/org/apache/logging/log4j/perf/jmh/TimeFormatBenchmark.java | 4 ++--
.../java/org/apache/logging/log4j/samples/app/LoggingController.java | 2 +-
22 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocatorUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocatorUtil.java
index d4c0c64..3d51f1d 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocatorUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocatorUtil.java
@@ -26,7 +26,7 @@ import java.util.Stack;
*/
public final class StackLocatorUtil {
private static StackLocator stackLocator = null;
- private static volatile boolean errorLogged = false;
+ private static volatile boolean errorLogged;
static {
stackLocator = StackLocator.getInstance();
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 0efea61..8b369fe 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
@@ -88,7 +88,7 @@ public class LoggerContext extends AbstractLifeCycle
private final LoggerRegistry<Logger> loggerRegistry = new LoggerRegistry<>();
private final CopyOnWriteArrayList<PropertyChangeListener> propertyChangeListeners = new CopyOnWriteArrayList<>();
- private volatile List<LoggerContextShutdownAware> listeners = null;
+ private volatile List<LoggerContextShutdownAware> listeners;
/**
* The Configuration is volatile to guarantee that initialization of the Configuration has completed before the
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java
index 0ea5ae6..d4a270b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java
@@ -342,7 +342,7 @@ public final class AsyncAppender extends AbstractAppender {
*/
private class AsyncThread extends Log4jThread {
- private volatile boolean shutdown = false;
+ private volatile boolean shutdown;
private final List<AppenderControl> appenders;
private final BlockingQueue<LogEvent> queue;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
index 7cab755..72bf446 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
@@ -61,7 +61,7 @@ public final class FailoverAppender extends AbstractAppender {
private final long intervalNanos;
- private volatile long nextCheckNanos = 0;
+ private volatile long nextCheckNanos;
private FailoverAppender(final String name, final Filter filter, final String primary, final String[] failovers,
final int intervalMillis, final Configuration config, final boolean ignoreExceptions,
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
index 129b9a6..e95dc85 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
@@ -66,8 +66,8 @@ public class RollingFileManager extends FileManager {
private final Log4jThreadFactory threadFactory = Log4jThreadFactory.createThreadFactory("RollingFileManager");
private volatile TriggeringPolicy triggeringPolicy;
private volatile RolloverStrategy rolloverStrategy;
- private volatile boolean renameEmptyFiles = false;
- private volatile boolean initialized = false;
+ private volatile boolean renameEmptyFiles;
+ private volatile boolean initialized;
private volatile String fileName;
private final boolean directWrite;
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 546f690..2d2e3d0 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
@@ -415,7 +415,7 @@ public final class RoutingAppender extends AbstractAppender {
private static final class CreatedRouteAppenderControl extends RouteAppenderControl {
- private volatile boolean pendingDeletion = false;
+ private volatile boolean pendingDeletion;
private final AtomicInteger depth = new AtomicInteger();
CreatedRouteAppenderControl(Appender appender) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java
index a506619..252cd28 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java
@@ -185,7 +185,7 @@ public class AsyncLoggerConfigDisruptor extends AbstractLifeCycle implements Asy
private long backgroundThreadId; // LOG4J2-471
private EventFactory<Log4jEventWrapper> factory;
private EventTranslatorTwoArg<Log4jEventWrapper, LogEvent, AsyncLoggerConfig> translator;
- private volatile boolean alreadyLoggedWarning = false;
+ private volatile boolean alreadyLoggedWarning;
private final Object queueFullEnqueueLock = new Object();
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
index 2db7a2d..7112f56 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
@@ -138,7 +138,7 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
private static final String OVERRIDE_PARAM = "override";
- private static volatile List<ConfigurationFactory> factories = null;
+ private static volatile List<ConfigurationFactory> factories;
private static ConfigurationFactory configFactory = new Factory();
@@ -149,7 +149,7 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
private static final String HTTPS = "https";
private static final String HTTP = "http";
- private static volatile AuthorizationProvider authorizationProvider = null;
+ private static volatile AuthorizationProvider authorizationProvider;
/**
* Returns the ConfigurationFactory.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
index 087d447..ad94891 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
@@ -59,7 +59,7 @@ public class ConfigurationSource {
private final String location;
private final InputStream stream;
private volatile byte[] data;
- private volatile Source source = null;
+ private volatile Source source;
private final long lastModified;
// Set when the configuration has been updated so reset can use it for the next lastModified timestamp.
private volatile long modifiedMillis;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LockingReliabilityStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LockingReliabilityStrategy.java
index 391f2ec..21e3557 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LockingReliabilityStrategy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LockingReliabilityStrategy.java
@@ -33,7 +33,7 @@ import org.apache.logging.log4j.util.Supplier;
public class LockingReliabilityStrategy implements ReliabilityStrategy {
private final LoggerConfig loggerConfig;
private final ReadWriteLock reconfigureLock = new ReentrantReadWriteLock();
- private volatile boolean isStopping = false;
+ private volatile boolean isStopping;
public LockingReliabilityStrategy(final LoggerConfig loggerConfig) {
this.loggerConfig = Objects.requireNonNull(loggerConfig, "loggerConfig was null");
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java
index 1ad67a3..6070d30 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java
@@ -47,7 +47,7 @@ public class StatusConfiguration {
private final Collection<String> errorMessages = new LinkedBlockingQueue<String>();
private final StatusLogger logger = StatusLogger.getLogger();
- private volatile boolean initialized = false;
+ private volatile boolean initialized;
private PrintStream destination = DEFAULT_STREAM;
private Level status = DEFAULT_STATUS;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java
index e169ffc..4316a59 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java
@@ -392,8 +392,8 @@ public class FixedDateFormat {
private final FixedTimeZoneFormat fixedTimeZoneFormat;
- private volatile long midnightToday = 0;
- private volatile long midnightTomorrow = 0;
+ private volatile long midnightToday;
+ private volatile long midnightTomorrow;
private final int[] dstOffsets = new int[25];
// cachedDate does not need to be volatile because
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
index dc88e56..31acd5a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
@@ -39,7 +39,7 @@ public class WatcherFactory {
private static final Logger LOGGER = StatusLogger.getLogger();
private static final PluginManager pluginManager = new PluginManager(Watcher.CATEGORY);
- private static volatile WatcherFactory factory = null;
+ private static volatile WatcherFactory factory;
private final Map<String, PluginType<?>> plugins;
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
index a7aa460..c2e7a2e 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
@@ -63,7 +63,7 @@ public final class FlumeAppender extends AbstractAppender implements FlumeEventF
private final FlumeEventFactory factory;
private final Timer timer = new Timer("FlumeEvent", 5000);
- private volatile long count = 0;
+ private volatile long count;
/**
* Which Manager will be used by the appender instance.
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
index ad35b38..1dac698 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
@@ -50,7 +50,7 @@ public class FlumeAvroManager extends AbstractFlumeManager {
private final int current = 0;
- private volatile RpcClient rpcClient = null;
+ private volatile RpcClient rpcClient;
private BatchEvent batchEvent = new BatchEvent();
private long nextSend = 0;
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 d15101f..7a989c0 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
@@ -469,7 +469,7 @@ public class FlumePersistentManager extends FlumeAvroManager {
* Thread that sends data to Flume and pulls it from Berkeley DB.
*/
private static class WriterThread extends Log4jThread {
- private volatile boolean shutdown = false;
+ private volatile boolean shutdown;
private final Database database;
private final Environment environment;
private final FlumePersistentManager manager;
diff --git a/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcDatabaseManager.java b/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcDatabaseManager.java
index 122984a..4e9239d 100644
--- a/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcDatabaseManager.java
+++ b/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcDatabaseManager.java
@@ -161,7 +161,7 @@ public final class JdbcDatabaseManager extends AbstractDatabaseManager {
private final class Reconnector extends Log4jThread {
private final CountDownLatch latch = new CountDownLatch(1);
- private volatile boolean shutdown = false;
+ private volatile boolean shutdown;
private Reconnector() {
super("JdbcDatabaseManager-Reconnector");
diff --git a/log4j-jms/src/main/java/org/apache/logging/log4j/jms/appender/JmsManager.java b/log4j-jms/src/main/java/org/apache/logging/log4j/jms/appender/JmsManager.java
index 93d27b2..1ed2ba5 100644
--- a/log4j-jms/src/main/java/org/apache/logging/log4j/jms/appender/JmsManager.java
+++ b/log4j-jms/src/main/java/org/apache/logging/log4j/jms/appender/JmsManager.java
@@ -141,7 +141,7 @@ public class JmsManager extends AbstractManager {
private final CountDownLatch latch = new CountDownLatch(1);
- private volatile boolean shutdown = false;
+ private volatile boolean shutdown;
private final Object owner;
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ClocksBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ClocksBenchmark.java
index ff778d2..2d2ccb3 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ClocksBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ClocksBenchmark.java
@@ -152,7 +152,7 @@ public class ClocksBenchmark {
private static volatile OldCachedClock instance;
private static final Object INSTANCE_LOCK = new Object();
private volatile long millis = System.currentTimeMillis();
- private volatile short count = 0;
+ private volatile short count;
private OldCachedClock() {
final Thread updater = new Thread(new Runnable() {
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/LoggerConfigBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/LoggerConfigBenchmark.java
index 0d36c21..41ef9c8 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/LoggerConfigBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/LoggerConfigBenchmark.java
@@ -53,7 +53,7 @@ import org.openjdk.jmh.infra.Blackhole;
public class LoggerConfigBenchmark {
private final CopyOnWriteArraySet<AppenderControl> appenderSet = new CopyOnWriteArraySet<>();
- private volatile Filter filter = null;
+ private volatile Filter filter;
private final boolean additive = true;
private final boolean includeLocation = true;
private LoggerConfig parent;
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/TimeFormatBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/TimeFormatBenchmark.java
index fd462c2..b82547c 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/TimeFormatBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/TimeFormatBenchmark.java
@@ -57,8 +57,8 @@ public class TimeFormatBenchmark {
};
FastDateFormat fastDateFormat = FastDateFormat.getInstance("HH:mm:ss.SSS");
FixedDateFormat fixedDateFormat = FixedDateFormat.createIfSupported(new String[]{"ABSOLUTE"});
- volatile long midnightToday = 0;
- volatile long midnightTomorrow = 0;
+ volatile long midnightToday;
+ volatile long midnightTomorrow;
@State(Scope.Thread)
public static class BufferState {
diff --git a/log4j-samples/log4j-samples-flume-common/src/main/java/org/apache/logging/log4j/samples/app/LoggingController.java b/log4j-samples/log4j-samples-flume-common/src/main/java/org/apache/logging/log4j/samples/app/LoggingController.java
index e77650a..02d47b3 100755
--- a/log4j-samples/log4j-samples-flume-common/src/main/java/org/apache/logging/log4j/samples/app/LoggingController.java
+++ b/log4j-samples/log4j-samples-flume-common/src/main/java/org/apache/logging/log4j/samples/app/LoggingController.java
@@ -45,7 +45,7 @@ public class LoggingController {
*/
private static Logger logger = LogManager.getLogger(LoggingController.class);
- private volatile boolean generateLog = false;
+ private volatile boolean generateLog;
private final Random ran = new Random();
private List<AuditEvent> events;