Author: markt Date: Thu Sep 25 16:31:20 2014 New Revision: 1627569 URL: http://svn.apache.org/r1627569 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56401 Improve the previous fix . Avoid logging version information in the constructor since it then gets logged at undesirable times such as when using StoreConfig
Modified: tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java?rev=1627569&r1=1627568&r2=1627569&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java Thu Sep 25 16:31:20 2014 @@ -20,6 +20,8 @@ package org.apache.catalina.core; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; @@ -46,6 +48,13 @@ public class AprLifecycleListener private static final Log log = LogFactory.getLog(AprLifecycleListener.class); private static boolean instanceCreated = false; /** + * Info messages during init() are cached until Lifecycle.BEFORE_INIT_EVENT + * so that, in normal (non-error) cases, init() releated log messages appear + * at the expected point in the lifecycle. + */ + private static final List<String> initInfoLogMessages = new ArrayList<>(3); + + /** * The string manager for this package. */ protected static final StringManager sm = @@ -116,6 +125,10 @@ public class AprLifecycleListener if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) { synchronized (lock) { init(); + for (String msg : initInfoLogMessages) { + log.info(msg); + } + initInfoLogMessages.clear(); if (aprAvailable) { try { initializeSSL(); @@ -195,7 +208,7 @@ public class AprLifecycleListener } catch (Throwable t) { t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); - log.info(sm.getString("aprListener.aprInit", + initInfoLogMessages.add(sm.getString("aprListener.aprInit", System.getProperty("java.library.path"))); return; } @@ -216,21 +229,21 @@ public class AprLifecycleListener return; } if (apver < rcver) { - log.info(sm.getString("aprListener.tcnVersion", major + "." - + minor + "." + patch, + initInfoLogMessages.add(sm.getString("aprListener.tcnVersion", + major + "." + minor + "." + patch, TCN_REQUIRED_MAJOR + "." + TCN_RECOMMENDED_MINOR + "." + TCN_RECOMMENDED_PV)); } - log.info(sm.getString("aprListener.tcnValid", major + "." - + minor + "." + patch, - Library.APR_MAJOR_VERSION + "." - + Library.APR_MINOR_VERSION + "." - + Library.APR_PATCH_VERSION)); + initInfoLogMessages.add(sm.getString("aprListener.tcnValid", + major + "." + minor + "." + patch, + Library.APR_MAJOR_VERSION + "." + + Library.APR_MINOR_VERSION + "." + + Library.APR_PATCH_VERSION)); // Log APR flags - log.info(sm.getString("aprListener.flags", + initInfoLogMessages.add(sm.getString("aprListener.flags", Boolean.valueOf(Library.APR_HAVE_IPV6), Boolean.valueOf(Library.APR_HAS_SENDFILE), Boolean.valueOf(Library.APR_HAS_SO_ACCEPTFILTER), Modified: tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java?rev=1627569&r1=1627568&r2=1627569&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java Thu Sep 25 16:31:20 2014 @@ -16,6 +16,7 @@ */ package org.apache.catalina.startup; +import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleListener; import org.apache.catalina.util.ServerInfo; @@ -36,18 +37,11 @@ public class VersionLoggerListener imple protected static final StringManager sm = StringManager.getManager(Constants.Package); - public VersionLoggerListener() { - // The log message is generated here to ensure that it appears before - // any log messages from the APRLifecycleListener. This won't be logged - // on shutdown because only the Server element in server.xml is - // processed on shutdown. - log(); - } - - @Override public void lifecycleEvent(LifecycleEvent event) { - // NO-OP + if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) { + log(); + } } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1627569&r1=1627568&r2=1627569&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Thu Sep 25 16:31:20 2014 @@ -45,7 +45,16 @@ issues to not "pop up" wrt. others). --> <section name="Tomcat 8.0.15 (markt)"> - <subsection name="We applications"> + <subsection name="Catalina"> + <changelog> + <fix> + Improve the previous fix for <bug>56401</bug>. Avoid logging version + information in the constructor since it then gets logged at undesirable + times such as when using <code>StoreConfig</code>. (markt) + </fix> + </changelog> + </subsection> + <subsection name="Web applications"> <changelog> <fix> Correct a couple of broken links in the Javadoc. (markt) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org