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
>

Reply via email to