You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2020/11/12 23:04:24 UTC
[logging-log4j2] branch release-2.x updated (4bd4b5e -> 1070916)
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a change to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git.
from 4bd4b5e LOG4J2-2916 Avoid redundant Kafka producer instantiation causing thread leaks.
new bd433c5 Update dependencies.
new f73102f Use Objects.equals().
new fa94ba2 Don't need to create arrays when calling a vararg method.
new 2b8a5ac Use lambdas.
new 1070916 Merge branch 'release-2.x' of https://gitbox.apache.org/repos/asf/logging-log4j2 into release-2.x
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../builders/appender/AsyncAppenderBuilder.java | 2 +-
.../builders/appender/ConsoleAppenderBuilder.java | 2 +-
.../appender/DailyRollingFileAppenderBuilder.java | 2 +-
.../builders/appender/FileAppenderBuilder.java | 2 +-
.../builders/appender/RewriteAppenderBuilder.java | 2 +-
.../appender/RollingFileAppenderBuilder.java | 2 +-
.../builders/appender/SyslogAppenderBuilder.java | 2 +-
.../builders/filter/LevelMatchFilterBuilder.java | 2 +-
.../builders/filter/LevelRangeFilterBuilder.java | 2 +-
.../builders/filter/StringMatchFilterBuilder.java | 2 +-
.../log4j/builders/layout/HtmlLayoutBuilder.java | 2 +-
.../log4j/builders/layout/TTCCLayoutBuilder.java | 2 +-
.../log4j/builders/layout/XmlLayoutBuilder.java | 2 +-
.../log4j/config/PropertiesConfiguration.java | 4 +-
.../org/apache/log4j/layout/Log4j1XmlLayout.java | 19 ++++-----
.../log4j/pattern/Log4j1MdcPatternConverter.java | 7 +---
.../org/apache/log4j/xml/XmlConfiguration.java | 16 ++++----
.../apache/logging/log4j/core/ThreadedTest.java | 23 ++++-------
.../core/appender/MemoryMappedFileManager.java | 17 ++++----
.../log4j/core/appender/TlsSyslogFrame.java | 7 +---
.../log4j/core/appender/mom/JmsManager.java | 16 +++-----
.../core/appender/mom/kafka/KafkaManager.java | 27 +++++-------
.../core/appender/nosql/NoSqlDatabaseManager.java | 15 +------
.../core/async/AsyncLoggerConfigDisruptor.java | 40 +++++-------------
.../logging/log4j/core/async/DisruptorUtil.java | 8 +---
.../core/async/JCToolsBlockingQueueFactory.java | 45 ++++++--------------
.../log4j/core/filter/DynamicThresholdFilter.java | 18 ++------
.../logging/log4j/core/filter/RegexFilter.java | 8 +---
.../logging/log4j/core/impl/ExtendedClassInfo.java | 13 ++----
.../log4j/core/impl/ExtendedStackTraceElement.java | 13 ++----
.../log4j/core/impl/JdkMapAdapterStringMap.java | 24 ++++-------
.../log4j/core/impl/ThreadContextDataInjector.java | 2 +-
.../logging/log4j/core/impl/ThrowableProxy.java | 13 ++----
.../log4j/core/jackson/ContextDataSerializer.java | 14 +++----
.../logging/log4j/core/layout/PatternMatch.java | 13 ++----
.../net/ssl/AbstractKeyStoreConfiguration.java | 13 ++----
.../log4j/core/net/ssl/KeyStoreConfiguration.java | 7 +---
.../log4j/core/net/ssl/SslConfiguration.java | 25 +++--------
.../log4j/core/net/ssl/StoreConfiguration.java | 6 +--
.../core/net/ssl/TrustStoreConfiguration.java | 7 +---
.../log4j/core/pattern/MdcPatternConverter.java | 11 ++---
.../logging/log4j/core/script/ScriptManager.java | 30 +++++---------
.../log4j/core/tools/picocli/CommandLine.java | 2 +-
.../logging/log4j/core/util/CachedClock.java | 15 +++----
.../logging/log4j/core/util/ClockFactory.java | 12 +++---
.../logging/log4j/core/util/KeyValuePair.java | 14 ++-----
.../log4j/core/util/datetime/FastDateParser.java | 7 +---
.../log4j/core/GarbageCollectionHelper.java | 27 ++++++------
.../logging/log4j/core/GcFreeLoggingTestUtil.java | 33 +++++++--------
.../jdbc/AbstractJdbcAppenderDataSourceTest.java | 9 +---
.../jdbc/JdbcAppenderMapMessageDataSourceTest.java | 9 +---
.../appender/mom/jeromq/JeroMqAppenderTest.java | 9 ++--
.../mom/kafka/KafkaAppenderCloseTimeoutTest.java | 9 +---
.../core/appender/mom/kafka/KafkaAppenderTest.java | 9 +---
.../appender/nosql/NoSqlDatabaseManagerTest.java | 16 +-------
.../log4j/core/async/RingBufferLogEventTest.java | 8 +---
.../core/async/perftest/AbstractRunQueue.java | 17 ++++----
.../core/async/perftest/MultiThreadPerfTest.java | 15 +++----
.../log4j/core/async/perftest/SimplePerfTest.java | 4 +-
.../core/impl/ThreadContextDataInjectorTest.java | 7 +---
.../logging/log4j/core/jackson/LevelMixInTest.java | 7 +---
.../ConcurrentLoggingWithJsonLayoutTest.java | 7 +---
.../core/util/datetime/FixedDateFormatTest.java | 4 +-
.../appender/FlumePersistentAppenderTest.java | 17 ++++----
.../apache/logging/log4j/jmx/gui/ClientGui.java | 48 +++++++++-------------
.../ContextDataJsonAttributeConverter.java | 9 +---
.../org/apache/logging/log4j/jul/ApiLogger.java | 9 ++--
.../layout/template/json/util/JsonWriterTest.java | 14 +------
.../logging/log4j/perf/jmh/ClocksBenchmark.java | 17 ++++----
.../perf/jmh/FileAppenderThrowableBenchmark.java | 21 ++++------
.../perf/jmh/SortedArrayVsHashMapBenchmark.java | 22 ++--------
.../logging/log4j/perf/jmh/StackWalkBenchmark.java | 22 ++++------
.../log4j/perf/jmh/TimeFormatBenchmark.java | 2 +-
.../logging/log4j/perf/nogc/OpenHashStringMap.java | 33 +++++----------
.../java/org/apache/logging/slf4j/Log4jMarker.java | 7 +---
.../java/org/apache/logging/slf4j/Log4jMarker.java | 7 +---
.../logging/log4j/web/WebLoggerContextUtils.java | 17 ++++----
.../log4j/web/Log4jWebInitializerImplTest.java | 11 ++---
.../apache/logging/log4j/web/TestAsyncServlet.java | 24 ++++-------
pom.xml | 2 +-
80 files changed, 320 insertions(+), 689 deletions(-)
[logging-log4j2] 05/05: Merge branch 'release-2.x' of
https://gitbox.apache.org/repos/asf/logging-log4j2 into release-2.x
Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 1070916a64bff567349d89703108dbd4053a5125
Merge: 2b8a5ac 4bd4b5e
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 12 18:04:01 2020 -0500
Merge branch 'release-2.x' of https://gitbox.apache.org/repos/asf/logging-log4j2 into release-2.x
.../core/appender/mom/kafka/KafkaManager.java | 4 +-
.../kafka/KafkaManagerProducerThreadLeakTest.java | 66 ++++++++++++++++++++++
.../KafkaManagerProducerThreadLeakTest.xml | 31 ++++++++++
src/changes/changes.xml | 3 +
4 files changed, 103 insertions(+), 1 deletion(-)
[logging-log4j2] 01/05: Update dependencies.
Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit bd433c5af748460f329270ed8c4886c33bd70577
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 12 16:36:29 2020 -0500
Update dependencies.
- Update org.apache.felix:org.apache.felix.framework 5.6.10 -> 5.6.12.
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 195d49e..769ef69 100644
--- a/pom.xml
+++ b/pom.xml
@@ -296,7 +296,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
- <version>5.6.10</version>
+ <version>5.6.12</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
[logging-log4j2] 03/05: Don't need to create arrays when calling a
vararg method.
Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit fa94ba25d39d4e0494f8f33b59199d3894cda64d
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 12 16:41:48 2020 -0500
Don't need to create arrays when calling a vararg method.
---
.../src/main/java/org/apache/log4j/xml/XmlConfiguration.java | 2 +-
.../java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java | 2 +-
.../org/apache/logging/log4j/core/async/perftest/SimplePerfTest.java | 4 ++--
.../apache/logging/log4j/core/util/datetime/FixedDateFormatTest.java | 4 ++--
.../java/org/apache/logging/log4j/perf/jmh/TimeFormatBenchmark.java | 2 +-
5 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
index 4cb4d73..d95e185 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
@@ -631,7 +631,7 @@ public class XmlConfiguration extends Log4j1Configuration {
try {
Class<?> clazz = LoaderUtil.loadClass(className);
Method toLevelMethod = clazz.getMethod("toLevel", ONE_STRING_PARAM);
- Level pri = (Level) toLevelMethod.invoke(null, new Object[]{priStr});
+ Level pri = (Level) toLevelMethod.invoke(null, priStr);
logger.setLevel(OptionConverter.convertLevel(pri));
} catch (Exception oops) {
if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java
index f61d216..4b73257 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java
@@ -3126,7 +3126,7 @@ public class CommandLine {
// right-adjust the command name by length of synopsis heading
final Text PADDING = Ansi.OFF.new Text(stringOf('X', synopsisHeadingLength));
- textTable.addRowValues(new Text[] {PADDING.append(colorScheme.commandText(commandName)), optionText});
+ textTable.addRowValues(PADDING.append(colorScheme.commandText(commandName)), optionText);
return textTable.toString().substring(synopsisHeadingLength); // cut off leading synopsis heading spaces
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/SimplePerfTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/SimplePerfTest.java
index dd4f82a..e980a8f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/SimplePerfTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/SimplePerfTest.java
@@ -139,9 +139,9 @@ public class SimplePerfTest {
// use reflection so we can use the same test with older versions of log4j2
try {
final Method setUseThreadLocals =
- AsyncLoggerContext.class.getDeclaredMethod("setUseThreadLocals", new Class[]{boolean.class});
+ AsyncLoggerContext.class.getDeclaredMethod("setUseThreadLocals", boolean.class);
final LoggerContext context = LogManager.getContext(false);
- setUseThreadLocals.invoke(context, new Object[] {Boolean.TRUE});
+ setUseThreadLocals.invoke(context, Boolean.TRUE);
} catch (final Throwable ignored) {
}
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/util/datetime/FixedDateFormatTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/datetime/FixedDateFormatTest.java
index 3caab80..dc53b9c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/util/datetime/FixedDateFormatTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/datetime/FixedDateFormatTest.java
@@ -125,14 +125,14 @@ public class FixedDateFormatTest {
@Test
public void testCreateIfSupported_defaultTimeZoneIfOptionsArrayWithSecondNullElement() {
- final FixedDateFormat fmt = FixedDateFormat.createIfSupported(new String[] {DEFAULT.getPattern(), null, ""});
+ final FixedDateFormat fmt = FixedDateFormat.createIfSupported(DEFAULT.getPattern(), null, "");
assertEquals(DEFAULT.getPattern(), fmt.getFormat());
assertEquals(TimeZone.getDefault(), fmt.getTimeZone());
}
@Test
public void testCreateIfSupported_customTimeZoneIfOptionsArrayWithTimeZoneElement() {
- final FixedDateFormat fmt = FixedDateFormat.createIfSupported(new String[] {DEFAULT.getPattern(), "+08:00", ""});
+ final FixedDateFormat fmt = FixedDateFormat.createIfSupported(DEFAULT.getPattern(), "+08:00", "");
assertEquals(DEFAULT.getPattern(), fmt.getFormat());
assertEquals(TimeZone.getTimeZone("+08:00"), fmt.getTimeZone());
}
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 99145f4..6ae0a8d 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
@@ -56,7 +56,7 @@ public class TimeFormatBenchmark {
}
};
FastDateFormat fastDateFormat = FastDateFormat.getInstance("HH:mm:ss.SSS");
- FixedDateFormat fixedDateFormat = FixedDateFormat.createIfSupported(new String[]{"ABSOLUTE"});
+ FixedDateFormat fixedDateFormat = FixedDateFormat.createIfSupported("ABSOLUTE");
volatile long midnightToday;
volatile long midnightTomorrow;
[logging-log4j2] 02/05: Use Objects.equals().
Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit f73102f7b79afa05633a272a984e093e437a7aac
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 12 16:38:24 2020 -0500
Use Objects.equals().
---
.../log4j/core/appender/TlsSyslogFrame.java | 7 ++----
.../log4j/core/filter/DynamicThresholdFilter.java | 18 +++-------------
.../logging/log4j/core/impl/ExtendedClassInfo.java | 13 +++--------
.../log4j/core/impl/ExtendedStackTraceElement.java | 13 +++--------
.../logging/log4j/core/impl/ThrowableProxy.java | 13 +++--------
.../logging/log4j/core/layout/PatternMatch.java | 13 +++--------
.../net/ssl/AbstractKeyStoreConfiguration.java | 13 +++--------
.../log4j/core/net/ssl/KeyStoreConfiguration.java | 7 ++----
.../log4j/core/net/ssl/SslConfiguration.java | 25 +++++-----------------
.../log4j/core/net/ssl/StoreConfiguration.java | 6 +-----
.../core/net/ssl/TrustStoreConfiguration.java | 7 ++----
.../logging/log4j/core/util/KeyValuePair.java | 14 ++++--------
.../logging/log4j/core/jackson/LevelMixInTest.java | 7 ++----
.../java/org/apache/logging/slf4j/Log4jMarker.java | 7 ++----
.../java/org/apache/logging/slf4j/Log4jMarker.java | 7 ++----
15 files changed, 40 insertions(+), 130 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java
index 27e90cd..9b508d8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java
@@ -17,6 +17,7 @@
package org.apache.logging.log4j.core.appender;
import java.nio.charset.StandardCharsets;
+import java.util.Objects;
import org.apache.logging.log4j.util.Chars;
@@ -64,11 +65,7 @@ public class TlsSyslogFrame {
return false;
}
final TlsSyslogFrame other = (TlsSyslogFrame) obj;
- if (message == null) {
- if (other.message != null) {
- return false;
- }
- } else if (!message.equals(other.message)) {
+ if (!Objects.equals(message, other.message)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
index 923a39c..5a12aef 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
@@ -98,25 +98,13 @@ public final class DynamicThresholdFilter extends AbstractFilter {
return false;
}
final DynamicThresholdFilter other = (DynamicThresholdFilter) obj;
- if (defaultThreshold == null) {
- if (other.defaultThreshold != null) {
- return false;
- }
- } else if (!defaultThreshold.equals(other.defaultThreshold)) {
+ if (!Objects.equals(defaultThreshold, other.defaultThreshold)) {
return false;
}
- if (key == null) {
- if (other.key != null) {
- return false;
- }
- } else if (!key.equals(other.key)) {
+ if (!Objects.equals(key, other.key)) {
return false;
}
- if (levelMap == null) {
- if (other.levelMap != null) {
- return false;
- }
- } else if (!levelMap.equals(other.levelMap)) {
+ if (!Objects.equals(levelMap, other.levelMap)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedClassInfo.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedClassInfo.java
index 2be5f5c..086dbbd 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedClassInfo.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedClassInfo.java
@@ -17,6 +17,7 @@
package org.apache.logging.log4j.core.impl;
import java.io.Serializable;
+import java.util.Objects;
import org.apache.logging.log4j.core.pattern.PlainTextRenderer;
import org.apache.logging.log4j.core.pattern.TextRenderer;
@@ -63,18 +64,10 @@ public final class ExtendedClassInfo implements Serializable {
if (this.exact != other.exact) {
return false;
}
- if (this.location == null) {
- if (other.location != null) {
- return false;
- }
- } else if (!this.location.equals(other.location)) {
+ if (!Objects.equals(this.location, other.location)) {
return false;
}
- if (this.version == null) {
- if (other.version != null) {
- return false;
- }
- } else if (!this.version.equals(other.version)) {
+ if (!Objects.equals(this.version, other.version)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java
index 06183e4..255278d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java
@@ -17,6 +17,7 @@
package org.apache.logging.log4j.core.impl;
import java.io.Serializable;
+import java.util.Objects;
import org.apache.logging.log4j.core.pattern.PlainTextRenderer;
import org.apache.logging.log4j.core.pattern.TextRenderer;
@@ -67,18 +68,10 @@ public final class ExtendedStackTraceElement implements Serializable {
return false;
}
final ExtendedStackTraceElement other = (ExtendedStackTraceElement) obj;
- if (this.extraClassInfo == null) {
- if (other.extraClassInfo != null) {
- return false;
- }
- } else if (!this.extraClassInfo.equals(other.extraClassInfo)) {
+ if (!Objects.equals(this.extraClassInfo, other.extraClassInfo)) {
return false;
}
- if (this.stackTraceElement == null) {
- if (other.stackTraceElement != null) {
- return false;
- }
- } else if (!this.stackTraceElement.equals(other.stackTraceElement)) {
+ if (!Objects.equals(this.stackTraceElement, other.stackTraceElement)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
index 1c043af..c3ed31d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.Stack;
@@ -152,21 +153,13 @@ public class ThrowableProxy implements Serializable {
return false;
}
final ThrowableProxy other = (ThrowableProxy) obj;
- if (this.causeProxy == null) {
- if (other.causeProxy != null) {
- return false;
- }
- } else if (!this.causeProxy.equals(other.causeProxy)) {
+ if (!Objects.equals(this.causeProxy, other.causeProxy)) {
return false;
}
if (this.commonElementCount != other.commonElementCount) {
return false;
}
- if (this.name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!this.name.equals(other.name)) {
+ if (!Objects.equals(this.name, other.name)) {
return false;
}
if (!Arrays.equals(this.extendedStackTrace, other.extendedStackTrace)) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternMatch.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternMatch.java
index 2c6803d..c7f3b68 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternMatch.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternMatch.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.core.layout;
import java.io.ObjectStreamException;
import java.io.Serializable;
+import java.util.Objects;
import org.apache.logging.log4j.core.config.Node;
import org.apache.logging.log4j.core.config.plugins.Plugin;
@@ -123,18 +124,10 @@ public final class PatternMatch {
return false;
}
final PatternMatch other = (PatternMatch) obj;
- if (key == null) {
- if (other.key != null) {
- return false;
- }
- } else if (!key.equals(other.key)) {
+ if (!Objects.equals(key, other.key)) {
return false;
}
- if (pattern == null) {
- if (other.pattern != null) {
- return false;
- }
- } else if (!pattern.equals(other.pattern)) {
+ if (!Objects.equals(pattern, other.pattern)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
index 27ab29d..a79a657 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
@@ -24,6 +24,7 @@ import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.util.Arrays;
+import java.util.Objects;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.util.NetUtils;
@@ -128,18 +129,10 @@ public class AbstractKeyStoreConfiguration extends StoreConfiguration<KeyStore>
return false;
}
final AbstractKeyStoreConfiguration other = (AbstractKeyStoreConfiguration) obj;
- if (keyStore == null) {
- if (other.keyStore != null) {
- return false;
- }
- } else if (!keyStore.equals(other.keyStore)) {
+ if (!Objects.equals(keyStore, other.keyStore)) {
return false;
}
- if (keyStoreType == null) {
- if (other.keyStoreType != null) {
- return false;
- }
- } else if (!keyStoreType.equals(other.keyStoreType)) {
+ if (!Objects.equals(keyStoreType, other.keyStoreType)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
index ff479be..edd2554 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
@@ -20,6 +20,7 @@ import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.util.Arrays;
+import java.util.Objects;
import javax.net.ssl.KeyManagerFactory;
@@ -197,11 +198,7 @@ public class KeyStoreConfiguration extends AbstractKeyStoreConfiguration {
return false;
}
final KeyStoreConfiguration other = (KeyStoreConfiguration) obj;
- if (keyManagerFactoryAlgorithm == null) {
- if (other.keyManagerFactoryAlgorithm != null) {
- return false;
- }
- } else if (!keyManagerFactoryAlgorithm.equals(other.keyManagerFactoryAlgorithm)) {
+ if (!Objects.equals(keyManagerFactoryAlgorithm, other.keyManagerFactoryAlgorithm)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
index e6df7ff..1b10a37 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
@@ -20,6 +20,7 @@ import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
+import java.util.Objects;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
@@ -280,32 +281,16 @@ public class SslConfiguration {
return false;
}
final SslConfiguration other = (SslConfiguration) obj;
- if (keyStoreConfig == null) {
- if (other.keyStoreConfig != null) {
- return false;
- }
- } else if (!keyStoreConfig.equals(other.keyStoreConfig)) {
+ if (!Objects.equals(keyStoreConfig, other.keyStoreConfig)) {
return false;
}
- if (protocol == null) {
- if (other.protocol != null) {
- return false;
- }
- } else if (!protocol.equals(other.protocol)) {
+ if (!Objects.equals(protocol, other.protocol)) {
return false;
}
- if (sslContext == null) {
- if (other.sslContext != null) {
- return false;
- }
- } else if (!sslContext.equals(other.sslContext)) {
+ if (!Objects.equals(sslContext, other.sslContext)) {
return false;
}
- if (trustStoreConfig == null) {
- if (other.trustStoreConfig != null) {
- return false;
- }
- } else if (!trustStoreConfig.equals(other.trustStoreConfig)) {
+ if (!Objects.equals(trustStoreConfig, other.trustStoreConfig)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfiguration.java
index 9bdeaf5..6d4e686 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfiguration.java
@@ -121,11 +121,7 @@ public class StoreConfiguration<T> {
return false;
}
final StoreConfiguration<?> other = (StoreConfiguration<?>) obj;
- if (location == null) {
- if (other.location != null) {
- return false;
- }
- } else if (!location.equals(other.location)) {
+ if (!Objects.equals(location, other.location)) {
return false;
}
if (!Arrays.equals(passwordProvider.getPassword(), other.passwordProvider.getPassword())) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
index 08ddc69..06188f8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.core.net.ssl;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
+import java.util.Objects;
import javax.net.ssl.TrustManagerFactory;
@@ -177,11 +178,7 @@ public class TrustStoreConfiguration extends AbstractKeyStoreConfiguration {
return false;
}
final TrustStoreConfiguration other = (TrustStoreConfiguration) obj;
- if (trustManagerFactoryAlgorithm == null) {
- if (other.trustManagerFactoryAlgorithm != null) {
- return false;
- }
- } else if (!trustManagerFactoryAlgorithm.equals(other.trustManagerFactoryAlgorithm)) {
+ if (!Objects.equals(trustManagerFactoryAlgorithm, other.trustManagerFactoryAlgorithm)) {
return false;
}
return true;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java
index 6eae7de..93795da 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java
@@ -17,6 +17,8 @@
package org.apache.logging.log4j.core.util;
+import java.util.Objects;
+
import org.apache.logging.log4j.core.config.Node;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
@@ -115,18 +117,10 @@ public final class KeyValuePair {
return false;
}
final KeyValuePair other = (KeyValuePair) obj;
- if (key == null) {
- if (other.key != null) {
- return false;
- }
- } else if (!key.equals(other.key)) {
+ if (!Objects.equals(key, other.key)) {
return false;
}
- if (value == null) {
- if (other.value != null) {
- return false;
- }
- } else if (!value.equals(other.value)) {
+ if (!Objects.equals(value, other.value)) {
return false;
}
return true;
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java
index acff4b4..53471b6 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java
@@ -17,6 +17,7 @@
package org.apache.logging.log4j.core.jackson;
import java.io.IOException;
+import java.util.Objects;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.categories.Layouts;
@@ -52,11 +53,7 @@ public abstract class LevelMixInTest {
return false;
}
final Fixture other = (Fixture) obj;
- if (this.level == null) {
- if (other.level != null) {
- return false;
- }
- } else if (!this.level.equals(other.level)) {
+ if (!Objects.equals(this.level, other.level)) {
return false;
}
return true;
diff --git a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
index f0c5b6c..a6e46c5 100644
--- a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
+++ b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
@@ -19,6 +19,7 @@ package org.apache.logging.slf4j;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Objects;
import org.apache.logging.log4j.MarkerManager;
import org.slf4j.IMarkerFactory;
@@ -78,11 +79,7 @@ public class Log4jMarker implements Marker {
return false;
}
final Log4jMarker other = (Log4jMarker) obj;
- if (marker == null) {
- if (other.marker != null) {
- return false;
- }
- } else if (!marker.equals(other.marker)) {
+ if (!Objects.equals(marker, other.marker)) {
return false;
}
return true;
diff --git a/log4j-slf4j18-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java b/log4j-slf4j18-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
index 00351f9..c0cb4a0 100644
--- a/log4j-slf4j18-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
+++ b/log4j-slf4j18-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
@@ -19,6 +19,7 @@ package org.apache.logging.slf4j;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Objects;
import org.apache.logging.log4j.MarkerManager;
import org.slf4j.IMarkerFactory;
@@ -78,11 +79,7 @@ class Log4jMarker implements Marker {
return false;
}
final Log4jMarker other = (Log4jMarker) obj;
- if (marker == null) {
- if (other.marker != null) {
- return false;
- }
- } else if (!marker.equals(other.marker)) {
+ if (!Objects.equals(marker, other.marker)) {
return false;
}
return true;
[logging-log4j2] 04/05: Use lambdas.
Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 2b8a5ac373eba0fc1a5920c7fa18677ef66633ac
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 12 18:03:45 2020 -0500
Use lambdas.
---
.../builders/appender/AsyncAppenderBuilder.java | 2 +-
.../builders/appender/ConsoleAppenderBuilder.java | 2 +-
.../appender/DailyRollingFileAppenderBuilder.java | 2 +-
.../builders/appender/FileAppenderBuilder.java | 2 +-
.../builders/appender/RewriteAppenderBuilder.java | 2 +-
.../appender/RollingFileAppenderBuilder.java | 2 +-
.../builders/appender/SyslogAppenderBuilder.java | 2 +-
.../builders/filter/LevelMatchFilterBuilder.java | 2 +-
.../builders/filter/LevelRangeFilterBuilder.java | 2 +-
.../builders/filter/StringMatchFilterBuilder.java | 2 +-
.../log4j/builders/layout/HtmlLayoutBuilder.java | 2 +-
.../log4j/builders/layout/TTCCLayoutBuilder.java | 2 +-
.../log4j/builders/layout/XmlLayoutBuilder.java | 2 +-
.../log4j/config/PropertiesConfiguration.java | 4 +-
.../org/apache/log4j/layout/Log4j1XmlLayout.java | 19 ++++-----
.../log4j/pattern/Log4j1MdcPatternConverter.java | 7 +---
.../org/apache/log4j/xml/XmlConfiguration.java | 14 +++----
.../apache/logging/log4j/core/ThreadedTest.java | 23 ++++-------
.../core/appender/MemoryMappedFileManager.java | 17 ++++----
.../log4j/core/appender/mom/JmsManager.java | 16 +++-----
.../core/appender/mom/kafka/KafkaManager.java | 27 +++++-------
.../core/appender/nosql/NoSqlDatabaseManager.java | 15 +------
.../core/async/AsyncLoggerConfigDisruptor.java | 40 +++++-------------
.../logging/log4j/core/async/DisruptorUtil.java | 8 +---
.../core/async/JCToolsBlockingQueueFactory.java | 45 ++++++--------------
.../logging/log4j/core/filter/RegexFilter.java | 8 +---
.../log4j/core/impl/JdkMapAdapterStringMap.java | 24 ++++-------
.../log4j/core/impl/ThreadContextDataInjector.java | 2 +-
.../log4j/core/jackson/ContextDataSerializer.java | 14 +++----
.../log4j/core/pattern/MdcPatternConverter.java | 11 ++---
.../logging/log4j/core/script/ScriptManager.java | 30 +++++---------
.../logging/log4j/core/util/CachedClock.java | 15 +++----
.../logging/log4j/core/util/ClockFactory.java | 12 +++---
.../log4j/core/util/datetime/FastDateParser.java | 7 +---
.../log4j/core/GarbageCollectionHelper.java | 27 ++++++------
.../logging/log4j/core/GcFreeLoggingTestUtil.java | 33 +++++++--------
.../jdbc/AbstractJdbcAppenderDataSourceTest.java | 9 +---
.../jdbc/JdbcAppenderMapMessageDataSourceTest.java | 9 +---
.../appender/mom/jeromq/JeroMqAppenderTest.java | 9 ++--
.../mom/kafka/KafkaAppenderCloseTimeoutTest.java | 9 +---
.../core/appender/mom/kafka/KafkaAppenderTest.java | 9 +---
.../appender/nosql/NoSqlDatabaseManagerTest.java | 16 +-------
.../log4j/core/async/RingBufferLogEventTest.java | 8 +---
.../core/async/perftest/AbstractRunQueue.java | 17 ++++----
.../core/async/perftest/MultiThreadPerfTest.java | 15 +++----
.../core/impl/ThreadContextDataInjectorTest.java | 7 +---
.../ConcurrentLoggingWithJsonLayoutTest.java | 7 +---
.../appender/FlumePersistentAppenderTest.java | 17 ++++----
.../apache/logging/log4j/jmx/gui/ClientGui.java | 48 +++++++++-------------
.../ContextDataJsonAttributeConverter.java | 9 +---
.../org/apache/logging/log4j/jul/ApiLogger.java | 9 ++--
.../layout/template/json/util/JsonWriterTest.java | 14 +------
.../logging/log4j/perf/jmh/ClocksBenchmark.java | 17 ++++----
.../perf/jmh/FileAppenderThrowableBenchmark.java | 21 ++++------
.../perf/jmh/SortedArrayVsHashMapBenchmark.java | 22 ++--------
.../logging/log4j/perf/jmh/StackWalkBenchmark.java | 22 ++++------
.../logging/log4j/perf/nogc/OpenHashStringMap.java | 33 +++++----------
.../logging/log4j/web/WebLoggerContextUtils.java | 17 ++++----
.../log4j/web/Log4jWebInitializerImplTest.java | 11 ++---
.../apache/logging/log4j/web/TestAsyncServlet.java | 24 ++++-------
60 files changed, 272 insertions(+), 551 deletions(-)
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
index 92839f0..46a0b0c 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
@@ -70,7 +70,7 @@ public class AsyncAppenderBuilder extends AbstractBuilder implements AppenderBui
Holder<Boolean> includeLocation = new BooleanHolder();
Holder<String> level = new Holder<>("trace");
Holder<Integer> bufferSize = new Holder<>(1024);
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case APPENDER_REF_TAG:
Appender appender = config.findAppenderByReference(currentElement);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
index 83f417d..cd2328a 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
@@ -71,7 +71,7 @@ public class ConsoleAppenderBuilder extends AbstractBuilder implements AppenderB
Holder<Layout> layout = new Holder<>();
Holder<List<Filter>> filters = new Holder<>(new ArrayList<>());
Holder<String> level = new Holder<>();
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
layout.set(config.parseLayout(currentElement));
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
index 9f8db90..9115f29 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
@@ -77,7 +77,7 @@ public class DailyRollingFileAppenderBuilder extends AbstractBuilder implements
Holder<Boolean> append = new BooleanHolder();
Holder<Boolean> bufferedIo = new BooleanHolder();
Holder<Integer> bufferSize = new Holder<>(8192);
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
layout.set(config.parseLayout(currentElement));
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
index 41d3820..e3be66d 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
@@ -71,7 +71,7 @@ public class FileAppenderBuilder extends AbstractBuilder implements AppenderBuil
Holder<Boolean> append = new BooleanHolder();
Holder<Boolean> bufferedIo = new BooleanHolder();
Holder<Integer> bufferSize = new Holder<>(8192);
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
layout.set(config.parseLayout(currentElement));
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
index f6526ee..b06973c 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
@@ -72,7 +72,7 @@ public class RewriteAppenderBuilder extends AbstractBuilder implements AppenderB
Holder<RewritePolicy> rewritePolicyHolder = new Holder<>();
Holder<String> level = new Holder<>();
Holder<Filter> filter = new Holder<>();
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case APPENDER_REF_TAG:
Appender appender = config.findAppenderByReference(currentElement);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
index 04b7e7f..6f04f88 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
@@ -80,7 +80,7 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
Holder<String> maxSize = new Holder<>();
Holder<String> maxBackups = new Holder<>();
Holder<String> level = new Holder<>();
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
layout.set(config.parseLayout(currentElement));
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
index d449cac..2f353ac 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
@@ -73,7 +73,7 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
Holder<String> facility = new Holder<>();
Holder<String> level = new Holder<>();
Holder<String> host = new Holder<>();
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
layout.set(config.parseLayout(currentElement));
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
index d7f85bb..f377a77 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
@@ -57,7 +57,7 @@ public class LevelMatchFilterBuilder extends AbstractBuilder implements FilterBu
public Filter parseFilter(Element filterElement, XmlConfiguration config) {
final Holder<String> level = new Holder<>();
final Holder<Boolean> acceptOnMatch = new BooleanHolder();
- forEachElement(filterElement.getElementsByTagName("param"), (currentElement) -> {
+ forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
switch (currentElement.getAttribute(NAME_ATTR)) {
case LEVEL:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
index 43ce0ec..5033089 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
@@ -59,7 +59,7 @@ public class LevelRangeFilterBuilder extends AbstractBuilder implements FilterBu
final Holder<String> levelMax = new Holder<>();
final Holder<String> levelMin = new Holder<>();
final Holder<Boolean> acceptOnMatch = new BooleanHolder();
- forEachElement(filterElement.getElementsByTagName("param"), (currentElement) -> {
+ forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
switch (currentElement.getAttribute(NAME_ATTR)) {
case LEVEL_MAX:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
index 877acbe..781c9e4 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
@@ -46,7 +46,7 @@ public class StringMatchFilterBuilder extends AbstractBuilder implements FilterB
public Filter parseFilter(Element filterElement, XmlConfiguration config) {
final Holder<Boolean> acceptOnMatch = new BooleanHolder();
final Holder<String> text = new Holder<>();
- forEachElement(filterElement.getElementsByTagName("param"), (currentElement) -> {
+ forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
switch (currentElement.getAttribute(NAME_ATTR)) {
case STRING_TO_MATCH:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
index 5f70a7b..7141dec 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
@@ -57,7 +57,7 @@ public class HtmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder
public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
final Holder<String> title = new Holder<>();
final Holder<Boolean> locationInfo = new BooleanHolder();
- forEachElement(layoutElement.getElementsByTagName("param"), (currentElement) -> {
+ forEachElement(layoutElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals(PARAM_TAG)) {
if (TITLE.equalsIgnoreCase(currentElement.getAttribute("name"))) {
title.set(currentElement.getAttribute("value"));
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
index 583f8b7..e09a09a 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
@@ -63,7 +63,7 @@ public class TTCCLayoutBuilder extends AbstractBuilder implements LayoutBuilder
final Holder<Boolean> contextPrinting = new BooleanHolder();
final Holder<String> dateFormat = new Holder<>();
final Holder<String> timezone = new Holder<>();
- forEachElement(layoutElement.getElementsByTagName("param"), (currentElement) -> {
+ forEachElement(layoutElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals(PARAM_TAG)) {
switch (currentElement.getAttribute(NAME_ATTR)) {
case THREAD_PRINTING_PARAM:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
index 89d2dca..5c13875 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
@@ -58,7 +58,7 @@ public class XmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
final Holder<Boolean> properties = new BooleanHolder();
final Holder<Boolean> locationInfo = new BooleanHolder();
- forEachElement(layoutElement.getElementsByTagName(PARAM_TAG), (currentElement) -> {
+ forEachElement(layoutElement.getElementsByTagName(PARAM_TAG), currentElement -> {
if (PROPERTIES.equalsIgnoreCase(currentElement.getAttribute("name"))) {
properties.set(Boolean.parseBoolean(currentElement.getAttribute("value")));
} else if (LOCATION_INFO.equalsIgnoreCase(currentElement.getAttribute("name"))) {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
index dd72c9b..fd5a749 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
@@ -485,7 +485,7 @@ public class PropertiesConfiguration extends Log4j1Configuration {
public void addProperties(final Object obj, final String[] keys, final Properties props, final String prefix) {
final Properties edited = new Properties();
- props.stringPropertyNames().stream().filter((name) -> {
+ props.stringPropertyNames().stream().filter(name -> {
if (name.startsWith(prefix)) {
for (String key : keys) {
if (name.equals(key)) {
@@ -495,7 +495,7 @@ public class PropertiesConfiguration extends Log4j1Configuration {
return true;
}
return false;
- }).forEach((name) -> edited.put(name, props.getProperty(name)));
+ }).forEach(name -> edited.put(name, props.getProperty(name)));
PropertySetter.setProperties(obj, edited, prefix + ".");
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java b/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java
index 9522b9e..ecdd0b5 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java
@@ -20,6 +20,7 @@ import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
import java.util.List;
+import java.util.Objects;
import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
@@ -30,7 +31,6 @@ import org.apache.logging.log4j.core.config.plugins.PluginFactory;
import org.apache.logging.log4j.core.layout.AbstractStringLayout;
import org.apache.logging.log4j.core.layout.ByteBufferDestination;
import org.apache.logging.log4j.core.util.Transform;
-import org.apache.logging.log4j.util.BiConsumer;
import org.apache.logging.log4j.util.ReadOnlyStringMap;
import org.apache.logging.log4j.util.Strings;
@@ -137,16 +137,13 @@ public final class Log4j1XmlLayout extends AbstractStringLayout {
final ReadOnlyStringMap contextMap = event.getContextData();
if (!contextMap.isEmpty()) {
buf.append("<log4j:properties>\r\n");
- contextMap.forEach(new BiConsumer<String, String>() {
- @Override
- public void accept(final String key, final String val) {
- if (val != null) {
- buf.append("<log4j:data name=\"");
- buf.append(Transform.escapeHtmlTags(key));
- buf.append("\" value=\"");
- buf.append(Transform.escapeHtmlTags(val));
- buf.append("\"/>\r\n");
- }
+ contextMap.forEach((key, val) -> {
+ if (val != null) {
+ buf.append("<log4j:data name=\"");
+ buf.append(Transform.escapeHtmlTags(key));
+ buf.append("\" value=\"");
+ buf.append(Transform.escapeHtmlTags(Objects.toString(val, null)));
+ buf.append("\"/>\r\n");
}
});
buf.append("</log4j:properties>\r\n");
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/pattern/Log4j1MdcPatternConverter.java b/log4j-1.2-api/src/main/java/org/apache/log4j/pattern/Log4j1MdcPatternConverter.java
index b4ae0c5..a70c28d 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/pattern/Log4j1MdcPatternConverter.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/pattern/Log4j1MdcPatternConverter.java
@@ -79,10 +79,5 @@ public final class Log4j1MdcPatternConverter extends LogEventPatternConverter {
}
}
- private static TriConsumer<String, Object, StringBuilder> APPEND_EACH = new TriConsumer<String, Object, StringBuilder>() {
- @Override
- public void accept(final String key, final Object value, final StringBuilder toAppendTo) {
- toAppendTo.append('{').append(key).append(',').append(value).append('}');
- }
- };
+ private static TriConsumer<String, Object, StringBuilder> APPEND_EACH = (key, value, toAppendTo) -> toAppendTo.append('{').append(key).append(',').append(value).append('}');
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
index d95e185..cbf1551 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
@@ -353,7 +353,7 @@ public class XmlConfiguration extends Log4j1Configuration {
PropertySetter propSetter = new PropertySetter(appender);
appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));
- forEachElement(appenderElement.getChildNodes(), (currentElement) -> {
+ forEachElement(appenderElement.getChildNodes(), currentElement -> {
// Parse appender parameters
switch (currentElement.getTagName()) {
case PARAM_TAG:
@@ -427,7 +427,7 @@ public class XmlConfiguration extends Log4j1Configuration {
RewritePolicy policy = LoaderUtil.newInstanceOf(className);
PropertySetter propSetter = new PropertySetter(policy);
- forEachElement(element.getChildNodes(), (currentElement) -> {
+ forEachElement(element.getChildNodes(), currentElement -> {
if (currentElement.getTagName().equalsIgnoreCase(PARAM_TAG)) {
setParameter(currentElement, propSetter);
}
@@ -462,7 +462,7 @@ public class XmlConfiguration extends Log4j1Configuration {
eh.setAppender(appender);
PropertySetter propSetter = new PropertySetter(eh);
- forEachElement(element.getChildNodes(), (currentElement) -> {
+ forEachElement(element.getChildNodes(), currentElement -> {
String tagName = currentElement.getTagName();
if (tagName.equals(PARAM_TAG)) {
setParameter(currentElement, propSetter);
@@ -482,7 +482,7 @@ public class XmlConfiguration extends Log4j1Configuration {
Filter filter = manager.parseFilter(className, filterElement, this);
if (filter == null) {
PropertySetter propSetter = new PropertySetter(filter);
- forEachElement(filterElement.getChildNodes(), (currentElement) -> {
+ forEachElement(filterElement.getChildNodes(), currentElement -> {
String tagName = currentElement.getTagName();
if (tagName.equals(PARAM_TAG)) {
setParameter(currentElement, propSetter);
@@ -527,7 +527,7 @@ public class XmlConfiguration extends Log4j1Configuration {
final PropertySetter propSetter = new PropertySetter(loggerConfig);
loggerConfig.getAppenderRefs().clear();
- forEachElement(catElement.getChildNodes(), (currentElement) -> {
+ forEachElement(catElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case APPENDER_REF_TAG: {
Appender appender = findAppenderByReference(currentElement);
@@ -574,7 +574,7 @@ public class XmlConfiguration extends Log4j1Configuration {
try {
Layout layout = LoaderUtil.newInstanceOf(className);
PropertySetter propSetter = new PropertySetter(layout);
- forEachElement(layout_element.getChildNodes(), (currentElement) -> {
+ forEachElement(layout_element.getChildNodes(), currentElement -> {
String tagName = currentElement.getTagName();
if (tagName.equals(PARAM_TAG)) {
setParameter(currentElement, propSetter);
@@ -696,7 +696,7 @@ public class XmlConfiguration extends Log4j1Configuration {
final StatusConfiguration statusConfig = new StatusConfiguration().withStatus(status);
statusConfig.initialize();
- forEachElement(element.getChildNodes(), (currentElement) -> {
+ forEachElement(element.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case CATEGORY: case LOGGER_ELEMENT:
parseCategory(currentElement);
diff --git a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedTest.java b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedTest.java
index 3df298a..9038209 100644
--- a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedTest.java
+++ b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedTest.java
@@ -29,8 +29,6 @@ import org.junit.ClassRule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
import org.junit.runners.model.Statement;
/**
@@ -50,20 +48,15 @@ public class ThreadedTest {
// this would look pretty sweet with lambdas
@ClassRule
- public static RuleChain chain = RuleChain.outerRule(new TestRule() {
+ public static RuleChain chain = RuleChain.outerRule((base, description) -> new Statement() {
@Override
- public Statement apply(final Statement base, final Description description) {
- return new Statement() {
- @Override
- public void evaluate() throws Throwable {
- deleteDir();
- try {
- base.evaluate();
- } finally {
- deleteDir();
- }
- }
- };
+ public void evaluate() throws Throwable {
+ deleteDir();
+ try {
+ base.evaluate();
+ } finally {
+ deleteDir();
+ }
}
}).around(context);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
index 7d5fd8d..d8d9ced 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
@@ -213,16 +213,13 @@ public class MemoryMappedFileManager extends OutputStreamManager {
private static void unsafeUnmap(final MappedByteBuffer mbb) throws PrivilegedActionException {
LOGGER.debug("MMapAppender unmapping old buffer...");
final long startNanos = System.nanoTime();
- AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
- @Override
- public Object run() throws Exception {
- final Method getCleanerMethod = mbb.getClass().getMethod("cleaner");
- getCleanerMethod.setAccessible(true);
- final Object cleaner = getCleanerMethod.invoke(mbb); // sun.misc.Cleaner instance
- final Method cleanMethod = cleaner.getClass().getMethod("clean");
- cleanMethod.invoke(cleaner);
- return null;
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction<Object>) () -> {
+ final Method getCleanerMethod = mbb.getClass().getMethod("cleaner");
+ getCleanerMethod.setAccessible(true);
+ final Object cleaner = getCleanerMethod.invoke(mbb); // sun.misc.Cleaner instance
+ final Method cleanMethod = cleaner.getClass().getMethod("clean");
+ cleanMethod.invoke(cleaner);
+ return null;
});
final float millis = (float) ((System.nanoTime() - startNanos) / NANOS_PER_MILLISEC);
LOGGER.debug("MMapAppender unmapped buffer OK in {} millis", millis);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
index 959f468..5625923 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
@@ -40,7 +40,6 @@ import org.apache.logging.log4j.core.appender.ManagerFactory;
import org.apache.logging.log4j.core.net.JndiManager;
import org.apache.logging.log4j.core.util.Log4jThread;
import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.BiConsumer;
/**
* Consider this class <b>private</b>; it is only <b>public</b> for access by integration tests.
@@ -417,15 +416,12 @@ public class JmsManager extends AbstractManager {
private MapMessage map(final org.apache.logging.log4j.message.MapMessage<?, ?> log4jMapMessage,
final MapMessage jmsMapMessage) {
// Map without calling org.apache.logging.log4j.message.MapMessage#getData() which makes a copy of the map.
- log4jMapMessage.forEach(new BiConsumer<String, Object>() {
- @Override
- public void accept(final String key, final Object value) {
- try {
- jmsMapMessage.setObject(key, value);
- } catch (final JMSException e) {
- throw new IllegalArgumentException(String.format("%s mapping key '%s' to value '%s': %s",
- e.getClass(), key, value, e.getLocalizedMessage()), e);
- }
+ log4jMapMessage.forEach((key, value) -> {
+ try {
+ jmsMapMessage.setObject(key, value);
+ } catch (final JMSException e) {
+ throw new IllegalArgumentException(String.format("%s mapping key '%s' to value '%s': %s",
+ e.getClass(), key, value, e.getLocalizedMessage()), e);
}
});
return jmsMapMessage;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
index 394cef0..547b061 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
@@ -25,7 +25,6 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;
@@ -90,14 +89,11 @@ public class KafkaManager extends AbstractManager {
if (producer != null) {
// This thread is a workaround for this Kafka issue:
// https://issues.apache.org/jira/browse/KAFKA-1660
- final Thread closeThread = new Log4jThread(new Runnable() {
- @Override
- public void run() {
- if (producer != null) {
- producer.close();
- }
- }
- }, "KafkaManager-CloseThread");
+ final Thread closeThread = new Log4jThread(() -> {
+ if (producer != null) {
+ producer.close();
+ }
+ }, "KafkaManager-CloseThread");
closeThread.setDaemon(true); // avoid blocking JVM shutdown
closeThread.start();
try {
@@ -125,14 +121,11 @@ public class KafkaManager extends AbstractManager {
final Future<RecordMetadata> response = producer.send(newRecord);
response.get(timeoutMillis, TimeUnit.MILLISECONDS);
} else {
- producer.send(newRecord, new Callback() {
- @Override
- public void onCompletion(final RecordMetadata metadata, final Exception e) {
- if (e != null) {
- LOGGER.error("Unable to write to Kafka in appender [" + getName() + "]", e);
- }
- }
- });
+ producer.send(newRecord, (metadata, e) -> {
+ if (e != null) {
+ LOGGER.error("Unable to write to Kafka in appender [" + getName() + "]", e);
+ }
+ });
}
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManager.java
index 14322e3..b270ef1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManager.java
@@ -26,7 +26,6 @@ import org.apache.logging.log4j.core.appender.ManagerFactory;
import org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
import org.apache.logging.log4j.core.util.Closer;
import org.apache.logging.log4j.message.MapMessage;
-import org.apache.logging.log4j.util.BiConsumer;
import org.apache.logging.log4j.util.ReadOnlyStringMap;
/**
@@ -86,12 +85,7 @@ public final class NoSqlDatabaseManager<W> extends AbstractDatabaseManager {
private void setFields(final MapMessage<?, ?> mapMessage, final NoSqlObject<W> noSqlObject) {
// Map without calling org.apache.logging.log4j.message.MapMessage#getData() which makes a copy of the map.
- mapMessage.forEach(new BiConsumer<String, Object>() {
- @Override
- public void accept(final String key, final Object value) {
- noSqlObject.set(key, value);
- }
- });
+ mapMessage.forEach((key, value) -> noSqlObject.set(key, value));
}
private void setFields(final LogEvent event, final NoSqlObject<W> entity) {
@@ -147,12 +141,7 @@ public final class NoSqlDatabaseManager<W> extends AbstractDatabaseManager {
entity.set("contextMap", (Object) null);
} else {
final NoSqlObject<W> contextMapEntity = this.connection.createObject();
- contextMap.forEach(new BiConsumer<String, String>() {
- @Override
- public void accept(final String key, final String val) {
- contextMapEntity.set(key, val);
- }
- });
+ contextMap.forEach((key, val) -> contextMapEntity.set(key, val));
entity.set("contextMap", contextMapEntity);
}
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 252cd28..88e93e6 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
@@ -131,51 +131,31 @@ public class AsyncLoggerConfigDisruptor extends AbstractLifeCycle implements Asy
* Factory used to populate the RingBuffer with events. These event objects are then re-used during the life of the
* RingBuffer.
*/
- private static final EventFactory<Log4jEventWrapper> FACTORY = new EventFactory<Log4jEventWrapper>() {
- @Override
- public Log4jEventWrapper newInstance() {
- return new Log4jEventWrapper();
- }
- };
+ private static final EventFactory<Log4jEventWrapper> FACTORY = Log4jEventWrapper::new;
/**
* Factory used to populate the RingBuffer with events. These event objects are then re-used during the life of the
* RingBuffer.
*/
- private static final EventFactory<Log4jEventWrapper> MUTABLE_FACTORY = new EventFactory<Log4jEventWrapper>() {
- @Override
- public Log4jEventWrapper newInstance() {
- return new Log4jEventWrapper(new MutableLogEvent());
- }
- };
+ private static final EventFactory<Log4jEventWrapper> MUTABLE_FACTORY = () -> new Log4jEventWrapper(new MutableLogEvent());
/**
* Object responsible for passing on data to a specific RingBuffer event.
*/
private static final EventTranslatorTwoArg<Log4jEventWrapper, LogEvent, AsyncLoggerConfig> TRANSLATOR =
- new EventTranslatorTwoArg<Log4jEventWrapper, LogEvent, AsyncLoggerConfig>() {
-
- @Override
- public void translateTo(final Log4jEventWrapper ringBufferElement, final long sequence,
- final LogEvent logEvent, final AsyncLoggerConfig loggerConfig) {
- ringBufferElement.event = logEvent;
- ringBufferElement.loggerConfig = loggerConfig;
- }
- };
+ (ringBufferElement, sequence, logEvent, loggerConfig) -> {
+ ringBufferElement.event = logEvent;
+ ringBufferElement.loggerConfig = loggerConfig;
+ };
/**
* Object responsible for passing on data to a RingBuffer event with a MutableLogEvent.
*/
private static final EventTranslatorTwoArg<Log4jEventWrapper, LogEvent, AsyncLoggerConfig> MUTABLE_TRANSLATOR =
- new EventTranslatorTwoArg<Log4jEventWrapper, LogEvent, AsyncLoggerConfig>() {
-
- @Override
- public void translateTo(final Log4jEventWrapper ringBufferElement, final long sequence,
- final LogEvent logEvent, final AsyncLoggerConfig loggerConfig) {
- ((MutableLogEvent) ringBufferElement.event).initFrom(logEvent);
- ringBufferElement.loggerConfig = loggerConfig;
- }
- };
+ (ringBufferElement, sequence, logEvent, loggerConfig) -> {
+ ((MutableLogEvent) ringBufferElement.event).initFrom(logEvent);
+ ringBufferElement.loggerConfig = loggerConfig;
+ };
private int ringBufferSize;
private AsyncQueueFullPolicy asyncQueueFullPolicy;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
index 5925187..e344005 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
@@ -17,7 +17,6 @@
package org.apache.logging.log4j.core.async;
-import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
@@ -160,12 +159,7 @@ final class DisruptorUtil {
* @return the thread ID of the background appender thread
*/
public static long getExecutorThreadId(final ExecutorService executor) {
- final Future<Long> result = executor.submit(new Callable<Long>() {
- @Override
- public Long call() {
- return Thread.currentThread().getId();
- }
- });
+ final Future<Long> result = executor.submit(() -> Thread.currentThread().getId());
try {
return result.get();
} catch (final Exception ex) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/JCToolsBlockingQueueFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/JCToolsBlockingQueueFactory.java
index facc59e..6a203ca 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/JCToolsBlockingQueueFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/JCToolsBlockingQueueFactory.java
@@ -71,12 +71,7 @@ public class JCToolsBlockingQueueFactory<E> implements BlockingQueueFactory<E> {
@Override
public int drainTo(final Collection<? super E> c, final int maxElements) {
- return drain(new Consumer<E>() {
- @Override
- public void accept(final E e) {
- c.add(e);
- }
- }, maxElements);
+ return drain(e -> c.add(e), maxElements);
}
@Override
@@ -148,36 +143,22 @@ public class JCToolsBlockingQueueFactory<E> implements BlockingQueueFactory<E> {
}
public enum WaitStrategy {
- SPIN(new Idle() {
- @Override
- public int idle(final int idleCounter) {
- return idleCounter + 1;
- }
+ SPIN(idleCounter -> idleCounter + 1),
+ YIELD(idleCounter -> {
+ Thread.yield();
+ return idleCounter + 1;
}),
- YIELD(new Idle() {
- @Override
- public int idle(final int idleCounter) {
- Thread.yield();
- return idleCounter + 1;
- }
+ PARK(idleCounter -> {
+ LockSupport.parkNanos(1L);
+ return idleCounter + 1;
}),
- PARK(new Idle() {
- @Override
- public int idle(final int idleCounter) {
+ PROGRESSIVE(idleCounter -> {
+ if (idleCounter > 200) {
LockSupport.parkNanos(1L);
- return idleCounter + 1;
- }
- }),
- PROGRESSIVE(new Idle() {
- @Override
- public int idle(final int idleCounter) {
- if (idleCounter > 200) {
- LockSupport.parkNanos(1L);
- } else if (idleCounter > 100) {
- Thread.yield();
- }
- return idleCounter + 1;
+ } else if (idleCounter > 100) {
+ Thread.yield();
}
+ return idleCounter + 1;
});
private final Idle idle;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java
index 488b772..eafaef1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java
@@ -142,13 +142,7 @@ public final class RegexFilter extends AbstractFilter {
return DEFAULT_PATTERN_FLAGS;
}
final Field[] fields = Pattern.class.getDeclaredFields();
- final Comparator<Field> comparator = new Comparator<Field>() {
-
- @Override
- public int compare(final Field f1, final Field f2) {
- return f1.getName().compareTo(f2.getName());
- }
- };
+ final Comparator<Field> comparator = (f1, f2) -> f1.getName().compareTo(f2.getName());
Arrays.sort(fields, comparator);
final String[] fieldNames = new String[fields.length];
for (int i = 0; i < fields.length; i++) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/JdkMapAdapterStringMap.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/JdkMapAdapterStringMap.java
index e86e4d6..b45ba19 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/JdkMapAdapterStringMap.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/JdkMapAdapterStringMap.java
@@ -33,17 +33,14 @@ import org.apache.logging.log4j.util.TriConsumer;
public class JdkMapAdapterStringMap implements StringMap {
private static final long serialVersionUID = -7348247784983193612L;
private static final String FROZEN = "Frozen collection cannot be modified";
- private static final Comparator<? super String> NULL_FIRST_COMPARATOR = new Comparator<String>() {
- @Override
- public int compare(final String left, final String right) {
- if (left == null) {
- return -1;
- }
- if (right == null) {
- return 1;
- }
- return left.compareTo(right);
+ private static final Comparator<? super String> NULL_FIRST_COMPARATOR = (left, right) -> {
+ if (left == null) {
+ return -1;
+ }
+ if (right == null) {
+ return 1;
}
+ return left.compareTo(right);
};
private final Map<String, String> map;
@@ -143,12 +140,7 @@ public class JdkMapAdapterStringMap implements StringMap {
sortedKeys = null;
}
- private static TriConsumer<String, String, Map<String, String>> PUT_ALL = new TriConsumer<String, String, Map<String, String>>() {
- @Override
- public void accept(final String key, final String value, final Map<String, String> stringStringMap) {
- stringStringMap.put(key, value);
- }
- };
+ private static TriConsumer<String, String, Map<String, String>> PUT_ALL = (key, value, stringStringMap) -> stringStringMap.put(key, value);
@Override
public void putValue(final String key, final Object value) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
index 89623cd..fe0936c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
@@ -83,7 +83,7 @@ public class ThreadContextDataInjector {
for (final ClassLoader classLoader : LoaderUtil.getClassLoaders()) {
try {
for (final ContextDataProvider provider : ServiceLoader.load(ContextDataProvider.class, classLoader)) {
- if (providers.stream().noneMatch((p) -> p.getClass().isAssignableFrom(provider.getClass()))) {
+ if (providers.stream().noneMatch(p -> p.getClass().isAssignableFrom(provider.getClass()))) {
providers.add(provider);
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/jackson/ContextDataSerializer.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/jackson/ContextDataSerializer.java
index 8808d3d..7ac40f0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jackson/ContextDataSerializer.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jackson/ContextDataSerializer.java
@@ -50,15 +50,11 @@ public class ContextDataSerializer extends StdSerializer<ReadOnlyStringMap> {
}
private static final TriConsumer<String, Object, JsonGenerator> WRITE_STRING_FIELD_INTO =
- new TriConsumer<String, Object, JsonGenerator>() {
-
- @Override
- public void accept(final String key, final Object value, final JsonGenerator jsonGenerator) {
- try {
- jsonGenerator.writeStringField(key, String.valueOf(value));
- } catch (final Exception ex) {
- throw new IllegalStateException("Problem with key " + key, ex);
- }
+ (key, value, jsonGenerator) -> {
+ try {
+ jsonGenerator.writeStringField(key, String.valueOf(value));
+ } catch (final Exception ex) {
+ throw new IllegalStateException("Problem with key " + key, ex);
}
};
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
index b39c15e..95cb512 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
@@ -78,13 +78,10 @@ public final class MdcPatternConverter extends LogEventPatternConverter {
return new MdcPatternConverter(options);
}
- private static final TriConsumer<String, Object, StringBuilder> WRITE_KEY_VALUES_INTO = new TriConsumer<String, Object, StringBuilder>() {
- @Override
- public void accept(final String key, final Object value, final StringBuilder sb) {
- sb.append(key).append('=');
- StringBuilders.appendValue(sb, value);
- sb.append(", ");
- }
+ private static final TriConsumer<String, Object, StringBuilder> WRITE_KEY_VALUES_INTO = (key, value, sb) -> {
+ sb.append(key).append('=');
+ StringBuilders.appendValue(sb, value);
+ sb.append(", ");
};
/**
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptManager.java
index a167aa4..f9790af 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptManager.java
@@ -171,12 +171,7 @@ public class ScriptManager implements FileWatcher, Serializable {
logger.warn("No script named {} could be found");
return null;
}
- return AccessController.doPrivileged(new PrivilegedAction<Object>() {
- @Override
- public Object run() {
- return scriptRunner.execute(bindings);
- }
- });
+ return AccessController.doPrivileged((PrivilegedAction<Object>) () -> scriptRunner.execute(bindings));
}
private interface ScriptRunner {
@@ -201,19 +196,16 @@ public class ScriptManager implements FileWatcher, Serializable {
CompiledScript compiled = null;
if (scriptEngine instanceof Compilable) {
logger.debug("Script {} is compilable", script.getName());
- compiled = AccessController.doPrivileged(new PrivilegedAction<CompiledScript>() {
- @Override
- public CompiledScript run() {
- try {
- return ((Compilable) scriptEngine).compile(script.getScriptText());
- } catch (final Throwable ex) {
- /*
- * ScriptException is what really should be caught here. However, beanshell's ScriptEngine
- * implements Compilable but then throws Error when the compile method is called!
- */
- logger.warn("Error compiling script", ex);
- return null;
- }
+ compiled = AccessController.doPrivileged((PrivilegedAction<CompiledScript>) () -> {
+ try {
+ return ((Compilable) scriptEngine).compile(script.getScriptText());
+ } catch (final Throwable ex) {
+ /*
+ * ScriptException is what really should be caught here. However, beanshell's ScriptEngine
+ * implements Compilable but then throws Error when the compile method is called!
+ */
+ logger.warn("Error compiling script", ex);
+ return null;
}
});
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/CachedClock.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/CachedClock.java
index f6d51ab..132ea70 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/CachedClock.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/CachedClock.java
@@ -34,16 +34,13 @@ public final class CachedClock implements Clock {
private short count = 0;
private CachedClock() {
- final Thread updater = new Log4jThread(new Runnable() {
- @Override
- public void run() {
- while (true) {
- final long time = System.currentTimeMillis();
- millis = time;
+ final Thread updater = new Log4jThread(() -> {
+ while (true) {
+ final long time = System.currentTimeMillis();
+ millis = time;
- // avoid explicit dependency on sun.misc.Util
- LockSupport.parkNanos(1000 * 1000);
- }
+ // avoid explicit dependency on sun.misc.Util
+ LockSupport.parkNanos(1000 * 1000);
}
}, "CachedClock Updater Thread");
updater.setDaemon(true);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ClockFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ClockFactory.java
index 01a448a..d43e713 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ClockFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ClockFactory.java
@@ -69,12 +69,12 @@ public final class ClockFactory {
private static Map<String, Supplier<Clock>> aliases() {
final Map<String, Supplier<Clock>> result = new HashMap<>();
- result.put("SystemClock", new Supplier<Clock>() { @Override public Clock get() { return new SystemClock(); } });
- result.put("SystemMillisClock", new Supplier<Clock>() { @Override public Clock get() { return new SystemMillisClock(); } });
- result.put("CachedClock", new Supplier<Clock>() { @Override public Clock get() { return CachedClock.instance(); } });
- result.put("CoarseCachedClock", new Supplier<Clock>() { @Override public Clock get() { return CoarseCachedClock.instance(); } });
- result.put("org.apache.logging.log4j.core.util.CachedClock", new Supplier<Clock>() { @Override public Clock get() { return CachedClock.instance(); } });
- result.put("org.apache.logging.log4j.core.util.CoarseCachedClock", new Supplier<Clock>() { @Override public Clock get() { return CoarseCachedClock.instance(); } });
+ result.put("SystemClock", SystemClock::new);
+ result.put("SystemMillisClock", SystemMillisClock::new);
+ result.put("CachedClock", CachedClock::instance);
+ result.put("CoarseCachedClock", CoarseCachedClock::instance);
+ result.put("org.apache.logging.log4j.core.util.CachedClock", CachedClock::instance);
+ result.put("org.apache.logging.log4j.core.util.CoarseCachedClock", CoarseCachedClock::instance);
return result;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateParser.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateParser.java
index 05ea9fd..6dcd9a7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateParser.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateParser.java
@@ -98,12 +98,7 @@ public class FastDateParser implements DateParser, Serializable {
// comparator used to sort regex alternatives
// alternatives should be ordered longer first, and shorter last. ('february' before 'feb')
// all entries must be lowercase by locale.
- private static final Comparator<String> LONGER_FIRST_LOWERCASE = new Comparator<String>() {
- @Override
- public int compare(final String left, final String right) {
- return right.compareTo(left);
- }
- };
+ private static final Comparator<String> LONGER_FIRST_LOWERCASE = (left, right) -> right.compareTo(left);
/**
* <p>Constructs a new FastDateParser.</p>
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/GarbageCollectionHelper.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/GarbageCollectionHelper.java
index 3f67362..33ac01e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/GarbageCollectionHelper.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/GarbageCollectionHelper.java
@@ -31,23 +31,20 @@ public final class GarbageCollectionHelper implements Closeable, Runnable {
private static final OutputStream sink = ByteStreams.nullOutputStream();
private final AtomicBoolean running = new AtomicBoolean();
private final CountDownLatch latch = new CountDownLatch(1);
- private final Thread gcThread = new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- while (running.get()) {
- // Allocate data to help suggest a GC
- try {
- // 1mb of heap
- sink.write(new byte[1024 * 1024]);
- } catch (final IOException ignored) {
- }
- // May no-op depending on the JVM configuration
- System.gc();
+ private final Thread gcThread = new Thread(() -> {
+ try {
+ while (running.get()) {
+ // Allocate data to help suggest a GC
+ try {
+ // 1mb of heap
+ sink.write(new byte[1024 * 1024]);
+ } catch (final IOException ignored) {
}
- } finally {
- latch.countDown();
+ // May no-op depending on the JVM configuration
+ System.gc();
}
+ } finally {
+ latch.countDown();
}
});
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeLoggingTestUtil.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeLoggingTestUtil.java
index 72d49e1..f505fdb 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeLoggingTestUtil.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeLoggingTestUtil.java
@@ -81,26 +81,23 @@ public enum GcFreeLoggingTestUtil {;
"com/google/monitoring/runtime/instrumentation/Sampler", //
};
final AtomicBoolean samplingEnabled = new AtomicBoolean(true);
- final Sampler sampler = new Sampler() {
- @Override
- public void sampleAllocation(final int count, final String desc, final Object newObj, final long size) {
- if (!samplingEnabled.get()) {
- return;
- }
- for (int i = 0; i < exclude.length; i++) {
- if (exclude[i].equals(desc)) {
- return; // exclude
- }
- }
- System.err.println("I just allocated the object " + newObj +
- " of type " + desc + " whose size is " + size);
- if (count != -1) {
- System.err.println("It's an array of size " + count);
+ final Sampler sampler = (count, desc, newObj, size) -> {
+ if (!samplingEnabled.get()) {
+ return;
+ }
+ for (int i = 0; i < exclude.length; i++) {
+ if (exclude[i].equals(desc)) {
+ return; // exclude
}
-
- // show a stack trace to see which line caused allocation
- new RuntimeException().printStackTrace();
}
+ System.err.println("I just allocated the object " + newObj +
+ " of type " + desc + " whose size is " + size);
+ if (count != -1) {
+ System.err.println("It's an array of size " + count);
+ }
+
+ // show a stack trace to see which line caused allocation
+ new RuntimeException().printStackTrace();
};
Thread.sleep(500);
final StringMapMessage mapMessage = new StringMapMessage().with("eventId", "Login");
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderDataSourceTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderDataSourceTest.java
index 732c2f7..c4a7312 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderDataSourceTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderDataSourceTest.java
@@ -34,8 +34,6 @@ import org.h2.util.IOUtils;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.given;
@@ -62,12 +60,7 @@ public abstract class AbstractJdbcAppenderDataSourceTest {
private DataSource createMockDataSource() {
try {
final DataSource dataSource = mock(DataSource.class);
- given(dataSource.getConnection()).willAnswer(new Answer<Connection>() {
- @Override
- public Connection answer(final InvocationOnMock invocation) throws Throwable {
- return jdbcRule.getConnectionSource().getConnection();
- }
- });
+ given(dataSource.getConnection()).willAnswer(invocation -> jdbcRule.getConnectionSource().getConnection());
return dataSource;
} catch (final SQLException e) {
Throwables.rethrow(e);
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppenderMapMessageDataSourceTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppenderMapMessageDataSourceTest.java
index 5cae9af..bee9786 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppenderMapMessageDataSourceTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcAppenderMapMessageDataSourceTest.java
@@ -42,8 +42,6 @@ import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
/**
* Unit tests {@link MapMessage}s for JdbcAppender using a {@link DataSource} configuration.
@@ -75,12 +73,7 @@ public class JdbcAppenderMapMessageDataSourceTest {
private DataSource createMockDataSource() {
try {
final DataSource dataSource = mock(DataSource.class);
- given(dataSource.getConnection()).willAnswer(new Answer<Connection>() {
- @Override
- public Connection answer(final InvocationOnMock invocation) throws Throwable {
- return jdbcRule.getConnectionSource().getConnection();
- }
- });
+ given(dataSource.getConnection()).willAnswer(invocation -> jdbcRule.getConnectionSource().getConnection());
return dataSource;
} catch (final SQLException e) {
Throwables.rethrow(e);
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
index b639b4d..3775aa5 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
@@ -93,12 +93,9 @@ public class JeroMqAppenderTest {
appender.resetSendRcs();
final ExecutorService fixedThreadPool = Executors.newFixedThreadPool(nThreads);
for (int i = 0; i < 10.; i++) {
- fixedThreadPool.submit(new Runnable() {
- @Override
- public void run() {
- logger.info("Hello");
- logger.info("Again");
- }
+ fixedThreadPool.submit(() -> {
+ logger.info("Hello");
+ logger.info("Again");
});
}
final List<String> list = future.get();
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java
index aaa5441..424249c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java
@@ -17,11 +17,9 @@
package org.apache.logging.log4j.core.appender.mom.kafka;
-import java.util.Properties;
import java.util.concurrent.TimeUnit;
import org.apache.kafka.clients.producer.MockProducer;
-import org.apache.kafka.clients.producer.Producer;
import org.apache.logging.log4j.categories.Appenders;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.junit.LoggerContextRule;
@@ -54,12 +52,7 @@ public class KafkaAppenderCloseTimeoutTest {
@BeforeClass
public static void setUpClass() throws Exception {
- KafkaManager.producerFactory = new KafkaProducerFactory() {
- @Override
- public Producer<byte[], byte[]> newKafkaProducer(final Properties config) {
- return kafka;
- }
- };
+ KafkaManager.producerFactory = config -> kafka;
}
@Rule
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java
index d88e382..45f4064 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java
@@ -29,13 +29,11 @@ import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
-import java.util.Properties;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.apache.kafka.clients.producer.MockProducer;
-import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;
import org.apache.log4j.MDC;
@@ -94,12 +92,7 @@ public class KafkaAppenderTest {
@BeforeClass
public static void setUpClass() throws Exception {
- KafkaManager.producerFactory = new KafkaProducerFactory() {
- @Override
- public Producer<byte[], byte[]> newKafkaProducer(final Properties config) {
- return kafka;
- }
- };
+ KafkaManager.producerFactory = config -> kafka;
}
@Rule
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManagerTest.java
index 772a947..ad22d9e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/nosql/NoSqlDatabaseManagerTest.java
@@ -41,9 +41,7 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
-import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
-import org.mockito.stubbing.Answer;
import static org.junit.Assert.*;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -70,18 +68,8 @@ public class NoSqlDatabaseManagerTest {
@Before
public void setUp() {
given(provider.getConnection()).willReturn(connection);
- given(connection.createObject()).willAnswer(new Answer<DefaultNoSqlObject>() {
- @Override
- public DefaultNoSqlObject answer(final InvocationOnMock invocation) throws Throwable {
- return new DefaultNoSqlObject();
- }
- });
- given(connection.createList(anyInt())).willAnswer(new Answer<DefaultNoSqlObject[]>() {
- @Override
- public DefaultNoSqlObject[] answer(final InvocationOnMock invocation) throws Throwable {
- return new DefaultNoSqlObject[invocation.<Integer>getArgument(0)];
- }
- });
+ given(connection.createObject()).willAnswer(invocation -> new DefaultNoSqlObject());
+ given(connection.createList(anyInt())).willAnswer(invocation -> new DefaultNoSqlObject[invocation.<Integer>getArgument(0)]);
}
@Test
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java
index 02a1f8a..aff0d76 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java
@@ -32,7 +32,6 @@ import org.apache.logging.log4j.categories.AsyncLoggers;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.util.DummyNanoClock;
import org.apache.logging.log4j.core.time.internal.FixedPreciseClock;
-import org.apache.logging.log4j.message.ParameterConsumer;
import org.apache.logging.log4j.message.ReusableMessageFactory;
import org.apache.logging.log4j.util.FilteredObjectInputStream;
import org.apache.logging.log4j.util.StringMap;
@@ -253,11 +252,6 @@ public class RingBufferLogEventTest {
@Test
public void testForEachParameterNothingSet() {
final RingBufferLogEvent evt = new RingBufferLogEvent();
- evt.forEachParameter(new ParameterConsumer<Void>() {
- @Override
- public void accept(final Object parameter, final int parameterIndex, final Void state) {
- fail("Should not have been called");
- }
- }, null);
+ evt.forEachParameter((parameter, parameterIndex, state) -> fail("Should not have been called"), null);
}
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/AbstractRunQueue.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/AbstractRunQueue.java
index 7ba9412..855a6f4 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/AbstractRunQueue.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/AbstractRunQueue.java
@@ -31,18 +31,15 @@ public abstract class AbstractRunQueue implements IPerfTestRunner {
private final Thread backGroundThread;
AbstractRunQueue() {
- backGroundThread = new Thread(new Runnable() {
- @Override
- public void run() {
- for (; ; ) {
- try {
- if (Objects.equals(queue.take(), STOP)) {
- break;
- }
- } catch (final InterruptedException e) {
- e.printStackTrace();
+ backGroundThread = new Thread(() -> {
+ for (; ; ) {
+ try {
+ if (Objects.equals(queue.take(), STOP)) {
break;
}
+ } catch (final InterruptedException e) {
+ e.printStackTrace();
+ break;
}
}
});
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/MultiThreadPerfTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/MultiThreadPerfTest.java
index 7b10b34..46c4ee7 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/MultiThreadPerfTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/perftest/MultiThreadPerfTest.java
@@ -37,15 +37,12 @@ public class MultiThreadPerfTest extends PerfTest {
// warmup at least 2 rounds and at most 1 minute
final Histogram warmupHist = PerfTest.createHistogram();
final long stop = System.nanoTime() + TimeUnit.MINUTES.toNanos(1);
- final Runnable run1 = new Runnable() {
- @Override
- public void run() {
- for (int i = 0; i < 10; i++) {
- final int LINES = PerfTest.throughput ? 50000 : 200000;
- runTest(runner, LINES, null, warmupHist, 2);
- if (i > 0 && System.nanoTime() - stop >= 0) {
- return;
- }
+ final Runnable run1 = () -> {
+ for (int i = 0; i < 10; i++) {
+ final int LINES = PerfTest.throughput ? 50000 : 200000;
+ runTest(runner, LINES, null, warmupHist, 2);
+ if (i > 0 && System.nanoTime() - stop >= 0) {
+ return;
}
}
};
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java
index 2f913f7..2f6d1ba 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java
@@ -124,12 +124,7 @@ public class ThreadContextDataInjectorTest {
public void testInheritableThreadContextImmutability() throws Throwable {
prepareThreadContext(true);
try {
- newSingleThreadExecutor().submit(new Runnable() {
- @Override
- public void run() {
- testContextDataInjector();
- }
- }).get();
+ newSingleThreadExecutor().submit(this::testContextDataInjector).get();
} catch (final ExecutionException ee) {
throw ee.getCause();
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/ConcurrentLoggingWithJsonLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/ConcurrentLoggingWithJsonLayoutTest.java
index feff35a..ac93a1a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/ConcurrentLoggingWithJsonLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/ConcurrentLoggingWithJsonLayoutTest.java
@@ -62,12 +62,7 @@ public class ConcurrentLoggingWithJsonLayoutTest {
// Appender is configured with ignoreExceptions="false";
// any exceptions are propagated to the caller, so we can catch them here.
- t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
- @Override
- public void uncaughtException(final Thread t, final Throwable e) {
- thrown.add(e);
- }
- });
+ t.setUncaughtExceptionHandler((t1, e) -> thrown.add(e));
t.start();
}
diff --git a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java
index 30ae580..80582da 100644
--- a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java
+++ b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java
@@ -350,16 +350,13 @@ public class FlumePersistentAppenderTest {
@Test
public void testLogInterrupted() {
final ExecutorService executor = Executors.newSingleThreadExecutor();
- executor.execute(new Runnable() {
- @Override
- public void run() {
- executor.shutdownNow();
- final Logger logger = LogManager.getLogger("EventLogger");
- final Marker marker = MarkerManager.getMarker("EVENT");
- logger.info(marker, "This is a test message");
- Assert.assertTrue("Interruption status not preserved", Thread.currentThread().isInterrupted());
- }
- });
+ executor.execute(() -> {
+ executor.shutdownNow();
+ final Logger logger = LogManager.getLogger("EventLogger");
+ final Marker marker = MarkerManager.getMarker("EVENT");
+ logger.info(marker, "This is a test message");
+ Assert.assertTrue("Interruption status not preserved", Thread.currentThread().isInterrupted());
+ });
}
/*
diff --git a/log4j-jmx-gui/src/main/java/org/apache/logging/log4j/jmx/gui/ClientGui.java b/log4j-jmx-gui/src/main/java/org/apache/logging/log4j/jmx/gui/ClientGui.java
index a9260b5..fb822bb 100644
--- a/log4j-jmx-gui/src/main/java/org/apache/logging/log4j/jmx/gui/ClientGui.java
+++ b/log4j-jmx-gui/src/main/java/org/apache/logging/log4j/jmx/gui/ClientGui.java
@@ -179,12 +179,7 @@ public class ClientGui extends JPanel implements NotificationListener {
@Override
public void handleNotification(final Notification notif, final Object paramObject) {
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() { // LOG4J2-538
- handleNotificationInAwtEventThread(notif, paramObject);
- }
- });
+ SwingUtilities.invokeLater(() -> handleNotificationInAwtEventThread(notif, paramObject));
}
private void handleNotificationInAwtEventThread(final Notification notif, final Object paramObject) {
@@ -284,29 +279,26 @@ public class ClientGui extends JPanel implements NotificationListener {
final Client client = new Client(connector);
final String title = "Log4j JMX Client - " + url;
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- installLookAndFeel();
- try {
- final ClientGui gui = new ClientGui(client);
- final JFrame frame = new JFrame(title);
- frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
- frame.getContentPane().add(gui, BorderLayout.CENTER);
- frame.pack();
- frame.setVisible(true);
- } catch (final Exception ex) {
- // if console is visible, print error so that
- // the stack trace remains visible after error dialog is
- // closed
- ex.printStackTrace();
+ SwingUtilities.invokeLater(() -> {
+ installLookAndFeel();
+ try {
+ final ClientGui gui = new ClientGui(client);
+ final JFrame frame = new JFrame(title);
+ frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
+ frame.getContentPane().add(gui, BorderLayout.CENTER);
+ frame.pack();
+ frame.setVisible(true);
+ } catch (final Exception ex) {
+ // if console is visible, print error so that
+ // the stack trace remains visible after error dialog is
+ // closed
+ ex.printStackTrace();
- // show error in dialog: there may not be a console window
- // visible
- final StringWriter sr = new StringWriter();
- ex.printStackTrace(new PrintWriter(sr));
- JOptionPane.showMessageDialog(null, sr.toString(), "Error", JOptionPane.ERROR_MESSAGE);
- }
+ // show error in dialog: there may not be a console window
+ // visible
+ final StringWriter sr = new StringWriter();
+ ex.printStackTrace(new PrintWriter(sr));
+ JOptionPane.showMessageDialog(null, sr.toString(), "Error", JOptionPane.ERROR_MESSAGE);
}
});
}
diff --git a/log4j-jpa/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverter.java b/log4j-jpa/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverter.java
index b6c57ed..8db69b8 100644
--- a/log4j-jpa/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverter.java
+++ b/log4j-jpa/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverter.java
@@ -26,7 +26,6 @@ import javax.persistence.PersistenceException;
import org.apache.logging.log4j.util.ReadOnlyStringMap;
import org.apache.logging.log4j.core.impl.ContextDataFactory;
import org.apache.logging.log4j.util.StringMap;
-import org.apache.logging.log4j.util.BiConsumer;
import org.apache.logging.log4j.util.Strings;
import com.fasterxml.jackson.databind.JsonNode;
@@ -55,13 +54,7 @@ public class ContextDataJsonAttributeConverter implements AttributeConverter<Rea
try {
final JsonNodeFactory factory = OBJECT_MAPPER.getNodeFactory();
final ObjectNode root = factory.objectNode();
- contextData.forEach(new BiConsumer<String, Object>() {
- @Override
- public void accept(final String key, final Object value) {
- // we will cheat here and write the toString of the Object... meh, but ok.
- root.put(key, String.valueOf(value));
- }
- });
+ contextData.forEach((key, value) -> root.put(key, String.valueOf(value)));
return OBJECT_MAPPER.writeValueAsString(root);
} catch (final Exception e) {
throw new PersistenceException("Failed to convert contextData to JSON string.", e);
diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
index 92d38ec..6e48bd1 100644
--- a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
+++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
@@ -51,12 +51,9 @@ public class ApiLogger extends Logger {
super(logger.getName(), null);
final Level javaLevel = LevelTranslator.toJavaLevel(logger.getLevel());
// "java.util.logging.LoggingPermission" "control"
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
- @Override
- public Object run() {
- ApiLogger.super.setLevel(javaLevel);
- return null;
- }
+ AccessController.doPrivileged((PrivilegedAction<Object>) () -> {
+ ApiLogger.super.setLevel(javaLevel);
+ return null;
});
this.logger = new WrappedLogger(logger);
}
diff --git a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonWriterTest.java b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonWriterTest.java
index cde4ccf..68fe638 100644
--- a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonWriterTest.java
+++ b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonWriterTest.java
@@ -377,12 +377,7 @@ public class JsonWriterTest {
final String expectedJson = "\"foo\\tbar\\tbuzz\"";
@SuppressWarnings("Convert2Lambda")
final String actualJson = WRITER.use(() ->
- WRITER.writeString(new StringBuilderFormattable() {
- @Override
- public void formatTo(StringBuilder stringBuilder) {
- stringBuilder.append("foo\tbar\tbuzz");
- }
- }));
+ WRITER.writeString(stringBuilder -> stringBuilder.append("foo\tbar\tbuzz")));
Assertions.assertThat(actualJson).isEqualTo(expectedJson);
}
@@ -396,12 +391,7 @@ public class JsonWriterTest {
'"';
@SuppressWarnings("Convert2Lambda")
final String actualJson = WRITER.use(() ->
- WRITER.writeString(new StringBuilderFormattable() {
- @Override
- public void formatTo(StringBuilder stringBuilder) {
- stringBuilder.append(excessiveString);
- }
- }));
+ WRITER.writeString(stringBuilder -> stringBuilder.append(excessiveString)));
Assertions.assertThat(actualJson).isEqualTo(expectedJson);
}
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 6ec0992..fdfee25 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
@@ -155,16 +155,13 @@ public class ClocksBenchmark {
private volatile short count;
private OldCachedClock() {
- final Thread updater = new Thread(new Runnable() {
- @Override
- public void run() {
- while (true) {
- final long time = System.currentTimeMillis();
- millis = time;
-
- // avoid explicit dependency on sun.misc.Util
- LockSupport.parkNanos(1000 * 1000);
- }
+ final Thread updater = new Thread((Runnable) () -> {
+ while (true) {
+ final long time = System.currentTimeMillis();
+ millis = time;
+
+ // avoid explicit dependency on sun.misc.Util
+ LockSupport.parkNanos(1000 * 1000);
}
}, "Clock Updater Thread");
updater.setDaemon(true);
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java
index e6b78c2..9c5ddd7 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java
@@ -40,7 +40,6 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.concurrent.TimeUnit;
import java.util.logging.FileHandler;
@@ -119,11 +118,8 @@ public class FileAppenderThrowableBenchmark {
interface TestIface30 extends ThrowableHelper {}
private static Throwable getComplexThrowable() {
- ThrowableHelper helper = new ThrowableHelper() {
- @Override
- public void action() {
- throw new IllegalStateException("Test Throwable");
- }
+ ThrowableHelper helper = () -> {
+ throw new IllegalStateException("Test Throwable");
};
try {
for (int i = 0; i < 31; i++) {
@@ -131,14 +127,11 @@ public class FileAppenderThrowableBenchmark {
helper = (ThrowableHelper) Proxy.newProxyInstance(
FileAppenderThrowableBenchmark.class.getClassLoader(),
new Class<?>[]{Class.forName(FileAppenderThrowableBenchmark.class.getName() + "$TestIface" + (i % 31))},
- new InvocationHandler() {
- @Override
- public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
- try {
- return method.invoke(delegate, args);
- } catch (final InvocationTargetException e) {
- throw e.getCause();
- }
+ (InvocationHandler) (proxy, method, args) -> {
+ try {
+ return method.invoke(delegate, args);
+ } catch (final InvocationTargetException e) {
+ throw e.getCause();
}
});
}
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java
index d951617..10a6c99 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java
@@ -24,7 +24,6 @@ import java.util.concurrent.TimeUnit;
import org.apache.logging.log4j.perf.nogc.OpenHashStringMap;
import org.apache.logging.log4j.util.SortedArrayStringMap;
-import org.apache.logging.log4j.util.BiConsumer;
import org.apache.logging.log4j.util.TriConsumer;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -145,12 +144,7 @@ public class SortedArrayVsHashMapBenchmark {
return new HashMap(populatedMap);
}
- static TriConsumer<String, Object, int[]> COUNTER = new TriConsumer<String, Object, int[]>() {
- @Override
- public void accept(final String s, final Object o, final int[] result) {
- result[0] += s.hashCode() + o.hashCode();
- }
- };
+ static TriConsumer<String, Object, int[]> COUNTER = (s, o, result) -> result[0] += s.hashCode() + o.hashCode();
@Benchmark
public int iterateArrayContextDataTriConsumer() {
@@ -172,12 +166,7 @@ public class SortedArrayVsHashMapBenchmark {
public int iterateArrayContextDataBiConsumer() {
final int[] result = {0};
- populatedSortedStringArrayMap.forEach(new BiConsumer<String, Object>() {
- @Override
- public void accept(final String s, final Object o) {
- result[0] += s.hashCode() + o.hashCode();
- }
- });
+ populatedSortedStringArrayMap.forEach((s, o) -> result[0] += s.hashCode() + o.hashCode());
return result[0];
}
@@ -185,12 +174,7 @@ public class SortedArrayVsHashMapBenchmark {
public int iterateHashContextDataBiConsumer() {
final int[] result = {0};
- populatedOpenHashContextData.forEach(new BiConsumer<String, Object>() {
- @Override
- public void accept(final String s, final Object o) {
- result[0] += s.hashCode() + o.hashCode();
- }
- });
+ populatedOpenHashContextData.forEach((s, o) -> result[0] += s.hashCode() + o.hashCode());
return result[0];
}
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/StackWalkBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/StackWalkBenchmark.java
index 41dad86..20da72c 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/StackWalkBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/StackWalkBenchmark.java
@@ -63,7 +63,7 @@ public class StackWalkBenchmark {
@Benchmark
public void throwableSearch(Blackhole bh) {
- stackDriver.deepCall(initialDepth, callDepth, (fqcn) -> {
+ stackDriver.deepCall(initialDepth, callDepth, fqcn -> {
final StackTraceElement[] stackTrace = new Throwable().getStackTrace();
boolean found = false;
for (int i = 0; i < stackTrace.length; i++) {
@@ -82,20 +82,18 @@ public class StackWalkBenchmark {
@Benchmark
public void stackWalkerWalk(Blackhole bh) {
- stackDriver.deepCall(initialDepth, callDepth, (fqcn) -> {
- return walker.walk(
- s -> s.dropWhile(f -> !f.getClassName().equals(fqcn)) // drop the top frames until we reach the logger
- .dropWhile(f -> f.getClassName().equals(fqcn)) // drop the logger frames
- .findFirst())
- .get()
- .toStackTraceElement();
- });
+ stackDriver.deepCall(initialDepth, callDepth, fqcn -> walker.walk(
+ s -> s.dropWhile(f -> !f.getClassName().equals(fqcn)) // drop the top frames until we reach the logger
+ .dropWhile(f -> f.getClassName().equals(fqcn)) // drop the logger frames
+ .findFirst())
+ .get()
+ .toStackTraceElement());
}
@Benchmark
public void stackWalkerArray(Blackhole bh) {
- stackDriver.deepCall(initialDepth, callDepth, (fqcn) -> {
+ stackDriver.deepCall(initialDepth, callDepth, fqcn -> {
FQCN.set(fqcn);
final StackWalker.StackFrame walk = walker.walk(LOCATOR);
final StackTraceElement element = walk == null ? null : walk.toStackTraceElement();
@@ -107,9 +105,7 @@ public class StackWalkBenchmark {
@Benchmark
public void baseline(Blackhole bh) {
- stackDriver.deepCall(initialDepth, callDepth, (fqcn) -> {
- return null;
- });
+ stackDriver.deepCall(initialDepth, callDepth, fqcn -> null);
}
static final class FqcnCallerLocator implements Function<Stream<StackWalker.StackFrame>, StackWalker.StackFrame> {
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java
index c4ac559..187e516 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java
@@ -189,12 +189,7 @@ public class OpenHashStringMap<K, V> implements StringMap, ThreadContextMap {
}
}
private static final TriConsumer<String, Object, StringMap> PUT_ALL =
- new TriConsumer<String, Object, StringMap>() {
- @Override
- public void accept(final String key, final Object value, final StringMap contextData) {
- contextData.putValue(key, value);
- }
- };
+ (key, value, contextData) -> contextData.putValue(key, value);
private void assertNotFrozen() {
if (immutable) {
@@ -247,12 +242,7 @@ public class OpenHashStringMap<K, V> implements StringMap, ThreadContextMap {
}
private static final TriConsumer<String, Object, Map<String, String>> COPY_INTO_MAP =
- new TriConsumer<String, Object, Map<String, String>>() {
- @Override
- public void accept(final String k, final Object v, final Map<String, String> map) {
- map.put(k, v == null ? null : v.toString());
- }
- };
+ (k, v, map) -> map.put(k, v == null ? null : v.toString());
/*
* Removes all elements from this map.
@@ -770,17 +760,14 @@ public class OpenHashStringMap<K, V> implements StringMap, ThreadContextMap {
}
private static final TriConsumer<String, Object, ObjectOutputStream> SERIALIZER =
- new TriConsumer<String, Object, ObjectOutputStream>() {
- @Override
- public void accept(final String k, final Object v, final ObjectOutputStream objectOutputStream) {
- try {
- objectOutputStream.writeObject(k);
- objectOutputStream.writeObject(v);
- } catch (final IOException ioex) {
- throw new IllegalStateException(ioex);
- }
- }
- };
+ (k, v, objectOutputStream) -> {
+ try {
+ objectOutputStream.writeObject(k);
+ objectOutputStream.writeObject(v);
+ } catch (final IOException ioex) {
+ throw new IllegalStateException(ioex);
+ }
+ };
@Override
public String toString() {
diff --git a/log4j-web/src/main/java/org/apache/logging/log4j/web/WebLoggerContextUtils.java b/log4j-web/src/main/java/org/apache/logging/log4j/web/WebLoggerContextUtils.java
index a142bcc..10a7df4 100644
--- a/log4j-web/src/main/java/org/apache/logging/log4j/web/WebLoggerContextUtils.java
+++ b/log4j-web/src/main/java/org/apache/logging/log4j/web/WebLoggerContextUtils.java
@@ -101,16 +101,13 @@ public final class WebLoggerContextUtils {
* @since 2.0.1
*/
public static Runnable wrapExecutionContext(final ServletContext servletContext, final Runnable runnable) {
- return new Runnable() {
- @Override
- public void run() {
- final Log4jWebSupport webSupport = getWebLifeCycle(servletContext);
- webSupport.setLoggerContext();
- try {
- runnable.run();
- } finally {
- webSupport.clearLoggerContext();
- }
+ return () -> {
+ final Log4jWebSupport webSupport = getWebLifeCycle(servletContext);
+ webSupport.setLoggerContext();
+ try {
+ runnable.run();
+ } finally {
+ webSupport.clearLoggerContext();
}
};
}
diff --git a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java
index 71d0cf2..d648cbf 100644
--- a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java
+++ b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java
@@ -303,13 +303,10 @@ public class Log4jWebInitializerImplTest {
assertNull("The context should still be null.", ContextAnchor.THREAD_CONTEXT.get());
- final Runnable runnable = new Runnable() {
- @Override
- public void run() {
- final LoggerContext context = ContextAnchor.THREAD_CONTEXT.get();
- assertNotNull("The context should not be null.", context);
- assertSame("The context is not correct.", loggerContext, context);
- }
+ final Runnable runnable = () -> {
+ final LoggerContext context = ContextAnchor.THREAD_CONTEXT.get();
+ assertNotNull("The context should not be null.", context);
+ assertSame("The context is not correct.", loggerContext, context);
};
this.initializerImpl.wrapExecution(runnable);
diff --git a/log4j-web/src/test/java/org/apache/logging/log4j/web/TestAsyncServlet.java b/log4j-web/src/test/java/org/apache/logging/log4j/web/TestAsyncServlet.java
index bbe918b..32b399c 100644
--- a/log4j-web/src/test/java/org/apache/logging/log4j/web/TestAsyncServlet.java
+++ b/log4j-web/src/test/java/org/apache/logging/log4j/web/TestAsyncServlet.java
@@ -34,27 +34,21 @@ public class TestAsyncServlet extends HttpServlet {
@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
final AsyncContext asyncContext = req.startAsync();
- asyncContext.start(WebLoggerContextUtils.wrapExecutionContext(this.getServletContext(), new Runnable() {
- @Override
- public void run() {
- final Logger logger = LogManager.getLogger(TestAsyncServlet.class);
- logger.info("Hello, servlet!");
- }
+ asyncContext.start(WebLoggerContextUtils.wrapExecutionContext(this.getServletContext(), () -> {
+ final Logger logger = LogManager.getLogger(TestAsyncServlet.class);
+ logger.info("Hello, servlet!");
}));
}
@Override
protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
final AsyncContext asyncContext = req.startAsync();
- asyncContext.start(new Runnable() {
- @Override
- public void run() {
- final Log4jWebSupport webSupport =
- WebLoggerContextUtils.getWebLifeCycle(TestAsyncServlet.this.getServletContext());
- webSupport.setLoggerContext();
- // do stuff
- webSupport.clearLoggerContext();
- }
+ asyncContext.start(() -> {
+ final Log4jWebSupport webSupport =
+ WebLoggerContextUtils.getWebLifeCycle(TestAsyncServlet.this.getServletContext());
+ webSupport.setLoggerContext();
+ // do stuff
+ webSupport.clearLoggerContext();
});
}
}