LOG4J2-1618 is now also fixed. On Sat, Oct 1, 2016 at 3:20 AM, Gary Gregory <garydgreg...@gmail.com> wrote:
> On Thu, Sep 29, 2016 at 10:05 AM, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> Please wait to cut rc2, I am fixing a regression: >> https://issues.apache.org/jira/browse/LOG4J2-1620 >> > > Fixed. > > This looks like it needs addressing: https://issues. > apache.org/jira/browse/LOG4J2-1618 > > Gary > > >> >> Gary >> >> On Thu, Sep 29, 2016 at 9:31 AM, Mikael Ståldal < >> mikael.stal...@magine.com> wrote: >> >>> I created JIRA issues for the Kafka and Flume appender timeout issues, >>> and I have fixed both of them in master branch. >>> https://issues.apache.org/jira/browse/LOG4J2-1624 >>> https://issues.apache.org/jira/browse/LOG4J2-1625 >>> >>> I also created a JIRA issue for the JVM shutdown hook, but that not as >>> easy to fix and I would not consider it a blocker for the 2.7 release. We >>> can fix it for 2.7.1: >>> https://issues.apache.org/jira/browse/LOG4J2-1623 >>> >>> I think we can go ahead now and make an 2.7-rc2 from the current state >>> of master branch. >>> >>> >>> On Thu, Sep 29, 2016 at 3:45 PM, Ralph Goers <ralph.go...@dslextreme.com >>> > wrote: >>> >>>> The release is already delayed. So far we have two compatibility issues >>>> that need to be fixed. Please create a Jira issue for the Flume Appender >>>> and the JVM shutdown hook. Lets gets those fixed. And perhaps we should >>>> stop doing things that aren’t directly focused on getting the release out >>>> as they may well introduce more problems. >>>> >>>> Ralph >>>> >>>> On Sep 29, 2016, at 5:16 AM, Mikael Ståldal <mikael.stal...@magine.com> >>>> wrote: >>>> >>>> I think that it is unfortunate that the close timeout is always zero >>>> within the standard JVM shutdown hook (LoggerContext.java:275). I think >>>> that should be configurable. However, I don't want to delay the release for >>>> that, so let's fix that after the 2.7 release. https://issues.apache >>>> .org/jira/browse/LOG4J2-1623 >>>> >>>> However, I want to make sure that KafkaManager use the previous >>>> behavior if the requested timeout is zero. I just made a commit to master >>>> with that. >>>> >>>> It seems like FlumePersistentManager.releaseSub (the only other >>>> Manager using releaseSub timeout) tries to do something similar: >>>> >>>> final long shutdownWaitMillis = requestedTimeoutMillis < 0 ? >>>> SHUTDOWN_WAIT_MILLIS : requestedTimeoutMillis; >>>> >>>> But I thing the logic is wrong here. It should probably use >>>> SHUTDOWN_WAIT_MILLIS if requestedTimeoutMillis is <= 0. This should >>>> possibly be fixed before the release. >>>> >>>> >>>> >>>> On Wed, Sep 28, 2016 at 6:54 PM, Gary Gregory <garydgreg...@gmail.com> >>>> wrote: >>>> >>>>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal < >>>>> mikael.stal...@magine.com> wrote: >>>>> >>>>>> Was this timeout thing implemented as part of any JIRA issue? >>>>>> >>>>> >>>>> The high level ticket is: https://issues.apache.org/jira >>>>> /browse/LOG4J2-1539 >>>>> >>>>> Gary >>>>> >>>>> >>>>>> >>>>>> On Wed, Sep 28, 2016 at 5:49 PM, Mikael Ståldal < >>>>>> mikael.stal...@magine.com> wrote: >>>>>> >>>>>>> To track this, I temporary added this to KafkaManager.releaseSub(): >>>>>>> LOGGER.info("releaseSub: timeout=" + timeout + " " + >>>>>>> timeUnit.toString(), new Throwable()); >>>>>>> >>>>>>> and I get: >>>>>>> >>>>>>> 2016-09-28 17:43:14,382 pool-1-thread-1 INFO releaseSub: timeout=0 >>>>>>> MILLISECONDS java.lang.Throwable >>>>>>> >>>>>>> at >>>>>>> org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.releaseSub(KafkaManager.java:60) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.appender.AbstractManager.stop(AbstractManager.java:85) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.stop(KafkaAppender.java:107) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.config.AbstractConfiguration.stop(AbstractConfiguration.java:349) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:329) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.AbstractLifeCycle.stop(AbstractLifeCycle.java:127) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.LoggerContext$1.run(LoggerContext.java:275) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry$RegisteredCancellable.run(DefaultShutdownCallbackRegistry.java:104) >>>>>>> at >>>>>>> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74) >>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>> >>>>>>> the culprit is AbstractLifeCycle.stop() which uses a default timeout of >>>>>>> 0. >>>>>>> >>>>>>> >>>>>>> On Wed, Sep 28, 2016 at 5:40 PM, Gary Gregory < >>>>>>> garydgreg...@gmail.com> wrote: >>>>>>> >>>>>>>> It is used when you call LifeCycle2.stop(long, TimeUnit), like >>>>>>>> stopping a LoggerContext or all of Log4j through the shutdown() method. >>>>>>>> >>>>>>>> Gary >>>>>>>> >>>>>>>> On Wed, Sep 28, 2016 at 8:35 AM, Mikael Ståldal < >>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>> >>>>>>>>> I see that KafkaManager.releaseSub() is passed a timeout of 0 at >>>>>>>>> runtime, which is not very useful. How is this actually supposed to be >>>>>>>>> used? How can you make it get something else than 0? >>>>>>>>> >>>>>>>>> On Wed, Sep 28, 2016 at 5:33 PM, Mikael Ståldal < >>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>> >>>>>>>>>> We have already discussed this here: https://issues.apache.or >>>>>>>>>> g/jira/browse/LOG4J2-1390 >>>>>>>>>> >>>>>>>>>> I don't think the release process is the right occasion to reopen >>>>>>>>>> this discussion. Can we please keep the Kafka 0.8 compatibility for >>>>>>>>>> this >>>>>>>>>> release, and then possibly reopen this discussion after the release >>>>>>>>>> (and >>>>>>>>>> possibly changing it for the 2.8 release)? >>>>>>>>>> >>>>>>>>>> On Wed, Sep 28, 2016 at 5:24 PM, Gary Gregory < >>>>>>>>>> garydgreg...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal < >>>>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Kafka server 0.8 is still in use, and newer Kafka clients >>>>>>>>>>>> cannot connect to older Kafka servers. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> There will always be users of old software. That does not mean >>>>>>>>>>> that new versions of Log4j must support old software, especially >>>>>>>>>>> pre-1.0 >>>>>>>>>>> software. >>>>>>>>>>> >>>>>>>>>>> Gary >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Sep 28, 2016 at 5:10 PM, Gary Gregory < >>>>>>>>>>>> garydgreg...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> I do not think it makes sense to support old versions that are >>>>>>>>>>>>> not even 1.0. >>>>>>>>>>>>> >>>>>>>>>>>>> Gary >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Sep 28, 2016 at 7:42 AM, Mikael Ståldal < >>>>>>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> I fixed the Kafka issue and pushed it to master branch. >>>>>>>>>>>>>> >>>>>>>>>>>>>> However, I have another concern, what timeout value is >>>>>>>>>>>>>> actually passed in to AbstractManager.releaseSub ? >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, Sep 28, 2016 at 3:51 PM, Mikael Ståldal < >>>>>>>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> -1 since the Kafka appender now only works with Kafka client >>>>>>>>>>>>>>> (and thus server) 0.9+, even though we agreed to keep >>>>>>>>>>>>>>> compatibility with >>>>>>>>>>>>>>> 0.8 for the time being: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1390 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The problem appeared with commit >>>>>>>>>>>>>>> 170469514b374eb5a5a33bde6936162fd608f097 >>>>>>>>>>>>>>> by Gary in KafkaManager.java (method releaseSub). >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I get this error with kafka-clients 0.8.2.2: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> java.lang.NoSuchMethodError: org.apache.kafka.clients.produ >>>>>>>>>>>>>>> cer.Producer.close(JLjava/util/concurrent/TimeUnit;)V >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> appender.mom.kafka.KafkaManager.releaseSub(KafkaManager.java >>>>>>>>>>>>>>> :61) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> appender.AbstractManager.stop(AbstractManager.java:85) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> appender.mom.kafka.KafkaAppender.stop(KafkaAppender.java:107 >>>>>>>>>>>>>>> ) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> config.AbstractConfiguration.stop(AbstractConfiguration.java >>>>>>>>>>>>>>> :349) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> LoggerContext.stop(LoggerContext.java:329) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> AbstractLifeCycle.stop(AbstractLifeCycle.java:127) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> LoggerContext$1.run(LoggerContext.java:275) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> util.DefaultShutdownCallbackRegistry$RegisteredCancellable.r >>>>>>>>>>>>>>> un(DefaultShutdownCallbackRegistry.java:104) >>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>> util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCall >>>>>>>>>>>>>>> backRegistry.java:74) >>>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers < >>>>>>>>>>>>>>> ralph.go...@dslextreme.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> This is a vote to release Log4j 2.6.2, the next version of >>>>>>>>>>>>>>>> the Log4j 2 project. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Please download, test, and cast your votes on the log4j >>>>>>>>>>>>>>>> developers list. >>>>>>>>>>>>>>>> [] +1, release the artifacts >>>>>>>>>>>>>>>> [] -1, don't release because... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The vote will remain open for 72 hours (or more if >>>>>>>>>>>>>>>> required). All votes are welcome and we encourage everyone to >>>>>>>>>>>>>>>> test the >>>>>>>>>>>>>>>> release, but only Logging PMC votes are “officially” counted. >>>>>>>>>>>>>>>> As always, at >>>>>>>>>>>>>>>> least 3 +1 votes and more positive than negative votes are >>>>>>>>>>>>>>>> required. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Changes in this version include: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> New features: >>>>>>>>>>>>>>>> o LOG4J2-1578: RoutingAppender can be configured with >>>>>>>>>>>>>>>> scripts. Add Script in a Routes element. >>>>>>>>>>>>>>>> o LOG4J2-1597: Add a ScriptAppenderSelector to create an >>>>>>>>>>>>>>>> Appender specified by a Script. >>>>>>>>>>>>>>>> o LOG4J2-1349: (GC) Added support for garbage-free >>>>>>>>>>>>>>>> ThreadContext map. Disabled by default, users need to enable >>>>>>>>>>>>>>>> this explicitly. >>>>>>>>>>>>>>>> o LOG4J2-1447: (GC) Changed LogEvent's internal data >>>>>>>>>>>>>>>> structure for context data to be garbage-free. Added method >>>>>>>>>>>>>>>> LogEvent#getContextData(), deprecated method #getContextMap(). >>>>>>>>>>>>>>>> o LOG4J2-1010: Users can now inject context data from other >>>>>>>>>>>>>>>> sources than ThreadContext. Values can be any Object, not just >>>>>>>>>>>>>>>> Strings. Thanks to Mikael Ståldal. >>>>>>>>>>>>>>>> o LOG4J2-1568: Added support for >>>>>>>>>>>>>>>> java.util.concurrent.LinkedTransferQueue to AsyncAppender. >>>>>>>>>>>>>>>> o LOG4J2-1430: Added optional support for Conversant >>>>>>>>>>>>>>>> DisruptorBlockingQueue in AsyncAppender. Thanks to John Cairns. >>>>>>>>>>>>>>>> o LOG4J2-1439: Added optional support for JCTools MPSC >>>>>>>>>>>>>>>> bounded lock-free queue in AsyncAppender. Thanks to Anthony >>>>>>>>>>>>>>>> Maire. >>>>>>>>>>>>>>>> o LOG4J2-1558: SocketAppender now supports IO buffering. >>>>>>>>>>>>>>>> o LOG4J2-1557: Add a Builder for the SocketAppender >>>>>>>>>>>>>>>> (deprecates factory method). >>>>>>>>>>>>>>>> o LOG4J2-1609: Add a Builder to ServletAppender and deprecate >>>>>>>>>>>>>>>> factory method. >>>>>>>>>>>>>>>> o LOG4J2-1553: AbstractManager now implements AutoCloseable. >>>>>>>>>>>>>>>> o LOG4J2-1528: Added ability to generate Log4j 2-style XML >>>>>>>>>>>>>>>> configuration file from ConfigurationBuilder. >>>>>>>>>>>>>>>> o LOG4J2-1181: Added Logging API for Scala 2.10 and 2.11. >>>>>>>>>>>>>>>> o LOG4J2-1512: Added options to exclude stack trace from >>>>>>>>>>>>>>>> JSON, XML and YAML layouts. >>>>>>>>>>>>>>>> o LOG4J2-1539: Added Core API >>>>>>>>>>>>>>>> Configurator.shutdown(LoggerContext, long, TimeUnit). >>>>>>>>>>>>>>>> o LOG4J2-1501: FileAppender is now able to create files >>>>>>>>>>>>>>>> on-demand. >>>>>>>>>>>>>>>> o LOG4J2-1504: RollingFileAppender is now able to create >>>>>>>>>>>>>>>> files on-demand. >>>>>>>>>>>>>>>> o LOG4J2-1471: [PatternLayout] Add an ANSI option to >>>>>>>>>>>>>>>> %xThrowable. >>>>>>>>>>>>>>>> o LOG4J2-1472: org.apache.logging.log4j.core.LoggerContext >>>>>>>>>>>>>>>> now implements Closeable. >>>>>>>>>>>>>>>> o LOG4J2-1458: [PatternLayout] Add an ANSI option to %message. >>>>>>>>>>>>>>>> o LOG4J2-1505: Create a Builder for the FileAppender plugin >>>>>>>>>>>>>>>> to facilitate adding attributes in the future. >>>>>>>>>>>>>>>> o LOG4J2-1507: Allow Builders to be completely generic. >>>>>>>>>>>>>>>> o LOG4J2-1508: Allow a Builder to subclass another Builder. >>>>>>>>>>>>>>>> o LOG4J2-1516: Add ThreadContextMap2 interface supporting >>>>>>>>>>>>>>>> method putAll(Map<String, String>). Thanks to Gary Gregory. >>>>>>>>>>>>>>>> o LOG4J2-1519: Add ThreadContext.putAll(Map<String, String>). >>>>>>>>>>>>>>>> o LOG4J2-1520: Add JUnit Rule implementations to manage the >>>>>>>>>>>>>>>> thread context. >>>>>>>>>>>>>>>> o LOG4J2-1547: The Core AbstractConfiguration now tracks its >>>>>>>>>>>>>>>> LoggerContext and add Configuration.getLoggerContext(). >>>>>>>>>>>>>>>> o LOG4J2-1540: The Core AbstractManager now tracks its >>>>>>>>>>>>>>>> LoggerContext. >>>>>>>>>>>>>>>> o LOG4J2-1577: Add a Builder to the RoutingAppender and >>>>>>>>>>>>>>>> deprecate factory method. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Fixed Bugs: >>>>>>>>>>>>>>>> o LOG4J2-1611: Improved performance of context data injector >>>>>>>>>>>>>>>> for web applications to be on par with standalone applications. >>>>>>>>>>>>>>>> o LOG4J2-1591: Introduced new interface LifeCycle2 with >>>>>>>>>>>>>>>> stop(long,TimeUnit) method to avoid breaking backwards >>>>>>>>>>>>>>>> compatibility with new Configurator.shutdown(LoggerContext, >>>>>>>>>>>>>>>> long, TimeUnit) API. >>>>>>>>>>>>>>>> o LOG4J2-1590: Fixed issue with filters extending >>>>>>>>>>>>>>>> AbstractFilter that did not override methods with unrolled >>>>>>>>>>>>>>>> varargs. >>>>>>>>>>>>>>>> o LOG4J2-1583: Fixed scrambled log messages triggered by >>>>>>>>>>>>>>>> nested logging from toString() method of a logging parameter >>>>>>>>>>>>>>>> object. Thanks to Larry West. >>>>>>>>>>>>>>>> o LOG4J2-1259: Log4j threads are no longer leaking on Tomcat >>>>>>>>>>>>>>>> shutdown. Thanks to Misagh Moayyed, Steffen Offermann. >>>>>>>>>>>>>>>> o LOG4J2-1051: When starting on Google App Engine, >>>>>>>>>>>>>>>> Interpolator now suppresses the NoClassDefFoundError stack >>>>>>>>>>>>>>>> trace for the jvmrunargs lookup. Thanks to Lukasz Lenart. >>>>>>>>>>>>>>>> o LOG4J2-1582: When initializing on platforms where JMX is >>>>>>>>>>>>>>>> not available, Interpolator component no longer prints stack >>>>>>>>>>>>>>>> trace for warning messages. >>>>>>>>>>>>>>>> o LOG4J2-1581: Unregistering JMX components no longer prints >>>>>>>>>>>>>>>> a stack trace when the MBean has already been unregistered. >>>>>>>>>>>>>>>> o LOG4J2-1313: Support Property values to be specified in >>>>>>>>>>>>>>>> configuration as a value attribute as well as an element. >>>>>>>>>>>>>>>> Thanks to Philipp Knobel, Leon Finker. >>>>>>>>>>>>>>>> o LOG4J2-1575: (GC) LoggerConfig now stores configuration >>>>>>>>>>>>>>>> properties in a List, not a Map to prevent creating temporary >>>>>>>>>>>>>>>> Iterator objects. Added method LoggerConfig#getPropertyList(), >>>>>>>>>>>>>>>> deprecated method #getProperties(). >>>>>>>>>>>>>>>> o LOG4J2-1457: Fixed class loader deadlock when using async >>>>>>>>>>>>>>>> logging and extended stack trace pattern. Thanks to Leon >>>>>>>>>>>>>>>> Finker. >>>>>>>>>>>>>>>> o LOG4J2-1563: Fix to prevent Log4j 2.6.2 and higher from >>>>>>>>>>>>>>>> losing exceptions when a security manager is present. Thanks >>>>>>>>>>>>>>>> to Jason Tedor. >>>>>>>>>>>>>>>> o LOG4J2-1530: Fixed issue where LogEvent.getContextStack() >>>>>>>>>>>>>>>> returned null. >>>>>>>>>>>>>>>> o LOG4J2-1518: Prevent deadlock in Async Loggers when queue >>>>>>>>>>>>>>>> is full and logged Object's toString() logs another message. >>>>>>>>>>>>>>>> Thanks to Leon Finker. >>>>>>>>>>>>>>>> o LOG4J2-1542: Prevent ArrayIndexOutOfBoundsException in >>>>>>>>>>>>>>>> ParameterizedMessage.formatTo for single-char or empty >>>>>>>>>>>>>>>> messages. Thanks to Rogério Lecarião Leite. >>>>>>>>>>>>>>>> o LOG4J2-1549: Fixed issue where >>>>>>>>>>>>>>>> AsyncLoggerContextSelector+PropertiesConfigurationBuilder >>>>>>>>>>>>>>>> defaulted to includeLocation=true. Thanks to Jason Bedard. >>>>>>>>>>>>>>>> o LOG4J2-1562: Prevent SocketAppender memory usage from >>>>>>>>>>>>>>>> growing unbounded if it cannot connect to a server. >>>>>>>>>>>>>>>> o LOG4J2-1559: Prevent NPE in Level.isInRange. Thanks to >>>>>>>>>>>>>>>> Andrey Plotkin. >>>>>>>>>>>>>>>> o LOG4J2-1511: DynamicThresholdFilter filtered incorrectly >>>>>>>>>>>>>>>> when params were passed as individual arguments instead of >>>>>>>>>>>>>>>> varargs. Thanks to Srikanth Surukuntu. >>>>>>>>>>>>>>>> o LOG4J2-1548: [CronTriggeringPolicy] ConfigurationScheduler >>>>>>>>>>>>>>>> scheduled the task infinitely after first fire. >>>>>>>>>>>>>>>> o LOG4J2-1506: Log4j should not unregister JMX MBeans when >>>>>>>>>>>>>>>> log4j2.disable.jmx property is true. Thanks to Johannes >>>>>>>>>>>>>>>> Schleger. >>>>>>>>>>>>>>>> o LOG4J2-1490: Log4j2 should postpone creating log file until >>>>>>>>>>>>>>>> the appender actually receives an event. Thanks to Krzysztof >>>>>>>>>>>>>>>> Taborski. >>>>>>>>>>>>>>>> o LOG4J2-1320: Support loading custom plugins from jar files >>>>>>>>>>>>>>>> and directories whose classpath entries use the "vfs" URL >>>>>>>>>>>>>>>> protocol. Thanks to Paresh Varke, Pierrick Hymbert. >>>>>>>>>>>>>>>> o LOG4J2-1541: Fix file handle resource leak in >>>>>>>>>>>>>>>> XmlConfiguration.XmlConfiguration(ConfigurationSource). >>>>>>>>>>>>>>>> o LOG4J2-1538: Prevent NPE when dynamically removing filters. >>>>>>>>>>>>>>>> Thanks to Igor Karpov. >>>>>>>>>>>>>>>> o LOG4J2-1532: Attributes were not merged properly in >>>>>>>>>>>>>>>> composite configurations. >>>>>>>>>>>>>>>> o LOG4J2-1529: Attributes were not merged properly in >>>>>>>>>>>>>>>> composite configurations. Thanks to Sridevi Narra. >>>>>>>>>>>>>>>> o LOG4J2-1527: Prevent NPE in >>>>>>>>>>>>>>>> RingBufferLogEvent.getFormattedMessage() when used in web >>>>>>>>>>>>>>>> applications. Thanks to Jose Leon. >>>>>>>>>>>>>>>> o LOG4J2-905: Added ability to disable (date) lookup >>>>>>>>>>>>>>>> completely for compatibility with other libraries like Camel. >>>>>>>>>>>>>>>> Thanks to Moritz Löser. >>>>>>>>>>>>>>>> o LOG4J2-1526: Added support for setting StatusLogger >>>>>>>>>>>>>>>> destination in ConfigurationBuilder. >>>>>>>>>>>>>>>> o LOG4J2-1448: Allow comma separated agents, host list to be >>>>>>>>>>>>>>>> passed to FlumeAppender. Thanks to Keith Laban. >>>>>>>>>>>>>>>> o LOG4J2-1500: Merging configurations failed with an NPE when >>>>>>>>>>>>>>>> comparing Nodes with different attributes. Thanks to Jose Leon. >>>>>>>>>>>>>>>> o LOG4J2-1482: Fixed improper header in CsvParameterLayout. >>>>>>>>>>>>>>>> Thanks to Sumit Singhal. >>>>>>>>>>>>>>>> o LOG4J2-1199: Documented that JVM Input Arguments Lookup >>>>>>>>>>>>>>>> (JMX) is not available on Google App Engine. >>>>>>>>>>>>>>>> o LOG4J2-1438: (GC) Added method getParameter() to >>>>>>>>>>>>>>>> ObjectMessage (and ReusableObjectMessage). >>>>>>>>>>>>>>>> o LOG4J2-1488: (GC) Fixed ISO8601 %date conversion pattern >>>>>>>>>>>>>>>> with a period '.' separator for milliseconds is now garbage >>>>>>>>>>>>>>>> free. Thanks to Richard Zschech. >>>>>>>>>>>>>>>> o LOG4J2-1489: (GC) Fixed %date conversion patterns with a >>>>>>>>>>>>>>>> timezone parameter are now garbage free. Thanks to Richard >>>>>>>>>>>>>>>> Zschech. >>>>>>>>>>>>>>>> o LOG4J2-1279: Prevent NullPointerException in >>>>>>>>>>>>>>>> FastDateParser$TimeZoneStrategy. Thanks to Tony Baines. >>>>>>>>>>>>>>>> o LOG4J2-1341: (GC) HighlightConverter and StyleConverter are >>>>>>>>>>>>>>>> now GC-free. Thanks to Richard Zschech. >>>>>>>>>>>>>>>> o LOG4J2-1467: [OSGi] Fixed missing import package. Thanks to >>>>>>>>>>>>>>>> Ralf, Gary Gregory. >>>>>>>>>>>>>>>> o LOG4J2-351: [OSGi] Fixed wrong Fragment-Host in manifest >>>>>>>>>>>>>>>> files. Thanks to Roland Weiglhofer. >>>>>>>>>>>>>>>> o LOG4J2-1313: Properties declared in configuration can now >>>>>>>>>>>>>>>> have their value either in the element body or in an attribute >>>>>>>>>>>>>>>> named "value". Thanks to Philipp Knobel. >>>>>>>>>>>>>>>> o LOG4J2-1235: >>>>>>>>>>>>>>>> org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy >>>>>>>>>>>>>>>> was not working correctly. Thanks to Niranjan Rao, Sascha >>>>>>>>>>>>>>>> Scholz, Aleksey Zvolinsky. >>>>>>>>>>>>>>>> o LOG4J2-1502: Fixed issue where CsvParameterLayout and >>>>>>>>>>>>>>>> CsvLogEventLayout inserted NUL characters if data starts with >>>>>>>>>>>>>>>> {, (, [ or " Thanks to Sumit Singhal. >>>>>>>>>>>>>>>> o LOG4J2-1573: Layout is no longer optional. Thanks to >>>>>>>>>>>>>>>> Steffen Offermann. >>>>>>>>>>>>>>>> o LOG4J2-1608: ServletAppender does not provide throwable >>>>>>>>>>>>>>>> object to ServletContext. >>>>>>>>>>>>>>>> o LOG4J2-1599: Prevent potential NPE in >>>>>>>>>>>>>>>> org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, >>>>>>>>>>>>>>>> char[], int, Object[], int, int[]). >>>>>>>>>>>>>>>> o LOG4J2-1600: Prevent potential NPE due to >>>>>>>>>>>>>>>> org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], >>>>>>>>>>>>>>>> String, boolean, boolean, Configuration). >>>>>>>>>>>>>>>> o LOG4J2-1601: Prevent potential NPE due to >>>>>>>>>>>>>>>> org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, >>>>>>>>>>>>>>>> PatternMatch[], String, boolean, boolean, Configuration). >>>>>>>>>>>>>>>> o LOG4J2-1602: Prevent potential NPE in >>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) >>>>>>>>>>>>>>>> when object is null. >>>>>>>>>>>>>>>> o LOG4J2-1603: Redo hashCode() and equals() methods in >>>>>>>>>>>>>>>> org.apache.logging.log4j.core.net.ssl classes. >>>>>>>>>>>>>>>> o LOG4J2-1610: Add targetNamespace to log4j-config.xsd. >>>>>>>>>>>>>>>> GitHub #43. Thanks to Shubhankar. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Changes: >>>>>>>>>>>>>>>> o LOG4J2-1604: Log4j2 TcpSocketServer in background. Thanks >>>>>>>>>>>>>>>> to Colin Hillman. >>>>>>>>>>>>>>>> o LOG4J2-1574: Allow the RollingFileAppender to use default >>>>>>>>>>>>>>>> pattern layout. >>>>>>>>>>>>>>>> o LOG4J2-1556: Custom Log4j threads now extend Log4jThread. >>>>>>>>>>>>>>>> o LOG4J2-1605: Improve error messages for TcpSocketServer and >>>>>>>>>>>>>>>> UdpSocketServer. >>>>>>>>>>>>>>>> o LOG4J2-1458: Updated Jackson from 2.7.5 to 2.8.0. >>>>>>>>>>>>>>>> o LOG4J2-1494: Updated Jackson from 2.8.0 to 2.8.1. >>>>>>>>>>>>>>>> o LOG4J2-1569: Updated Jackson from 2.8.1 to 2.8.2. >>>>>>>>>>>>>>>> o LOG4J2-1598: Updated Jackson from 2.8.2 to 2.8.3. >>>>>>>>>>>>>>>> o LOG4J2-1495: Updated LMAX Disruptor from 3.3.4 to 3.3.5. >>>>>>>>>>>>>>>> o LOG4J2-1496: Updated Kafka client from 0.9.1.0 to 0.10.0.0. >>>>>>>>>>>>>>>> o LOG4J2-1533: Updated Kafka client from 0.10.0.0 to 0.10.0.1. >>>>>>>>>>>>>>>> o LOG4J2-1487: Updated JMS test from ActiveMQ 5.13.3 to >>>>>>>>>>>>>>>> 5.13.4. >>>>>>>>>>>>>>>> o LOG4J2-1551: Updated JMS test from ActiveMQ 5.13.4 to >>>>>>>>>>>>>>>> 5.14.0. >>>>>>>>>>>>>>>> o LOG4J2-1543: Removed deprecated Core API >>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.Constants.UTF_8. >>>>>>>>>>>>>>>> o LOG4J2-1544: Removed deprecated Core API >>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.Assert.requireNonNull(T, >>>>>>>>>>>>>>>> String). >>>>>>>>>>>>>>>> o LOG4J2-1545: Removed deprecated Web API >>>>>>>>>>>>>>>> org.apache.logging.log4j.web.WebLookup.getServletContext(). >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Tag: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> a) for a new copy do "git clone >>>>>>>>>>>>>>>> https://git-wip-us.apache.org/repos/asf/logging-log4j2.git" >>>>>>>>>>>>>>>> and then "git checkout tags/log4j-2.7-rc1” >>>>>>>>>>>>>>>> b) for an existing working copy to “git pull” and then “git >>>>>>>>>>>>>>>> checkout tags/log4j-2.7-rc1” >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Web Site: >>>>>>>>>>>>>>>> <http://rgoers.github.io/log4j2-site/index.html>http://rgoers.github.io/log4j2-site/index.html >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Artifacts: >>>>>>>>>>>>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1021/ >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> You may download all the artifacts by executing: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> wget -e robots=off --cut-dirs=7 -nH -r -p -np >>>>>>>>>>>>>>>> --no-check-certificate >>>>>>>>>>>>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/ >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Mikael Ståldal* >>>>>>>>>>>>>>> Senior software developer >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Magine TV* >>>>>>>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>>>>> www.magine.com >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Privileged and/or Confidential Information may be contained >>>>>>>>>>>>>>> in this message. If you are not the addressee indicated in this >>>>>>>>>>>>>>> message >>>>>>>>>>>>>>> (or responsible for delivery of the message to such a >>>>>>>>>>>>>>> person), you may not copy or deliver this message to anyone. In >>>>>>>>>>>>>>> such case, >>>>>>>>>>>>>>> you should destroy this message and kindly notify the sender >>>>>>>>>>>>>>> by reply email. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Mikael Ståldal* >>>>>>>>>>>>>> Senior software developer >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Magine TV* >>>>>>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>>>> www.magine.com >>>>>>>>>>>>>> >>>>>>>>>>>>>> Privileged and/or Confidential Information may be contained >>>>>>>>>>>>>> in this message. If you are not the addressee indicated in this >>>>>>>>>>>>>> message >>>>>>>>>>>>>> (or responsible for delivery of the message to such a >>>>>>>>>>>>>> person), you may not copy or deliver this message to anyone. In >>>>>>>>>>>>>> such case, >>>>>>>>>>>>>> you should destroy this message and kindly notify the sender >>>>>>>>>>>>>> by reply email. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>>>>> <http://www.manning.com/tahchiev/> >>>>>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>> >>>>>>>>>>>> *Mikael Ståldal* >>>>>>>>>>>> Senior software developer >>>>>>>>>>>> >>>>>>>>>>>> *Magine TV* >>>>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>> www.magine.com >>>>>>>>>>>> >>>>>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>>>>> this message. If you are not the addressee indicated in this >>>>>>>>>>>> message >>>>>>>>>>>> (or responsible for delivery of the message to such a person), >>>>>>>>>>>> you may not copy or deliver this message to anyone. In such case, >>>>>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>>>>> reply email. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>>> <http://www.manning.com/tahchiev/> >>>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> [image: MagineTV] >>>>>>>>>> >>>>>>>>>> *Mikael Ståldal* >>>>>>>>>> Senior software developer >>>>>>>>>> >>>>>>>>>> *Magine TV* >>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>>>> >>>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>>> this message. If you are not the addressee indicated in this message >>>>>>>>>> (or responsible for delivery of the message to such a person), >>>>>>>>>> you may not copy or deliver this message to anyone. In such case, >>>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>>> reply email. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> [image: MagineTV] >>>>>>>>> >>>>>>>>> *Mikael Ståldal* >>>>>>>>> Senior software developer >>>>>>>>> >>>>>>>>> *Magine TV* >>>>>>>>> mikael.stal...@magine.com >>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>>> >>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>> this message. If you are not the addressee indicated in this message >>>>>>>>> (or responsible for delivery of the message to such a person), you >>>>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>> reply email. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>> Home: http://garygregory.com/ >>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> [image: MagineTV] >>>>>>> >>>>>>> *Mikael Ståldal* >>>>>>> Senior software developer >>>>>>> >>>>>>> *Magine TV* >>>>>>> mikael.stal...@magine.com >>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>> >>>>>>> Privileged and/or Confidential Information may be contained in this >>>>>>> message. If you are not the addressee indicated in this message >>>>>>> (or responsible for delivery of the message to such a person), you >>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>> you should destroy this message and kindly notify the sender by >>>>>>> reply email. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> [image: MagineTV] >>>>>> >>>>>> *Mikael Ståldal* >>>>>> Senior software developer >>>>>> >>>>>> *Magine TV* >>>>>> mikael.stal...@magine.com >>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>> >>>>>> Privileged and/or Confidential Information may be contained in this >>>>>> message. If you are not the addressee indicated in this message >>>>>> (or responsible for delivery of the message to such a person), you >>>>>> may not copy or deliver this message to anyone. In such case, >>>>>> you should destroy this message and kindly notify the sender by reply >>>>>> email. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>> Java Persistence with Hibernate, Second Edition >>>>> <http://www.manning.com/bauer3/> >>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>>>> >>>> >>>> >>>> >>>> -- >>>> [image: MagineTV] >>>> >>>> *Mikael Ståldal* >>>> Senior software developer >>>> >>>> *Magine TV* >>>> mikael.stal...@magine.com >>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>> >>>> Privileged and/or Confidential Information may be contained in this >>>> message. If you are not the addressee indicated in this message >>>> (or responsible for delivery of the message to such a person), you may >>>> not copy or deliver this message to anyone. In such case, >>>> you should destroy this message and kindly notify the sender by reply >>>> email. >>>> >>>> >>>> >>> >>> >>> -- >>> [image: MagineTV] >>> >>> *Mikael Ståldal* >>> Senior software developer >>> >>> *Magine TV* >>> mikael.stal...@magine.com >>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>> >>> Privileged and/or Confidential Information may be contained in this >>> message. If you are not the addressee indicated in this message >>> (or responsible for delivery of the message to such a person), you may >>> not copy or deliver this message to anyone. In such case, >>> you should destroy this message and kindly notify the sender by reply >>> email. >>> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> <http://www.manning.com/bauer3/> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> Spring Batch in Action <http://www.manning.com/templier/> >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > <http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory >