You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Ralph Goers <ra...@dslextreme.com> on 2016/09/26 15:50:02 UTC

[VOTE] Release Log4j 2.7-rc1

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 <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 <http://rgoers.github.io/log4j2-site/index.html>

Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
Ralph

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
You probably do not want to depend directly on classes in
org.apache.logging.log4j.core.util.

Gary

On Tue, Sep 27, 2016 at 8:25 PM, Leon Finker <le...@gmail.com> wrote:

> FYI, probably not important, but noticed that this was removed:
> org.apache.logging.log4j.core.util.Constant.LINE_SEPARATOR. For some
> reason we used it in one of custom plugins (probably copied from log4j2
> existing classes as a starting point). So it threw class not found
> exception in 2.7. It was easy to fix since plugin is under our control.
>
> On 2016-09-27 23:10 (-0400), Gary Gregory <ga...@gmail.com> wrote:
> > I'm going to go to +1 since the software can be built soup to nuts with
> 'mvn
> > clean install'.
> >
> > Gary
> >
> > On Mon, Sep 26, 2016 at 11:06 PM, Ralph Goers <
> ralph.goers@dslextreme.com>
> > wrote:
> >
> > > Matt, note that it didn’t fail when Gary ran mvn clean install.  If you
> > > run mvn install -DskipTests followed by mvn test it fails.  This tells
> me
> > > there is something funny going on in the tests that requires the tests
> to
> > > be run as part of the full lifecycle.
> > >
> > > Ralph
> > >
> > > On Sep 26, 2016, at 9:51 PM, Matt Sicker <bo...@gmail.com> wrote:
> > >
> > > That OSGi test failure could be related to the fix for LOG4J2-351,
> though
> > > I'm surprised it hasn't caused a test failure until now.
> > >
> > > On 26 September 2016 at 23:42, Ralph Goers <ralph.goers@dslextreme.com
> >
> > > wrote:
> > >
> > >> When I looked at it the Log4j1Configuration stuff said it was
> > >> experimental so if it has issues I don’t think it matters.
> > >>
> > >> Believe it or not I have never run mvn test all by itself. I pretty
> much
> > >> only do mvn clean install. So I have no idea if this is new or has
> always
> > >> been this way.
> > >>
> > >> Ralph
> > >>
> > >> On Sep 26, 2016, at 9:15 PM, Gary Gregory <ga...@gmail.com>
> wrote:
> > >>
> > >> Based in the src distribution: MD5, SHA1, ASC OK.
> > >>
> > >> mvn clean install OK.
> > >>
> > >> BUT I had to hack the tset org.apache.log4j.config.Log4j1
> > >> ConfigurationFactoryTest.testSystemProperties2() and add a
> > >> "appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this
> is
> > >> pushed to Git master.
> > >>
> > >> RAT check OK.
> > >>
> > >> mvn clirr:check -pl log4j-api OK
> > >>
> > >> mvn clirr:check -pl log4j-1.2-api FAILS due to changes
> > >> in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by
> me.
> > >>
> > >> Then I ran:
> > >>
> > >> mvn install -DskipTests OK
> > >> mvn package -DskipTests OK
> > >>
> > >> and:
> > >>
> > >> mvn test
> > >>
> > >> gives me:
> > >> --
> > >> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753
> sec
> > >> <<< FAILURE! - in org.apache.logging.log4j.osgi.
> > >> felix.FelixLoadApiBundleTest
> > >> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
> > >> osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 1.389 sec  <<<
> ERROR!
> > >> org.osgi.framework.BundleException: Activator start error in bundle
> > >> org.apache.logging.log4j.core [2].
> > >> Caused by: java.lang.NoClassDefFoundError:
> org/apache/logging/log4j/Logge
> > >> r
> > >> Caused by: java.lang.ClassNotFoundException:
> > >> org.apache.logging.log4j.Logger not found by
> > >> org.apache.logging.log4j.core [2]
> > >>
> > >> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.
> felix.FelixLoadApiBundleTest)
> > >>  Time elapsed: 0.172 sec  <<< ERROR!
> > >> org.osgi.framework.BundleException: Activator start error in bundle
> > >> org.apache.logging.log4j.core [2].
> > >> Caused by: java.lang.NoClassDefFoundError:
> org/apache/logging/log4j/Logge
> > >> r
> > >> Caused by: java.lang.ClassNotFoundException:
> > >> org.apache.logging.log4j.Logger not found by
> > >> org.apache.logging.log4j.core [2]
> > >>
> > >> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309
> sec
> > >> <<< FAILURE! - in org.apache.logging.log4j.osgi.
> > >> equinox.EquinoxLoadApiBundleTest
> > >> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
> > >> osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 1.371 sec  <<<
> > >> ERROR!
> > >> org.osgi.framework.BundleException: The activator
> > >> org.apache.logging.log4j.core.osgi.Activator for bundle
> > >> org.apache.logging.log4j.core is invalid
> > >> Caused by: java.lang.NoClassDefFoundError:
> org/apache/logging/log4j/Logge
> > >> r
> > >> Caused by: java.lang.ClassNotFoundException:
> > >> org.apache.logging.log4j.Logger
> > >>
> > >> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.e
> > >> quinox.EquinoxLoadApiBundleTest)  Time elapsed: 0.293 sec  <<< ERROR!
> > >> org.osgi.framework.BundleException: The activator
> > >> org.apache.logging.log4j.core.osgi.Activator for bundle
> > >> org.apache.logging.log4j.core is invalid
> > >> Caused by: java.lang.NoClassDefFoundError:
> org/apache/logging/log4j/Logge
> > >> r
> > >> Caused by: java.lang.ClassNotFoundException:
> > >> org.apache.logging.log4j.Logger
> > >>
> > >>
> > >> Results :
> > >>
> > >> Tests in error:
> > >>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.
> testMissingImportOfCoreOsgiPackage:174
> > >> ╗ Bundle
> > >>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.
> testSimpleLogInAnOsgiContext:131
> > >> ╗ Bundle
> > >>   FelixLoadApiBundleTest>AbstractLoadBundleTest.
> testMissingImportOfCoreOsgiPackage:174
> > >> ╗ Bundle
> > >>   FelixLoadApiBundleTest>AbstractLoadBundleTest.
> testSimpleLogInAnOsgiContext:131
> > >> ╗ Bundle
> > >>
> > >> Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
> > >> --
> > >>
> > >> Any ideas on getting the OSGi tests to pass?
> > >>
> > >> Gary
> > >>
> > >> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <
> ralph.goers@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
> > >>>
> > >>>
> > >>
> > >>
> > >> --
> > >> E-Mail: garydgregory@gmail.com | ggregory@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
> > >>
> > >>
> > >>
> > >
> > >
> > > --
> > > Matt Sicker <bo...@gmail.com>
> > >
> > >
> > >
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@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
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-dev-help@logging.apache.org
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Leon Finker <le...@gmail.com>.
FYI, probably not important, but noticed that this was removed: org.apache.logging.log4j.core.util.Constant.LINE_SEPARATOR. For some reason we used it in one of custom plugins (probably copied from log4j2 existing classes as a starting point). So it threw class not found exception in 2.7. It was easy to fix since plugin is under our control. 

On 2016-09-27 23:10 (-0400), Gary Gregory <ga...@gmail.com> wrote: 
> I'm going to go to +1 since the software can be built soup to nuts with 'mvn
> clean install'.
> 
> Gary
> 
> On Mon, Sep 26, 2016 at 11:06 PM, Ralph Goers <ra...@dslextreme.com>
> wrote:
> 
> > Matt, note that it didn\u2019t fail when Gary ran mvn clean install.  If you
> > run mvn install -DskipTests followed by mvn test it fails.  This tells me
> > there is something funny going on in the tests that requires the tests to
> > be run as part of the full lifecycle.
> >
> > Ralph
> >
> > On Sep 26, 2016, at 9:51 PM, Matt Sicker <bo...@gmail.com> wrote:
> >
> > That OSGi test failure could be related to the fix for LOG4J2-351, though
> > I'm surprised it hasn't caused a test failure until now.
> >
> > On 26 September 2016 at 23:42, Ralph Goers <ra...@dslextreme.com>
> > wrote:
> >
> >> When I looked at it the Log4j1Configuration stuff said it was
> >> experimental so if it has issues I don\u2019t think it matters.
> >>
> >> Believe it or not I have never run mvn test all by itself. I pretty much
> >> only do mvn clean install. So I have no idea if this is new or has always
> >> been this way.
> >>
> >> Ralph
> >>
> >> On Sep 26, 2016, at 9:15 PM, Gary Gregory <ga...@gmail.com> wrote:
> >>
> >> Based in the src distribution: MD5, SHA1, ASC OK.
> >>
> >> mvn clean install OK.
> >>
> >> BUT I had to hack the tset org.apache.log4j.config.Log4j1
> >> ConfigurationFactoryTest.testSystemProperties2() and add a
> >> "appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this is
> >> pushed to Git master.
> >>
> >> RAT check OK.
> >>
> >> mvn clirr:check -pl log4j-api OK
> >>
> >> mvn clirr:check -pl log4j-1.2-api FAILS due to changes
> >> in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by me.
> >>
> >> Then I ran:
> >>
> >> mvn install -DskipTests OK
> >> mvn package -DskipTests OK
> >>
> >> and:
> >>
> >> mvn test
> >>
> >> gives me:
> >> --
> >> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753 sec
> >> <<< FAILURE! - in org.apache.logging.log4j.osgi.
> >> felix.FelixLoadApiBundleTest
> >> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
> >> osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 1.389 sec  <<< ERROR!
> >> org.osgi.framework.BundleException: Activator start error in bundle
> >> org.apache.logging.log4j.core [2].
> >> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
> >> r
> >> Caused by: java.lang.ClassNotFoundException:
> >> org.apache.logging.log4j.Logger not found by
> >> org.apache.logging.log4j.core [2]
> >>
> >> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)
> >>  Time elapsed: 0.172 sec  <<< ERROR!
> >> org.osgi.framework.BundleException: Activator start error in bundle
> >> org.apache.logging.log4j.core [2].
> >> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
> >> r
> >> Caused by: java.lang.ClassNotFoundException:
> >> org.apache.logging.log4j.Logger not found by
> >> org.apache.logging.log4j.core [2]
> >>
> >> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309 sec
> >> <<< FAILURE! - in org.apache.logging.log4j.osgi.
> >> equinox.EquinoxLoadApiBundleTest
> >> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
> >> osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 1.371 sec  <<<
> >> ERROR!
> >> org.osgi.framework.BundleException: The activator
> >> org.apache.logging.log4j.core.osgi.Activator for bundle
> >> org.apache.logging.log4j.core is invalid
> >> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
> >> r
> >> Caused by: java.lang.ClassNotFoundException:
> >> org.apache.logging.log4j.Logger
> >>
> >> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.e
> >> quinox.EquinoxLoadApiBundleTest)  Time elapsed: 0.293 sec  <<< ERROR!
> >> org.osgi.framework.BundleException: The activator
> >> org.apache.logging.log4j.core.osgi.Activator for bundle
> >> org.apache.logging.log4j.core is invalid
> >> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
> >> r
> >> Caused by: java.lang.ClassNotFoundException:
> >> org.apache.logging.log4j.Logger
> >>
> >>
> >> Results :
> >>
> >> Tests in error:
> >>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
> >> \u2557 Bundle
> >>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
> >> \u2557 Bundle
> >>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
> >> \u2557 Bundle
> >>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
> >> \u2557 Bundle
> >>
> >> Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
> >> --
> >>
> >> Any ideas on getting the OSGi tests to pass?
> >>
> >> Gary
> >>
> >> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ra...@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 \u201cofficially\u201d 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\u201d
> >>> b) for an existing working copy to \u201cgit pull\u201d and then \u201cgit checkout tags/log4j-2.7-rc1\u201d
> >>>
> >>> 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
> >>>
> >>>
> >>
> >>
> >> --
> >> E-Mail: garydgregory@gmail.com | ggregory@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
> >>
> >>
> >>
> >
> >
> > --
> > Matt Sicker <bo...@gmail.com>
> >
> >
> >
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com | ggregory@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
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
I'm going to go to +1 since the software can be built soup to nuts with 'mvn
clean install'.

Gary

On Mon, Sep 26, 2016 at 11:06 PM, Ralph Goers <ra...@dslextreme.com>
wrote:

> Matt, note that it didn’t fail when Gary ran mvn clean install.  If you
> run mvn install -DskipTests followed by mvn test it fails.  This tells me
> there is something funny going on in the tests that requires the tests to
> be run as part of the full lifecycle.
>
> Ralph
>
> On Sep 26, 2016, at 9:51 PM, Matt Sicker <bo...@gmail.com> wrote:
>
> That OSGi test failure could be related to the fix for LOG4J2-351, though
> I'm surprised it hasn't caused a test failure until now.
>
> On 26 September 2016 at 23:42, Ralph Goers <ra...@dslextreme.com>
> wrote:
>
>> When I looked at it the Log4j1Configuration stuff said it was
>> experimental so if it has issues I don’t think it matters.
>>
>> Believe it or not I have never run mvn test all by itself. I pretty much
>> only do mvn clean install. So I have no idea if this is new or has always
>> been this way.
>>
>> Ralph
>>
>> On Sep 26, 2016, at 9:15 PM, Gary Gregory <ga...@gmail.com> wrote:
>>
>> Based in the src distribution: MD5, SHA1, ASC OK.
>>
>> mvn clean install OK.
>>
>> BUT I had to hack the tset org.apache.log4j.config.Log4j1
>> ConfigurationFactoryTest.testSystemProperties2() and add a
>> "appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this is
>> pushed to Git master.
>>
>> RAT check OK.
>>
>> mvn clirr:check -pl log4j-api OK
>>
>> mvn clirr:check -pl log4j-1.2-api FAILS due to changes
>> in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by me.
>>
>> Then I ran:
>>
>> mvn install -DskipTests OK
>> mvn package -DskipTests OK
>>
>> and:
>>
>> mvn test
>>
>> gives me:
>> --
>> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753 sec
>> <<< FAILURE! - in org.apache.logging.log4j.osgi.
>> felix.FelixLoadApiBundleTest
>> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
>> osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 1.389 sec  <<< ERROR!
>> org.osgi.framework.BundleException: Activator start error in bundle
>> org.apache.logging.log4j.core [2].
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger not found by
>> org.apache.logging.log4j.core [2]
>>
>> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)
>>  Time elapsed: 0.172 sec  <<< ERROR!
>> org.osgi.framework.BundleException: Activator start error in bundle
>> org.apache.logging.log4j.core [2].
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger not found by
>> org.apache.logging.log4j.core [2]
>>
>> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309 sec
>> <<< FAILURE! - in org.apache.logging.log4j.osgi.
>> equinox.EquinoxLoadApiBundleTest
>> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
>> osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 1.371 sec  <<<
>> ERROR!
>> org.osgi.framework.BundleException: The activator
>> org.apache.logging.log4j.core.osgi.Activator for bundle
>> org.apache.logging.log4j.core is invalid
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger
>>
>> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.e
>> quinox.EquinoxLoadApiBundleTest)  Time elapsed: 0.293 sec  <<< ERROR!
>> org.osgi.framework.BundleException: The activator
>> org.apache.logging.log4j.core.osgi.Activator for bundle
>> org.apache.logging.log4j.core is invalid
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger
>>
>>
>> Results :
>>
>> Tests in error:
>>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
>> ╗ Bundle
>>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
>> ╗ Bundle
>>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
>> ╗ Bundle
>>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
>> ╗ Bundle
>>
>> Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
>> --
>>
>> Any ideas on getting the OSGi tests to pass?
>>
>> Gary
>>
>> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ra...@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
>>>
>>>
>>
>>
>> --
>> E-Mail: garydgregory@gmail.com | ggregory@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
>>
>>
>>
>
>
> --
> Matt Sicker <bo...@gmail.com>
>
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Matt Sicker <bo...@gmail.com>.
Oh, got it. I have a backlog item in Commons to make a generic pax-exam
test for testing OSGi integration of various projects. Such a test would be
great for here, too.

On 27 September 2016 at 01:06, Ralph Goers <ra...@dslextreme.com>
wrote:

> Matt, note that it didn’t fail when Gary ran mvn clean install.  If you
> run mvn install -DskipTests followed by mvn test it fails.  This tells me
> there is something funny going on in the tests that requires the tests to
> be run as part of the full lifecycle.
>
> Ralph
>
> On Sep 26, 2016, at 9:51 PM, Matt Sicker <bo...@gmail.com> wrote:
>
> That OSGi test failure could be related to the fix for LOG4J2-351, though
> I'm surprised it hasn't caused a test failure until now.
>
> On 26 September 2016 at 23:42, Ralph Goers <ra...@dslextreme.com>
> wrote:
>
>> When I looked at it the Log4j1Configuration stuff said it was
>> experimental so if it has issues I don’t think it matters.
>>
>> Believe it or not I have never run mvn test all by itself. I pretty much
>> only do mvn clean install. So I have no idea if this is new or has always
>> been this way.
>>
>> Ralph
>>
>> On Sep 26, 2016, at 9:15 PM, Gary Gregory <ga...@gmail.com> wrote:
>>
>> Based in the src distribution: MD5, SHA1, ASC OK.
>>
>> mvn clean install OK.
>>
>> BUT I had to hack the tset org.apache.log4j.config.Log4j1
>> ConfigurationFactoryTest.testSystemProperties2() and add a
>> "appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this is
>> pushed to Git master.
>>
>> RAT check OK.
>>
>> mvn clirr:check -pl log4j-api OK
>>
>> mvn clirr:check -pl log4j-1.2-api FAILS due to changes
>> in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by me.
>>
>> Then I ran:
>>
>> mvn install -DskipTests OK
>> mvn package -DskipTests OK
>>
>> and:
>>
>> mvn test
>>
>> gives me:
>> --
>> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753 sec
>> <<< FAILURE! - in org.apache.logging.log4j.osgi.
>> felix.FelixLoadApiBundleTest
>> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
>> osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 1.389 sec  <<< ERROR!
>> org.osgi.framework.BundleException: Activator start error in bundle
>> org.apache.logging.log4j.core [2].
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger not found by
>> org.apache.logging.log4j.core [2]
>>
>> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)
>>  Time elapsed: 0.172 sec  <<< ERROR!
>> org.osgi.framework.BundleException: Activator start error in bundle
>> org.apache.logging.log4j.core [2].
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger not found by
>> org.apache.logging.log4j.core [2]
>>
>> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309 sec
>> <<< FAILURE! - in org.apache.logging.log4j.osgi.
>> equinox.EquinoxLoadApiBundleTest
>> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.
>> osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 1.371 sec  <<<
>> ERROR!
>> org.osgi.framework.BundleException: The activator
>> org.apache.logging.log4j.core.osgi.Activator for bundle
>> org.apache.logging.log4j.core is invalid
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger
>>
>> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.e
>> quinox.EquinoxLoadApiBundleTest)  Time elapsed: 0.293 sec  <<< ERROR!
>> org.osgi.framework.BundleException: The activator
>> org.apache.logging.log4j.core.osgi.Activator for bundle
>> org.apache.logging.log4j.core is invalid
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logge
>> r
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.logging.log4j.Logger
>>
>>
>> Results :
>>
>> Tests in error:
>>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
>> ╗ Bundle
>>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
>> ╗ Bundle
>>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
>> ╗ Bundle
>>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
>> ╗ Bundle
>>
>> Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
>> --
>>
>> Any ideas on getting the OSGi tests to pass?
>>
>> Gary
>>
>> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ra...@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
>>>
>>>
>>
>>
>> --
>> E-Mail: garydgregory@gmail.com | ggregory@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
>>
>>
>>
>
>
> --
> Matt Sicker <bo...@gmail.com>
>
>
>


-- 
Matt Sicker <bo...@gmail.com>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
Matt, note that it didn’t fail when Gary ran mvn clean install.  If you run mvn install -DskipTests followed by mvn test it fails.  This tells me there is something funny going on in the tests that requires the tests to be run as part of the full lifecycle.  

Ralph

> On Sep 26, 2016, at 9:51 PM, Matt Sicker <bo...@gmail.com> wrote:
> 
> That OSGi test failure could be related to the fix for LOG4J2-351, though I'm surprised it hasn't caused a test failure until now.
> 
> On 26 September 2016 at 23:42, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
> When I looked at it the Log4j1Configuration stuff said it was experimental so if it has issues I don’t think it matters.
> 
> Believe it or not I have never run mvn test all by itself. I pretty much only do mvn clean install. So I have no idea if this is new or has always been this way.
> 
> Ralph
> 
>> On Sep 26, 2016, at 9:15 PM, Gary Gregory <garydgregory@gmail.com <ma...@gmail.com>> wrote:
>> 
>> Based in the src distribution: MD5, SHA1, ASC OK.
>> 
>> mvn clean install OK.
>> 
>> BUT I had to hack the tset org.apache.log4j.config.Log4j1ConfigurationFactoryTest.testSystemProperties2() and add a "appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this is pushed to Git master.
>> 
>> RAT check OK.
>> 
>> mvn clirr:check -pl log4j-api OK
>> 
>> mvn clirr:check -pl log4j-1.2-api FAILS due to changes in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by me.
>> 
>> Then I ran:
>> 
>> mvn install -DskipTests OK
>> mvn package -DskipTests OK
>> 
>> and:
>> 
>> mvn test 
>> 
>> gives me:
>> --
>> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753 sec <<< FAILURE! - in org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest
>> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 1.389 sec  <<< ERROR!
>> org.osgi.framework.BundleException: Activator start error in bundle org.apache.logging.log4j.core [2].
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
>> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger not found by org.apache.logging.log4j.core [2]
>> 
>> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 0.172 sec  <<< ERROR!
>> org.osgi.framework.BundleException: Activator start error in bundle org.apache.logging.log4j.core [2].
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
>> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger not found by org.apache.logging.log4j.core [2]
>> 
>> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309 sec <<< FAILURE! - in org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest
>> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 1.371 sec  <<< ERROR!
>> org.osgi.framework.BundleException: The activator org.apache.logging.log4j.core.osgi.Activator for bundle org.apache.logging.log4j.core is invalid
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
>> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger
>> 
>> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 0.293 sec  <<< ERROR!
>> org.osgi.framework.BundleException: The activator org.apache.logging.log4j.core.osgi.Activator for bundle org.apache.logging.log4j.core is invalid
>> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
>> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger
>> 
>> 
>> Results :
>> 
>> Tests in error:
>>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174 ╗ Bundle
>>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131 ╗ Bundle
>>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174 ╗ Bundle
>>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131 ╗ Bundle
>> 
>> Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
>> --
>> 
>> Any ideas on getting the OSGi tests to pass?
>> 
>> Gary
>> 
>> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ralph.goers@dslextreme.com <ma...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
>> 
>> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
>> Ralph
>> 
>> 
>> 
>> 
>> -- 
>> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> 
> -- 
> Matt Sicker <boards@gmail.com <ma...@gmail.com>>


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Matt Sicker <bo...@gmail.com>.
That OSGi test failure could be related to the fix for LOG4J2-351, though
I'm surprised it hasn't caused a test failure until now.

On 26 September 2016 at 23:42, Ralph Goers <ra...@dslextreme.com>
wrote:

> When I looked at it the Log4j1Configuration stuff said it was experimental
> so if it has issues I don’t think it matters.
>
> Believe it or not I have never run mvn test all by itself. I pretty much
> only do mvn clean install. So I have no idea if this is new or has always
> been this way.
>
> Ralph
>
> On Sep 26, 2016, at 9:15 PM, Gary Gregory <ga...@gmail.com> wrote:
>
> Based in the src distribution: MD5, SHA1, ASC OK.
>
> mvn clean install OK.
>
> BUT I had to hack the tset org.apache.log4j.config.Log4j1
> ConfigurationFactoryTest.testSystemProperties2() and add a
> "appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this is
> pushed to Git master.
>
> RAT check OK.
>
> mvn clirr:check -pl log4j-api OK
>
> mvn clirr:check -pl log4j-1.2-api FAILS due to changes
> in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by me.
>
> Then I ran:
>
> mvn install -DskipTests OK
> mvn package -DskipTests OK
>
> and:
>
> mvn test
>
> gives me:
> --
> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753 sec
> <<< FAILURE! - in org.apache.logging.log4j.osgi.
> felix.FelixLoadApiBundleTest
> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)
>  Time elapsed: 1.389 sec  <<< ERROR!
> org.osgi.framework.BundleException: Activator start error in bundle
> org.apache.logging.log4j.core [2].
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger
> not found by org.apache.logging.log4j.core [2]
>
> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)
>  Time elapsed: 0.172 sec  <<< ERROR!
> org.osgi.framework.BundleException: Activator start error in bundle
> org.apache.logging.log4j.core [2].
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger
> not found by org.apache.logging.log4j.core [2]
>
> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309 sec
> <<< FAILURE! - in org.apache.logging.log4j.osgi.equinox.
> EquinoxLoadApiBundleTest
> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)
>  Time elapsed: 1.371 sec  <<< ERROR!
> org.osgi.framework.BundleException: The activator
> org.apache.logging.log4j.core.osgi.Activator for bundle
> org.apache.logging.log4j.core is invalid
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.
> Logger
>
> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)
>  Time elapsed: 0.293 sec  <<< ERROR!
> org.osgi.framework.BundleException: The activator
> org.apache.logging.log4j.core.osgi.Activator for bundle
> org.apache.logging.log4j.core is invalid
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.
> Logger
>
>
> Results :
>
> Tests in error:
>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.
> testMissingImportOfCoreOsgiPackage:174 ╗ Bundle
>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.
> testSimpleLogInAnOsgiContext:131 ╗ Bundle
>   FelixLoadApiBundleTest>AbstractLoadBundleTest.
> testMissingImportOfCoreOsgiPackage:174 ╗ Bundle
>   FelixLoadApiBundleTest>AbstractLoadBundleTest.
> testSimpleLogInAnOsgiContext:131 ╗ Bundle
>
> Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
> --
>
> Any ideas on getting the OSGi tests to pass?
>
> Gary
>
> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ra...@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
>>
>>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@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
>
>
>


-- 
Matt Sicker <bo...@gmail.com>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
When I looked at it the Log4j1Configuration stuff said it was experimental so if it has issues I don’t think it matters.

Believe it or not I have never run mvn test all by itself. I pretty much only do mvn clean install. So I have no idea if this is new or has always been this way.

Ralph

> On Sep 26, 2016, at 9:15 PM, Gary Gregory <ga...@gmail.com> wrote:
> 
> Based in the src distribution: MD5, SHA1, ASC OK.
> 
> mvn clean install OK.
> 
> BUT I had to hack the tset org.apache.log4j.config.Log4j1ConfigurationFactoryTest.testSystemProperties2() and add a "appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this is pushed to Git master.
> 
> RAT check OK.
> 
> mvn clirr:check -pl log4j-api OK
> 
> mvn clirr:check -pl log4j-1.2-api FAILS due to changes in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by me.
> 
> Then I ran:
> 
> mvn install -DskipTests OK
> mvn package -DskipTests OK
> 
> and:
> 
> mvn test 
> 
> gives me:
> --
> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753 sec <<< FAILURE! - in org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest
> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 1.389 sec  <<< ERROR!
> org.osgi.framework.BundleException: Activator start error in bundle org.apache.logging.log4j.core [2].
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger not found by org.apache.logging.log4j.core [2]
> 
> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)  Time elapsed: 0.172 sec  <<< ERROR!
> org.osgi.framework.BundleException: Activator start error in bundle org.apache.logging.log4j.core [2].
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger not found by org.apache.logging.log4j.core [2]
> 
> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309 sec <<< FAILURE! - in org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest
> testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 1.371 sec  <<< ERROR!
> org.osgi.framework.BundleException: The activator org.apache.logging.log4j.core.osgi.Activator for bundle org.apache.logging.log4j.core is invalid
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger
> 
> testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)  Time elapsed: 0.293 sec  <<< ERROR!
> org.osgi.framework.BundleException: The activator org.apache.logging.log4j.core.osgi.Activator for bundle org.apache.logging.log4j.core is invalid
> Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
> Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger
> 
> 
> Results :
> 
> Tests in error:
>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174 ╗ Bundle
>   EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131 ╗ Bundle
>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174 ╗ Bundle
>   FelixLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131 ╗ Bundle
> 
> Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
> --
> 
> Any ideas on getting the OSGi tests to pass?
> 
> Gary
> 
> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ralph.goers@dslextreme.com <ma...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
> 
> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
> Ralph
> 
> 
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
Based in the src distribution: MD5, SHA1, ASC OK.

mvn clean install OK.

BUT I had to hack the tset org.apache.log4j.config.
Log4j1ConfigurationFactoryTest.testSystemProperties2() and add a
"appender.stop(10, TimeUnit.SECONDS);" to get the test to pass; this is
pushed to Git master.

RAT check OK.

mvn clirr:check -pl log4j-api OK

mvn clirr:check -pl log4j-1.2-api FAILS due to changes
in org.apache.log4j.config.Log4j1ConfigurationFactory which is OK by me.

Then I ran:

mvn install -DskipTests OK
mvn package -DskipTests OK

and:

mvn test

gives me:
--
Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.753 sec
<<< FAILURE! - in org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest
testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)
 Time elapsed: 1.389 sec  <<< ERROR!
org.osgi.framework.BundleException: Activator start error in bundle
org.apache.logging.log4j.core [2].
Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
Caused by: java.lang.ClassNotFoundException:
org.apache.logging.log4j.Logger not found by org.apache.logging.log4j.core
[2]

testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.felix.FelixLoadApiBundleTest)
 Time elapsed: 0.172 sec  <<< ERROR!
org.osgi.framework.BundleException: Activator start error in bundle
org.apache.logging.log4j.core [2].
Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
Caused by: java.lang.ClassNotFoundException:
org.apache.logging.log4j.Logger not found by org.apache.logging.log4j.core
[2]

Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.309 sec
<<< FAILURE! - in
org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest
testMissingImportOfCoreOsgiPackage(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)
 Time elapsed: 1.371 sec  <<< ERROR!
org.osgi.framework.BundleException: The activator
org.apache.logging.log4j.core.osgi.Activator for bundle
org.apache.logging.log4j.core is invalid
Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger

testSimpleLogInAnOsgiContext(org.apache.logging.log4j.osgi.equinox.EquinoxLoadApiBundleTest)
 Time elapsed: 0.293 sec  <<< ERROR!
org.osgi.framework.BundleException: The activator
org.apache.logging.log4j.core.osgi.Activator for bundle
org.apache.logging.log4j.core is invalid
Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger


Results :

Tests in error:

EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
╗ Bundle

EquinoxLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
╗ Bundle

FelixLoadApiBundleTest>AbstractLoadBundleTest.testMissingImportOfCoreOsgiPackage:174
╗ Bundle

FelixLoadApiBundleTest>AbstractLoadBundleTest.testSimpleLogInAnOsgiContext:131
╗ Bundle

Tests run: 508, Failures: 0, Errors: 4, Skipped: 3
--

Any ideas on getting the OSGi tests to pass?

Gary

On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ra...@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
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

[VOTE][CANCELLED] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
This vote is cancelled due to the compatibility breakage with the Kafka appender.

Ralph

> On Sep 26, 2016, at 8:50 AM, Ralph Goers <ra...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
> 
> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
> Ralph
> 


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
Yes. That is what cut & paste does to you… :-)

Ralph

> On Sep 26, 2016, at 10:27 AM, Gary Gregory <ga...@gmail.com> wrote:
> 
> 
> 
> On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
> This is a vote to release Log4j 2.6.2, the next version of the Log4j 2 project.
> 
> You mean 2.7... ;-)
> 
> Gary
>  
> 
> 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 <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 <http://rgoers.github.io/log4j2-site/index.html>
> 
> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
> Ralph
> 
> 
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
On Mon, Sep 26, 2016 at 8:50 AM, Ralph Goers <ra...@dslextreme.com>
wrote:

> This is a vote to release Log4j 2.6.2, the next version of the Log4j 2
> project.
>

You mean 2.7... ;-)

Gary


>
> 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
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Matt Sicker <bo...@gmail.com>.
+1

Works with my application, compiles and tests fine from git (Java 1.8), gpg
sigs are all good, log4j-bom looks good, manifest looks good.

Note that there are no links to the Scala components on the left sidebar,
but that can be updated directly on svn. Same goes on the javadocs page.
There is a link to Scala docs in the API part of the manual, so there's at
least something there.

Might want to add the apache.org blog posts to the articles section, too.

The surefire report link is still broken. We should probably just remove
the link.

On 26 September 2016 at 10:50, Ralph Goers <ra...@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
>
>


-- 
Matt Sicker <bo...@gmail.com>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Remko Popma <re...@gmail.com>.
I blogged "A sneak peak into Log4j 2.7
<https://blogs.apache.org/logging/entry/log4j_2_7_pre_release>" with a link
to the JAX Innovation Awards voting page <https://jaxlondon.com/jax-awards/>
since the vote closes in a few days. Please share.

Remko

On Tue, Sep 27, 2016 at 12:50 AM, Ralph Goers <ra...@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
>
>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Sep 28, 2016 at 7:42 AM, Mikael Ståldal <mi...@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 ?
>

releaseSub() is called
by org.apache.logging.log4j.core.appender.AbstractManager.stop(long,
TimeUnit) and AbstractManager.stop(long, TimeUnit) is called from many
places.

For example, org.apache.logging.log4j.core.appender.AbstractManager.close():

    @Override
    public void close() {
        stop(AbstractLifeCycle.DEFAULT_STOP_TIMEOUT,
AbstractLifeCycle.DEFAULT_STOP_TIMEUNIT);
    }

Gary


>
> On Wed, Sep 28, 2016 at 3:51 PM, Mikael Ståldal <mikael.staldal@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.KafkaManage
>> r.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.KafkaAppend
>> er.stop(KafkaAppender.java:107)
>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>> top(AbstractConfiguration.java:349)
>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>> xt.java:329)
>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>> tLifeCycle.java:127)
>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>> ext.java:275)
>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackReg
>> istry.java:104)
>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>> at java.lang.Thread.run(Thread.java:745)
>>
>>
>>
>>
>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ra...@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
I don’t recall but he did mention it on the dev list. As I recall he decided we needed to add timeouts to all the stop calls to make sure shutdown doesn’t hang.

Ralph

> On Sep 28, 2016, at 8:51 AM, Mikael Ståldal <mi...@magine.com> wrote:
> 
> Was this timeout thing implemented as part of any JIRA issue?
> 
> On Wed, Sep 28, 2016 at 5:49 PM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <garydgregory@gmail.com <ma...@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.staldal@magine.com <ma...@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.staldal@magine.com <ma...@magine.com>> wrote:
> We have already discussed this here: https://issues.apache.org/jira/browse/LOG4J2-1390 <https://issues.apache.org/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 <garydgregory@gmail.com <ma...@gmail.com>> wrote:
> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <garydgregory@gmail.com <ma...@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.staldal@magine.com <ma...@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.staldal@magine.com <ma...@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 <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 <http://0.8.2.2/>:
> 
> java.lang.NoSuchMethodError: org.apache.kafka.clients.producer.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.run(DefaultShutdownCallbackRegistry.java:104)
> 	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74)
> 	at java.lang.Thread.run(Thread.java:745)
> 
> 
> 
> 
> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
> 
> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
> Ralph
> 
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
I was able to build the site on Linux with:
MAVEN_OPTS="-Xmx2000m -XX:MaxPermSize=384m" mvn site

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5;
2015-11-10T17:41:47+01:00)
Java version: 1.7.0_80, vendor: Oracle Corporation
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-38-generic", arch: "amd64", family: "unix"



On Sun, Oct 2, 2016 at 7:50 PM, Ralph Goers <ra...@dslextreme.com>
wrote:

> Since it seems all issues have been resolved I am going to start the
> release build. Please do not commit as it causes the release to fail.
>
> Ralph
>
> On Oct 1, 2016, at 4:32 AM, Remko Popma <re...@gmail.com> wrote:
>
> LOG4J2-1618 is now also fixed.
>
> On Sat, Oct 1, 2016 at 3:20 AM, Gary Gregory <ga...@gmail.com>
> wrote:
>
>> On Thu, Sep 29, 2016 at 10:05 AM, Gary Gregory <ga...@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.apa
>> che.org/jira/browse/LOG4J2-1618
>>
>> Gary
>>
>>
>>>
>>> Gary
>>>
>>> On Thu, Sep 29, 2016 at 9:31 AM, Mikael Ståldal <
>>> mikael.staldal@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.goers@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 <mi...@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 <ga...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <
>>>>>> mikael.staldal@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.staldal@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 <
>>>>>>>> garydgregory@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.staldal@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.staldal@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 <
>>>>>>>>>>> garydgregory@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>>>>>>>> mikael.staldal@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 <
>>>>>>>>>>>>> garydgregory@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.staldal@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.staldal@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.KafkaManage
>>>>>>>>>>>>>>>> r.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.KafkaAppend
>>>>>>>>>>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>>>>>>>>>>> at org.apache.logging.log4j.core.
>>>>>>>>>>>>>>>> config.AbstractConfiguration.s
>>>>>>>>>>>>>>>> top(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.DefaultShutdownCallbackRe
>>>>>>>>>>>>>>>> gistry$RegisteredCancellable.r
>>>>>>>>>>>>>>>> un(DefaultShutdownCallbackRegistry.java:104)
>>>>>>>>>>>>>>>> at org.apache.logging.log4j.core.
>>>>>>>>>>>>>>>> util.DefaultShutdownCallbackRe
>>>>>>>>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>>>>>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
Since it seems all issues have been resolved I am going to start the release build. Please do not commit as it causes the release to fail.

Ralph

> On Oct 1, 2016, at 4:32 AM, Remko Popma <re...@gmail.com> wrote:
> 
> LOG4J2-1618 is now also fixed.
> 
> On Sat, Oct 1, 2016 at 3:20 AM, Gary Gregory <garydgregory@gmail.com <ma...@gmail.com>> wrote:
> On Thu, Sep 29, 2016 at 10:05 AM, Gary Gregory <garydgregory@gmail.com <ma...@gmail.com>> wrote:
> Please wait to cut rc2, I am fixing a regression: https://issues.apache.org/jira/browse/LOG4J2-1620 <https://issues.apache.org/jira/browse/LOG4J2-1620>
> 
> Fixed. 
> 
> This looks like it needs addressing: https://issues.apache.org/jira/browse/LOG4J2-1618 <https://issues.apache.org/jira/browse/LOG4J2-1618>
> 
> Gary
>  
> 
> Gary
> 
> On Thu, Sep 29, 2016 at 9:31 AM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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-1624>
> https://issues.apache.org/jira/browse/LOG4J2-1625 <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 <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.goers@dslextreme.com <ma...@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.staldal@magine.com <ma...@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 <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 <garydgregory@gmail.com <ma...@gmail.com>> wrote:
>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <https://issues.apache.org/jira/browse/LOG4J2-1539>
>> 
>> Gary
>>  
>> 
>> On Wed, Sep 28, 2016 at 5:49 PM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <garydgregory@gmail.com <ma...@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.staldal@magine.com <ma...@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.staldal@magine.com <ma...@magine.com>> wrote:
>> We have already discussed this here: https://issues.apache.org/jira/browse/LOG4J2-1390 <https://issues.apache.org/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 <garydgregory@gmail.com <ma...@gmail.com>> wrote:
>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <garydgregory@gmail.com <ma...@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.staldal@magine.com <ma...@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.staldal@magine.com <ma...@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 <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 <http://0.8.2.2/>:
>> 
>> java.lang.NoSuchMethodError: org.apache.kafka.clients.producer.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.run(DefaultShutdownCallbackRegistry.java:104)
>> 	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74)
>> 	at java.lang.Thread.run(Thread.java:745)
>> 
>> 
>> 
>> 
>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
>> 
>> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
>> Ralph
>> 
>> 
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
>> 
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
>> 
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
>> 
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.staldal@magine.com <ma...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Remko Popma <re...@gmail.com>.
LOG4J2-1618 is now also fixed.

On Sat, Oct 1, 2016 at 3:20 AM, Gary Gregory <ga...@gmail.com> wrote:

> On Thu, Sep 29, 2016 at 10:05 AM, Gary Gregory <ga...@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.staldal@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.goers@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 <mi...@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 <ga...@gmail.com>
>>>> wrote:
>>>>
>>>>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <
>>>>> mikael.staldal@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.staldal@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 <
>>>>>>> garydgregory@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.staldal@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.staldal@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 <
>>>>>>>>>> garydgregory@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>>>>>>> mikael.staldal@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 <
>>>>>>>>>>>> garydgregory@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.staldal@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.staldal@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.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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
>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
On Thu, Sep 29, 2016 at 10:05 AM, Gary Gregory <ga...@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.staldal@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 <ra...@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 <mi...@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 <ga...@gmail.com>
>>> wrote:
>>>
>>>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <
>>>> mikael.staldal@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.staldal@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 <garydgregory@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.staldal@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.staldal@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 <
>>>>>>>>> garydgregory@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>>>>>> mikael.staldal@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 <
>>>>>>>>>>> garydgregory@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.staldal@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.staldal@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.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
Please wait to cut rc2, I am fixing a regression:
https://issues.apache.org/jira/browse/LOG4J2-1620

Gary

On Thu, Sep 29, 2016 at 9:31 AM, Mikael Ståldal <mi...@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 <ra...@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 <mi...@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 <ga...@gmail.com>
>> wrote:
>>
>>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <
>>> mikael.staldal@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.staldal@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 <ga...@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.staldal@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.staldal@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 <
>>>>>>>> garydgregory@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>>>>> mikael.staldal@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 <
>>>>>>>>>> garydgregory@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.staldal@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.staldal@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.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
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 <ra...@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 <mi...@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 <ga...@gmail.com>
> wrote:
>
>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <
>> mikael.staldal@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.staldal@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 <ga...@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.staldal@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.staldal@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 <
>>>>>>> garydgregory@gmail.com> wrote:
>>>>>>>
>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>>>> mikael.staldal@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 <
>>>>>>>>> garydgregory@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.staldal@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.staldal@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.KafkaManage
>>>>>>>>>>>> r.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.KafkaAppend
>>>>>>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>>>>>>>> top(AbstractConfiguration.java:349)
>>>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>>>>>>>> xt.java:329)
>>>>>>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>>>>>>>> tLifeCycle.java:127)
>>>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>>>>>>>> ext.java:275)
>>>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>>>>>>>> stry.java:104)
>>>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Matt Sicker <bo...@gmail.com>.
Yes please, only fix the blockers for rc2. We can make a 2.7.1 soon after
with more fixes if needed. As Gary always says, RERO!

On 29 September 2016 at 08:45, Ralph Goers <ra...@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 <mi...@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 <ga...@gmail.com>
> wrote:
>
>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <
>> mikael.staldal@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.staldal@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 <ga...@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.staldal@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.staldal@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 <
>>>>>>> garydgregory@gmail.com> wrote:
>>>>>>>
>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>>>> mikael.staldal@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 <
>>>>>>>>> garydgregory@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.staldal@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.staldal@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.KafkaManage
>>>>>>>>>>>> r.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.KafkaAppend
>>>>>>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>>>>>>>> top(AbstractConfiguration.java:349)
>>>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>>>>>>>> xt.java:329)
>>>>>>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>>>>>>>> tLifeCycle.java:127)
>>>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>>>>>>>> ext.java:275)
>>>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>>>>>>>> stry.java:104)
>>>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.
>
>
>


-- 
Matt Sicker <bo...@gmail.com>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
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 <mi...@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 <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 <garydgregory@gmail.com <ma...@gmail.com>> wrote:
> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <https://issues.apache.org/jira/browse/LOG4J2-1539>
> 
> Gary
>  
> 
> On Wed, Sep 28, 2016 at 5:49 PM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <garydgregory@gmail.com <ma...@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.staldal@magine.com <ma...@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.staldal@magine.com <ma...@magine.com>> wrote:
> We have already discussed this here: https://issues.apache.org/jira/browse/LOG4J2-1390 <https://issues.apache.org/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 <garydgregory@gmail.com <ma...@gmail.com>> wrote:
> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <mikael.staldal@magine.com <ma...@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 <garydgregory@gmail.com <ma...@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.staldal@magine.com <ma...@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.staldal@magine.com <ma...@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 <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 <http://0.8.2.2/>:
> 
> java.lang.NoSuchMethodError: org.apache.kafka.clients.producer.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.run(DefaultShutdownCallbackRegistry.java:104)
> 	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74)
> 	at java.lang.Thread.run(Thread.java:745)
> 
> 
> 
> 
> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
> 
> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
> Ralph
> 
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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: garydgregory@gmail.com <ma...@gmail.com> | ggregory@apache.org  <ma...@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 <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
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 <ga...@gmail.com>
wrote:

> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <mikael.staldal@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.staldal@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 <ga...@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.staldal@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.staldal@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 <garydgregory@gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>>> mikael.staldal@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 <
>>>>>>>> garydgregory@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.staldal@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.staldal@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.KafkaManage
>>>>>>>>>>> r.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.KafkaAppend
>>>>>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>>>>>>> top(AbstractConfiguration.java:349)
>>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>>>>>>> xt.java:329)
>>>>>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>>>>>>> tLifeCycle.java:127)
>>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>>>>>>> ext.java:275)
>>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>>>>>>> stry.java:104)
>>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <mi...@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.staldal@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 <ga...@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.staldal@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.staldal@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 <ga...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>>> mikael.staldal@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 <
>>>>>>> garydgregory@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.staldal@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.staldal@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.KafkaManage
>>>>>>>>>> r.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.KafkaAppend
>>>>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>>>>>> top(AbstractConfiguration.java:349)
>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>>>>>> xt.java:329)
>>>>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>>>>>> tLifeCycle.java:127)
>>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>>>>>> ext.java:275)
>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>>>>>> stry.java:104)
>>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
Was this timeout thing implemented as part of any JIRA issue?

On Wed, Sep 28, 2016 at 5:49 PM, Mikael Ståldal <mi...@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 <ga...@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.staldal@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.staldal@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 <ga...@gmail.com>
>>>> wrote:
>>>>
>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>>> mikael.staldal@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 <garydgregory@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.staldal@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.staldal@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.KafkaManage
>>>>>>>>> r.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.KafkaAppend
>>>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>>>>> top(AbstractConfiguration.java:349)
>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>>>>> xt.java:329)
>>>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>>>>> tLifeCycle.java:127)
>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>>>>> ext.java:275)
>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>>>>> stry.java:104)
>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
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 <ga...@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.staldal@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.staldal@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 <ga...@gmail.com>
>>> wrote:
>>>
>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>> mikael.staldal@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 <ga...@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.staldal@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.staldal@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.KafkaManage
>>>>>>>> r.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.KafkaAppend
>>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>>>> top(AbstractConfiguration.java:349)
>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>>>> xt.java:329)
>>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>>>> tLifeCycle.java:127)
>>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>>>> ext.java:275)
>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>>>> stry.java:104)
>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
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 <mi...@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.staldal@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 <ga...@gmail.com>
>> wrote:
>>
>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>> mikael.staldal@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 <ga...@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.staldal@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.staldal@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.KafkaManage
>>>>>>> r.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.KafkaAppend
>>>>>>> er.stop(KafkaAppender.java:107)
>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>>> top(AbstractConfiguration.java:349)
>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>>> xt.java:329)
>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>>> tLifeCycle.java:127)
>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>>> ext.java:275)
>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>>> stry.java:104)
>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
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 <mi...@magine.com>
wrote:

> We have already discussed this here: https://issues.apache.
> org/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 <ga...@gmail.com>
> wrote:
>
>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>> mikael.staldal@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 <ga...@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.staldal@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.staldal@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.KafkaManage
>>>>>> r.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.KafkaAppend
>>>>>> er.stop(KafkaAppender.java:107)
>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>>> top(AbstractConfiguration.java:349)
>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>>> xt.java:329)
>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>>> tLifeCycle.java:127)
>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>>> ext.java:275)
>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>>> stry.java:104)
>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
We have already discussed this here:
https://issues.apache.org/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 <ga...@gmail.com>
wrote:

> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <mikael.staldal@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 <ga...@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.staldal@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.staldal@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.KafkaManage
>>>>> r.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.KafkaAppend
>>>>> er.stop(KafkaAppender.java:107)
>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>> top(AbstractConfiguration.java:349)
>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>> xt.java:329)
>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>> tLifeCycle.java:127)
>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>> ext.java:275)
>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>> stry.java:104)
>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Remko Popma <re...@gmail.com>.
I am in favour of having these few lines of extra code if it enables people
who for some reason cannot upgrade their Kafka server to use Log4j 2. There
is no drawback for us, and it can be a huge help to users.

On Thu, Sep 29, 2016 at 12:24 AM, Gary Gregory <ga...@gmail.com>
wrote:

> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <mikael.staldal@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 <ga...@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.staldal@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.staldal@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.KafkaManage
>>>>> r.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.KafkaAppend
>>>>> er.stop(KafkaAppender.java:107)
>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>>> top(AbstractConfiguration.java:349)
>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>>> xt.java:329)
>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>>> tLifeCycle.java:127)
>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>>> ext.java:275)
>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>>> stry.java:104)
>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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
>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <mi...@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 <ga...@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.staldal@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.staldal@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.KafkaManage
>>>> r.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.KafkaAppend
>>>> er.stop(KafkaAppender.java:107)
>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>>> top(AbstractConfiguration.java:349)
>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>>> xt.java:329)
>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>>> tLifeCycle.java:127)
>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>>> ext.java:275)
>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>>> stry.java:104)
>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <
>>>> ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
Kafka server 0.8 is still in use, and newer Kafka clients cannot connect to
older Kafka servers.

On Wed, Sep 28, 2016 at 5:10 PM, Gary Gregory <ga...@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.staldal@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.staldal@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.KafkaManage
>>> r.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.KafkaAppend
>>> er.stop(KafkaAppender.java:107)
>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>>> top(AbstractConfiguration.java:349)
>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>>> xt.java:329)
>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>>> tLifeCycle.java:127)
>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>>> ext.java:275)
>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi
>>> stry.java:104)
>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>>> at java.lang.Thread.run(Thread.java:745)
>>>
>>>
>>>
>>>
>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ralph.goers@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Gary Gregory <ga...@gmail.com>.
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 <mi...@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.staldal@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.KafkaManage
>> r.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.KafkaAppend
>> er.stop(KafkaAppender.java:107)
>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>> top(AbstractConfiguration.java:349)
>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>> xt.java:329)
>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>> tLifeCycle.java:127)
>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>> ext.java:275)
>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackReg
>> istry.java:104)
>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>> at java.lang.Thread.run(Thread.java:745)
>>
>>
>>
>>
>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ra...@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.staldal@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.staldal@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: garydgregory@gmail.com | ggregory@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

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Remko Popma <re...@gmail.com>.
I also did not see Mikael's -1 email... Strange.
I agree we should not break compatibility like this.

On Thu, Sep 29, 2016 at 12:55 AM, Ralph Goers <ra...@dslextreme.com>
wrote:

> I don’t know what is going on with my email but I never saw your -1 email.
> Obviously, I see it now.
>
> I agree that we should not be breaking compatibility like this.
>
> Ralph
>
> On Sep 28, 2016, at 7:42 AM, Mikael Ståldal <mi...@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.staldal@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.KafkaManage
>> r.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.KafkaAppend
>> er.stop(KafkaAppender.java:107)
>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s
>> top(AbstractConfiguration.java:349)
>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte
>> xt.java:329)
>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac
>> tLifeCycle.java:127)
>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont
>> ext.java:275)
>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackReg
>> istry.java:104)
>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe
>> gistry.run(DefaultShutdownCallbackRegistry.java:74)
>> at java.lang.Thread.run(Thread.java:745)
>>
>>
>>
>>
>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ra...@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.staldal@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.staldal@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.
>
>
>

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Ralph Goers <ra...@dslextreme.com>.
I don’t know what is going on with my email but I never saw your -1 email. Obviously, I see it now.

I agree that we should not be breaking compatibility like this.

Ralph

> On Sep 28, 2016, at 7:42 AM, Mikael Ståldal <mi...@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.staldal@magine.com <ma...@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 <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 <http://0.8.2.2/>:
> 
> java.lang.NoSuchMethodError: org.apache.kafka.clients.producer.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.run(DefaultShutdownCallbackRegistry.java:104)
> 	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74)
> 	at java.lang.Thread.run(Thread.java:745)
> 
> 
> 
> 
> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
> 
> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
> Ralph
> 
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> mikael.staldal@magine.com <ma...@magine.com>    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  <http://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.   


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Mikael Ståldal <mi...@magine.com>.
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 <mi...@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.
> producer.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.DefaultShutdownCallbackRegistr
> y$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)
>
>
>
>
> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers <ra...@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.staldal@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.staldal@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.

Re: [VOTE] Release Log4j 2.7-rc1

Posted by Remko Popma <re...@gmail.com>.
+1
No issues found

On Wed, Sep 28, 2016 at 1:39 AM, Leon Finker <le...@gmail.com> wrote:

> +1
> Tested with various services and use cases (only async logging). No issues
> observed.
>
> On Sep 26, 2016 11:50 AM, "Ralph Goers" <ra...@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
>
>
>

Re: [Discuss] features and issues for the next release

Posted by Gary Gregory <ga...@gmail.com>.
To ease migration from Log4j 1, we could provide a
AppenderSkeletonAppennder. This would be a Log4j 2 Appender that delegates
to a Log4j 1 Appender. This might make it easier to for projects like
Hadoop to migrate since they have custom Log4j 1 appenders. You could
configure such an appender with the Log4j1 class name and properties that
are injected into the appender a la Log4j 1.

Gary

On Tue, Sep 27, 2016 at 10:05 AM, Ralph Goers <ra...@dslextreme.com>
wrote:

> Leon,  Thanks for the feedback!  Are there any other issues you are aware
> of that need to be addressed or any features you need?  If so, are any that
> you would like to contribute to?
>
> Ralph
>
> On Sep 27, 2016, at 9:39 AM, Leon Finker <le...@gmail.com> wrote:
>
> +1
> Tested with various services and use cases (only async logging). No issues
> observed.
>
> On Sep 26, 2016 11:50 AM, "Ralph Goers" <ra...@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
>
>
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

[Discuss] features and issues for the next release

Posted by Ralph Goers <ra...@dslextreme.com>.
Leon,  Thanks for the feedback!  Are there any other issues you are aware of that need to be addressed or any features you need?  If so, are any that you would like to contribute to?

Ralph

> On Sep 27, 2016, at 9:39 AM, Leon Finker <le...@gmail.com> wrote:
> 
> +1
> Tested with various services and use cases (only async logging). No issues observed.
> 
> 
> On Sep 26, 2016 11:50 AM, "Ralph Goers" <ralph.goers@dslextreme.com <ma...@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 <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 <http://rgoers.github.io/log4j2-site/index.html>
> 
> Artifacts: https://repository.apache.org/content/repositories/orgapachelogging-1021/ <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/ <https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/>
> Ralph
> 
> 


Re: [VOTE] Release Log4j 2.7-rc1

Posted by Leon Finker <le...@gmail.com>.
+1
Tested with various services and use cases (only async logging). No issues
observed.

On Sep 26, 2016 11:50 AM, "Ralph Goers" <ra...@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