Author: remm
Date: Thu Jun 12 13:24:22 2014
New Revision: 1602159
URL: http://svn.apache.org/r1602159
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56546 (very partial)
Reduce verbosity of clear references logging. Although it is a good tool for
detecting leaks, the severity does not match the likely impact. Also avoid
having more than one logging for one event even if filtering becomes less
flexible.
Modified:
tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/loader/LocalStrings_es.properties
tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
Modified: tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties?rev=1602159&r1=1602158&r2=1602159&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
(original)
+++ tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties Thu
Jun 12 13:24:22 2014
@@ -38,14 +38,12 @@ webappClassLoader.jarsModified=One or mo
webappClassLoader.jarsRemoved=One or more JARs have been removed from the web
application [{0}]
webappClassLoader.javaseClassLoaderNull=The j2seClassLoader attribute may not
be null
webappClassLoader.resourceModified=Resource [{0}] has been modified. The last
modified time was [{1}] and is now [{2}]
-webappClassLoader.stackTrace=Stack trace of thread "{0}":{1}
-webappClassLoader.stackTraceRequestThread=Stack trace of request processing
thread "{0}":{1}
+webappClassLoader.stackTrace=The web application [{0}] appears to have started
a thread named [{1}] but has failed to stop it. This is very likely to create a
memory leak. Stack trace of thread:{2}
+webappClassLoader.stackTraceRequestThread=The web application [{0}] is still
processing a request that has yet to finish. This is very likely to create a
memory leak. You can control the time allowed for requests to finish by using
the unloadDelay attribute of the standard Context implementation. Stack trace
of request processing thread:{2}
webappClassLoader.stopThreadFail=Failed to terminate thread named [{0}] for
web application [{1}]
webappClassLoader.stopTimerThreadFail=Failed to terminate TimerThread named
[{0}] for web application [{1}]
webappClassLoader.superCloseFail=Failure calling close() on super class
webappClassLoader.validationErrorJarPath=Unable to validate JAR entry with
name {0}
-webappClassLoader.warnRequestThread=The web application [{0}] is still
processing a request that has yet to finish. This is very likely to create a
memory leak. You can control the time allowed for requests to finish by using
the unloadDelay attribute of the standard Context implementation.
-webappClassLoader.warnThread=The web application [{0}] appears to have started
a thread named [{1}] but has failed to stop it. This is very likely to create a
memory leak.
webappClassLoader.warnTimerThread=The web application [{0}] appears to have
started a TimerThread named [{1}] via the java.util.Timer API but has failed to
stop it. To prevent a memory leak, the timer (and hence the associated thread)
has been forcibly canceled.
webappClassLoader.wrongVersion=(unable to load class {0})
webappClassLoader.addTransformer.illegalArgument=The web application [{0}]
attempted to add a null class file transformer.
Modified:
tomcat/trunk/java/org/apache/catalina/loader/LocalStrings_es.properties
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/LocalStrings_es.properties?rev=1602159&r1=1602158&r2=1602159&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/LocalStrings_es.properties
(original)
+++ tomcat/trunk/java/org/apache/catalina/loader/LocalStrings_es.properties Thu
Jun 12 13:24:22 2014
@@ -31,8 +31,6 @@ webappClassLoader.checkThreadsHttpClient
webappClassLoader.stopThreadFail = No pude terminar el hilo con nombre [{0}]
para la aplicaci\u00F3n web [{1}]
webappClassLoader.stopTimerThreadFail = No pude terminar TimerThread con
nombre [{0}] para la aplicaci\u00F3n web [{1}]
webappClassLoader.validationErrorJarPath = no pude validar entrada JAR con
nombre {0}
-webappClassLoader.warnRequestThread = La aplicaci\u00F3n web [{0}] a\u00FAn se
encuentra procesando un requerimiento que no ha terminados. Esto tiene todas
las papeletas de convertirse en un fallo de memoria. Puedes controlar el tiempo
permitido a los requerimientos para acabar mediante el uso del atributo
unloadDelay de la implementaci\u00F3n est\u00E1ndar de Contexto.
-webappClassLoader.warnThread = La aplicaci\u00F3n web [{0}] parece haber
arrancado un hilo llamado [{1}] pero no ha podido pararlo. Esto tiene todas las
papeletas de convertirse en un fallo de memoria.
webappClassLoader.warnTimerThread = La aplicaci\u00F3n web [{0}] parece haber
arrancado un TimerThread con nombre [{1}] v\u00EDa de la API java.util.Timer,
pero no ha podido pararlo. Para prevenir un fallo de memoria, el
cron\u00F3metro (y el hilo asociado) hasido cancelado a la fuerza.
webappClassLoader.wrongVersion = (no puedo cargar clase {0})
webappLoader.addRepository = A\u00F1adiendo repositorio {0}
Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1602159&r1=1602158&r2=1602159&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Thu Jun
12 13:24:22 2014
@@ -1633,14 +1633,14 @@ public class WebappClassLoader extends U
List<String> driverNames = (List<String>) obj.getClass().getMethod(
"clearJdbcDriverRegistrations").invoke(obj);
for (String name : driverNames) {
- log.error(sm.getString("webappClassLoader.clearJdbc",
+ log.info(sm.getString("webappClassLoader.clearJdbc",
getContextName(), name));
}
} catch (Exception e) {
// So many things to go wrong above...
Throwable t = ExceptionUtils.unwrapInvocationTargetException(e);
ExceptionUtils.handleThrowable(t);
- log.warn(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.jdbcRemoveFailed", getContextName()),
t);
}
}
@@ -1820,15 +1820,11 @@ public class WebappClassLoader extends U
}
if (isRequestThread(thread)) {
-
log.error(sm.getString("webappClassLoader.warnRequestThread",
- getContextName(), threadName));
log.info(sm.getString("webappClassLoader.stackTraceRequestThread",
- threadName, getStackTrace(thread)));
+ getContextName(), threadName,
getStackTrace(thread)));
} else {
- log.error(sm.getString("webappClassLoader.warnThread",
- getContextName(), threadName));
log.info(sm.getString("webappClassLoader.stackTrace",
- threadName, getStackTrace(thread)));
+ getContextName(), threadName,
getStackTrace(thread)));
}
// Don't try an stop the threads unless explicitly
@@ -2003,14 +1999,14 @@ public class WebappClassLoader extends U
}
}
- log.error(sm.getString("webappClassLoader.warnTimerThread",
+ log.info(sm.getString("webappClassLoader.warnTimerThread",
getContextName(), thread.getName()));
} catch (Exception e) {
// So many things to go wrong above...
Throwable t = ExceptionUtils.unwrapInvocationTargetException(e);
ExceptionUtils.handleThrowable(t);
- log.warn(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.stopTimerThreadFail",
thread.getName(), getContextName()), t);
}
@@ -2057,7 +2053,7 @@ public class WebappClassLoader extends U
}
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
- log.warn(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.checkThreadLocalsForLeaksFail",
getContextName()), t);
}
@@ -2100,7 +2096,7 @@ public class WebappClassLoader extends U
try {
args[2] = key.toString();
} catch (Exception e) {
- log.error(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.checkThreadLocalsForLeaks.badKey",
args[1]), e);
args[2] = sm.getString(
@@ -2112,7 +2108,7 @@ public class WebappClassLoader extends U
try {
args[4] = value.toString();
} catch (Exception e) {
- log.error(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.checkThreadLocalsForLeaks.badValue",
args[3]), e);
args[4] = sm.getString(
@@ -2126,7 +2122,7 @@ public class WebappClassLoader extends U
args));
}
} else {
- log.error(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.checkThreadLocalsForLeaks",
args));
}
@@ -2290,16 +2286,16 @@ public class WebappClassLoader extends U
log.info(sm.getString("webappClassLoader.clearRmiInfo",
getContextName()), e);
} catch (SecurityException e) {
- log.warn(sm.getString("webappClassLoader.clearRmiFail",
+ log.info(sm.getString("webappClassLoader.clearRmiFail",
getContextName()), e);
} catch (NoSuchFieldException e) {
- log.warn(sm.getString("webappClassLoader.clearRmiFail",
+ log.info(sm.getString("webappClassLoader.clearRmiFail",
getContextName()), e);
} catch (IllegalArgumentException e) {
- log.warn(sm.getString("webappClassLoader.clearRmiFail",
+ log.info(sm.getString("webappClassLoader.clearRmiFail",
getContextName()), e);
} catch (IllegalAccessException e) {
- log.warn(sm.getString("webappClassLoader.clearRmiFail",
+ log.info(sm.getString("webappClassLoader.clearRmiFail",
getContextName()), e);
}
}
@@ -2368,12 +2364,12 @@ public class WebappClassLoader extends U
Integer.valueOf(countRemoved), getContextName()));
}
} catch (SecurityException e) {
- log.error(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.clearReferencesResourceBundlesFail",
getContextName()), e);
} catch (NoSuchFieldException e) {
if (Globals.IS_ORACLE_JVM) {
- log.error(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.clearReferencesResourceBundlesFail",
getContextName()), e);
} else {
@@ -2382,11 +2378,11 @@ public class WebappClassLoader extends U
getContextName()), e);
}
} catch (IllegalArgumentException e) {
- log.error(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.clearReferencesResourceBundlesFail",
getContextName()), e);
} catch (IllegalAccessException e) {
- log.error(sm.getString(
+ log.info(sm.getString(
"webappClassLoader.clearReferencesResourceBundlesFail",
getContextName()), e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]