Merge branch 'master' into LOG4J2-1349-gcfree-threadcontext Conflicts: log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/822f1063 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/822f1063 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/822f1063 Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext Commit: 822f106382180fbf3c0d36fde71fe8ee5bdc04b8 Parents: 57eb251 53826ff Author: rpopma <rpo...@apache.org> Authored: Thu Sep 8 22:45:22 2016 +0900 Committer: rpopma <rpo...@apache.org> Committed: Thu Sep 8 22:45:22 2016 +0900 ---------------------------------------------------------------------- .../config/Log4j1ConfigurationConverter.java | 4 +- .../config/Log4j1ConfigurationFactory.java | 2 +- .../log4j/config/Log4j1ConfigurationParser.java | 37 +- .../apache/log4j/layout/Log4j1XmlLayout.java | 19 +- .../pattern/Log4j1NdcPatternConverter.java | 2 +- .../log4j/layout/Log4j1XmlLayoutTest.java | 18 +- .../pattern/Log4j1MdcPatternConverterTest.java | 18 +- .../logging/log4j/message/LocalizedMessage.java | 2 +- .../log4j/message/ParameterizedMessage.java | 13 +- .../log4j/spi/DefaultThreadContextMap.java | 2 +- .../apache/logging/log4j/util/LoaderUtil.java | 19 + .../apache/logging/log4j/ThreadContextTest.java | 1 - .../apache/logging/log4j/TraceLoggingTest.java | 16 +- .../log4j/message/ParameterizedMessageTest.java | 24 + log4j-core/pom.xml | 12 + .../logging/log4j/core/AbstractLifeCycle.java | 7 +- .../apache/logging/log4j/core/LifeCycle.java | 2 +- .../logging/log4j/core/LoggerContext.java | 60 +- .../log4j/core/appender/AbstractAppender.java | 6 +- .../log4j/core/appender/AbstractManager.java | 422 ++--- .../appender/AbstractOutputStreamAppender.java | 366 ++-- .../core/appender/AbstractWriterAppender.java | 248 +-- .../log4j/core/appender/AsyncAppender.java | 162 +- .../core/appender/ConfigurationFactoryData.java | 2 +- .../log4j/core/appender/ConsoleAppender.java | 6 +- .../log4j/core/appender/FileAppender.java | 10 +- .../log4j/core/appender/FileManager.java | 6 +- .../core/appender/MemoryMappedFileAppender.java | 8 +- .../core/appender/MemoryMappedFileManager.java | 716 ++++---- .../core/appender/OutputStreamManager.java | 685 +++---- .../core/appender/RandomAccessFileAppender.java | 8 +- .../core/appender/RandomAccessFileManager.java | 430 ++--- .../core/appender/RollingFileAppender.java | 744 ++++---- .../RollingRandomAccessFileAppender.java | 8 +- .../log4j/core/appender/SocketAppender.java | 10 +- .../log4j/core/appender/WriterManager.java | 300 +-- .../appender/db/AbstractDatabaseAppender.java | 280 +-- .../appender/db/AbstractDatabaseManager.java | 457 ++--- .../db/jdbc/FactoryMethodConnectionSource.java | 4 +- .../appender/db/jdbc/JdbcDatabaseManager.java | 515 +++--- .../log4j/core/appender/db/jpa/JpaAppender.java | 4 +- .../appender/db/jpa/JpaDatabaseManager.java | 381 ++-- .../converter/ThrowableAttributeConverter.java | 4 +- .../log4j/core/appender/mom/JmsAppender.java | 425 ++--- .../log4j/core/appender/mom/JmsManager.java | 347 ++-- .../appender/mom/jeromq/JeroMqAppender.java | 366 ++-- .../core/appender/mom/jeromq/JeroMqManager.java | 442 ++--- .../core/appender/mom/kafka/KafkaAppender.java | 236 +-- .../core/appender/mom/kafka/KafkaManager.java | 172 +- .../core/appender/rewrite/RewriteAppender.java | 5 - .../rolling/AbstractTriggeringPolicy.java | 28 + .../rolling/CompositeTriggeringPolicy.java | 169 +- .../appender/rolling/CronTriggeringPolicy.java | 47 +- .../rolling/OnStartupTriggeringPolicy.java | 5 +- .../core/appender/rolling/PatternProcessor.java | 2 +- .../appender/rolling/RollingFileManager.java | 951 +++++----- .../rolling/RollingRandomAccessFileManager.java | 528 +++--- .../rolling/SizeBasedTriggeringPolicy.java | 207 ++- .../rolling/TimeBasedTriggeringPolicy.java | 3 +- .../core/appender/rolling/TriggeringPolicy.java | 3 +- .../core/appender/routing/IdlePurgePolicy.java | 13 +- .../core/appender/routing/RoutingAppender.java | 10 +- .../core/async/ArrayBlockingQueueFactory.java | 26 + .../log4j/core/async/AsyncLoggerConfig.java | 8 +- .../core/async/AsyncLoggerConfigDisruptor.java | 21 +- .../log4j/core/async/AsyncLoggerContext.java | 10 +- .../log4j/core/async/AsyncLoggerDisruptor.java | 30 +- .../log4j/core/async/BlockingQueueFactory.java | 26 + .../core/async/DefaultAsyncQueueFullPolicy.java | 14 +- .../async/DisruptorBlockingQueueFactory.java | 37 + .../core/async/JCToolsBlockingQueueFactory.java | 182 ++ .../core/async/LinkedTransferQueueFactory.java | 43 + .../core/config/AbstractConfiguration.java | 21 +- .../core/config/ConfigurationScheduler.java | 33 +- .../log4j/core/config/CronScheduledFuture.java | 2 +- .../logging/log4j/core/config/LoggerConfig.java | 4 +- .../config/builder/impl/BuiltConfiguration.java | 2 +- .../impl/DefaultConfigurationBuilder.java | 30 +- .../config/plugins/convert/TypeConverters.java | 4 +- .../properties/PropertiesConfiguration.java | 2 +- .../PropertiesConfigurationBuilder.java | 3 +- .../PropertiesConfigurationFactory.java | 2 +- .../log4j/core/filter/AbstractFilterable.java | 24 +- .../log4j/core/filter/CompositeFilter.java | 8 +- .../log4j/core/filter/LevelRangeFilter.java | 15 +- .../log4j/core/impl/ExtendedClassInfo.java | 2 +- .../core/impl/ExtendedStackTraceElement.java | 4 +- .../core/impl/ReusableLogEventFactory.java | 2 +- .../log4j/core/impl/ThrowableFormatOptions.java | 592 +++--- .../logging/log4j/core/impl/ThrowableProxy.java | 1459 ++++++++------- .../log4j/core/net/DatagramSocketManager.java | 2 +- .../logging/log4j/core/net/JndiManager.java | 287 +-- .../log4j/core/net/MulticastDnsAdvertiser.java | 6 +- .../log4j/core/net/SslSocketManager.java | 2 +- .../log4j/core/net/TcpSocketManager.java | 652 +++---- .../log4j/core/net/server/JmsServer.java | 294 +-- .../log4j/core/pattern/HtmlTextRenderer.java | 6 +- .../log4j/core/pattern/JAnsiTextRenderer.java | 664 +++---- .../core/pattern/MessagePatternConverter.java | 12 +- .../log4j/core/pattern/PlainTextRenderer.java | 4 +- .../util/DefaultShutdownCallbackRegistry.java | 13 +- .../log4j/core/util/ExecutorServices.java | 81 + .../logging/log4j/core/util/JndiCloser.java | 118 +- .../apache/logging/log4j/core/util/Loader.java | 23 +- .../log4j/core/util/Log4jThreadFactory.java | 36 +- .../log4j/core/util/OptionConverter.java | 3 +- .../logging/log4j/core/util/TypeUtil.java | 2 +- .../logging/log4j/core/util/WatchManager.java | 6 +- .../core/util/datetime/FixedDateFormat.java | 2 +- .../AsyncAppenderQueueFullPolicyTest.java | 9 +- .../log4j/core/appender/AsyncAppenderTest.java | 27 +- .../ConsoleAppenderJAnsiMessageMain.java | 158 +- .../ConsoleAppenderJAnsiXExceptionMain.java | 152 +- .../log4j/core/appender/FileAppenderTest.java | 10 +- .../log4j/core/appender/HangingAppender.java | 8 +- .../appender/JsonCompleteFileAppenderTest.java | 2 +- .../core/appender/OutputStreamAppenderTest.java | 1 - .../log4j/core/appender/SocketAppenderTest.java | 6 +- .../appender/XmlCompleteFileAppenderTest.java | 6 +- .../db/AbstractDatabaseAppenderTest.java | 4 +- .../db/AbstractDatabaseManagerTest.java | 2 +- .../rolling/OnStartupTriggeringPolicyTest.java | 2 +- .../RollingAppenderCronOnceADayTest.java | 6 +- .../rolling/RollingAppenderCronTest.java | 4 +- .../rolling/RollingAppenderSizeTest.java | 4 +- .../RollingAppenderUncompressedTest.java | 2 +- .../routing/JsonRoutingAppender2Test.java | 2 +- .../routing/JsonRoutingAppenderTest.java | 2 +- .../routing/PropertiesRoutingAppenderTest.java | 2 +- .../appender/routing/RoutingAppenderTest.java | 2 +- .../routing/RoutingAppenderWithPurgingTest.java | 6 +- .../routing/RoutingDefaultAppenderTest.java | 2 +- .../async/DefaultAsyncQueueFullPolicyTest.java | 6 +- .../DiscardingAsyncQueueFullPolicyTest.java | 8 +- .../core/async/RingBufferLogEventTest.java | 2 +- .../core/async/perftest/AbstractRunQueue.java | 91 + .../core/async/perftest/ResponseTimeTest.java | 1 + .../core/async/perftest/RunConversant.java | 31 + .../log4j/core/async/perftest/RunJCTools.java | 32 + .../core/config/CompositeConfigurationTest.java | 4 +- .../core/config/CustomConfigurationTest.java | 1 - .../builder/ConfigurationAssemblerTest.java | 6 +- .../builder/ConfigurationBuilderTest.java | 9 +- .../util/ResolverUtilCustomProtocolTest.java | 34 +- .../config/plugins/util/ResolverUtilTest.java | 30 +- .../log4j/core/filter/BurstFilterTest.java | 283 ++- .../core/filter/DynamicThresholdFilterTest.java | 2 +- .../log4j/core/impl/Log4jLogEventTest.java | 4 +- .../log4j/core/impl/MutableLogEventTest.java | 2 +- .../core/impl/ReusableLogEventFactoryTest.java | 8 + .../core/impl/ThrowableFormatOptionsTest.java | 36 +- .../log4j/core/impl/ThrowableProxyTest.java | 56 + .../core/layout/CsvParameterLayoutTest.java | 4 +- .../log4j/core/layout/JsonLayoutTest.java | 5 +- .../log4j/core/layout/Log4j2_1482_CoreTest.java | 2 +- .../log4j/core/layout/Log4j2_1482_Test.java | 14 +- .../log4j/core/layout/Rfc5424LayoutTest.java | 2 +- .../lookup/MainInputArgumentsMapLookup.java | 2 +- .../core/lookup/ResourceBundleLookupTest.java | 4 +- .../core/net/ssl/KeyStoreConfigurationTest.java | 2 +- .../net/ssl/TrustStoreConfigurationTest.java | 2 +- .../pattern/MessagePatternConverterTest.java | 210 +-- .../log4j/core/pattern/PatternParserTest.java | 2 +- .../logging/log4j/core/util/Profiler.java | 5 +- .../apache/logging/log4j/junit/CleanFiles.java | 2 +- .../logging/log4j/junit/CleanFolders.java | 2 +- .../logging/log4j/junit/LoggerContextRule.java | 18 +- .../junit/URLStreamHandlerFactoryRule.java | 7 +- .../log4j/test/appender/BlockingAppender.java | 9 +- .../log4j/test/appender/DeadlockAppender.java | 9 +- .../log4j/test/appender/InMemoryAppender.java | 2 +- .../log4j/test/appender/ListAppender.java | 8 +- .../BlockingQueueFactory-ArrayBlockingQueue.xml | 40 + ...ckingQueueFactory-DisruptorBlockingQueue.xml | 40 + ...lockingQueueFactory-JCToolsBlockingQueue.xml | 40 + ...BlockingQueueFactory-LinkedTransferQueue.xml | 40 + .../test/resources/log4j-asynch-queue-full.xml | 4 +- .../log4j/flume/appender/FlumeAppender.java | 16 +- .../log4j/flume/appender/FlumeAvroManager.java | 6 +- .../flume/appender/FlumeEmbeddedManager.java | 554 +++--- .../flume/appender/FlumePersistentManager.java | 1703 +++++++++--------- .../log4j/flume/appender/FlumeAppenderTest.java | 1 - .../flume/appender/FlumeEmbeddedAgentTest.java | 4 +- .../appender/FlumeEmbeddedAppenderTest.java | 4 +- .../appender/FlumePersistentAppenderTest.java | 4 +- .../flume/appender/FlumePersistentPerf.java | 4 +- .../nosql/appender/NoSqlDatabaseManager.java | 440 ++--- .../nosql/appender/couchdb/CouchDbProvider.java | 4 +- .../nosql/appender/mongodb/MongoDbProvider.java | 6 +- log4j-perf/pom.xml | 8 + .../perf/jmh/AsyncAppenderLog4j2Benchmark.java | 37 +- .../AsyncAppenderLog4j2LocationBenchmark.java | 23 +- .../perf5AsyncApndDsrptrNoLoc-noOpAppender.xml | 32 + ...perf5AsyncApndDsrptrWithLoc-noOpAppender.xml | 32 + .../perf5AsyncApndMpscQNoLoc-noOpAppender.xml | 32 + .../perf5AsyncApndMpscQWithLoc-noOpAppender.xml | 32 + .../perf5AsyncApndNoLoc-noOpAppender.xml | 1 + .../perf5AsyncApndXferQNoLoc-noOpAppender.xml | 32 + .../perf5AsyncApndXferQWithLoc-noOpAppender.xml | 32 + .../configuration/CustomConfiguration.java | 4 +- .../logging/slf4j/Log4j2_1482_Slf4jTest.java | 2 +- .../org/apache/logging/slf4j/MDCContextMap.java | 3 +- .../log4j/web/Log4jWebInitializerImpl.java | 550 +++--- pom.xml | 14 +- src/changes/changes.xml | 24 + src/site/xdoc/manual/appenders.xml | 84 +- 206 files changed, 10749 insertions(+), 9297 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/822f1063/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/822f1063/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java ---------------------------------------------------------------------- diff --cc log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java index 62608a5,e6330bf..748148b --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java @@@ -75,8 -72,8 +75,8 @@@ public class ReusableLogEventFactory im result.setLevel(level == null ? Level.OFF : level); result.setMessage(message); result.setThrown(t); - result.setContextMap(Log4jLogEvent.createMap(properties)); + result.setContextData(injector.injectContextData(properties, (MutableContextData) result.getContextData())); - result.setContextStack(ThreadContext.getDepth() == 0 ? null : ThreadContext.cloneStack());// mutable copy + result.setContextStack(ThreadContext.getDepth() == 0 ? ThreadContext.EMPTY_STACK : ThreadContext.cloneStack());// mutable copy result.setTimeMillis(message instanceof TimestampMessage ? ((TimestampMessage) message).getTimestamp() : CLOCK.currentTimeMillis()); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/822f1063/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/822f1063/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/822f1063/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java ---------------------------------------------------------------------- diff --cc log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java index 70727a6,f6da5ef..a97dc6a --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java @@@ -217,9 -216,9 +217,9 @@@ public class MutableLogEventTest @Test public void testJavaIoSerializableWithThrown() throws Exception { - final Error thrown = new InternalError("test error"); + new InternalError("test error"); final MutableLogEvent evt = new MutableLogEvent(); - evt.setContextMap(CONTEXTMAP); + evt.setContextData(CONTEXT_DATA); evt.setContextStack(STACK); evt.setEndOfBatch(true); evt.setIncludeLocation(true);