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:28 UTC
[logging-log4j2] 04/05: Use lambdas.
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();
});
}
}