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: [email protected]
For additional commands, e-mail: [email protected]