Author: kkolinko
Date: Thu Jul 17 23:13:05 2014
New Revision: 1611509
URL: http://svn.apache.org/r1611509
Log:
Fix http://issues.apache.org/bugzilla/show_bug.cgi?id=56724
Write an error message to Tomcat logs if container background thread exits
unexpectedly.
It is backport of r1611506 from tomcat/trunk.
Modified:
tomcat/tc7.0.x/trunk/ (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ContainerBase.java
tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
Merged /tomcat/trunk:r1611506
Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ContainerBase.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ContainerBase.java?rev=1611509&r1=1611508&r2=1611509&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ContainerBase.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ContainerBase.java Thu
Jul 17 23:13:05 2014
@@ -1503,20 +1503,37 @@ public abstract class ContainerBase exte
@Override
public void run() {
- while (!threadDone) {
- try {
- Thread.sleep(backgroundProcessorDelay * 1000L);
- } catch (InterruptedException e) {
- // Ignore
+ Throwable t = null;
+ String unexpectedDeathMessage = sm.getString(
+ "containerBase.backgroundProcess.unexpectedThreadDeath",
+ Thread.currentThread().getName());
+ try {
+ while (!threadDone) {
+ try {
+ Thread.sleep(backgroundProcessorDelay * 1000L);
+ } catch (InterruptedException e) {
+ // Ignore
+ }
+ if (!threadDone) {
+ Container parent = (Container) getMappingObject();
+ ClassLoader cl =
+ Thread.currentThread().getContextClassLoader();
+ if (parent.getLoader() != null) {
+ cl = parent.getLoader().getClassLoader();
+ }
+ processChildren(parent, cl);
+ }
}
+ } catch (RuntimeException e) {
+ t = e;
+ throw e;
+ } catch (Error e) {
+ t = e;
+ throw e;
+ } finally {
+ thread = null;
if (!threadDone) {
- Container parent = (Container) getMappingObject();
- ClassLoader cl =
- Thread.currentThread().getContextClassLoader();
- if (parent.getLoader() != null) {
- cl = parent.getLoader().getClassLoader();
- }
- processChildren(parent, cl);
+ log.error(unexpectedDeathMessage, t);
}
}
}
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties?rev=1611509&r1=1611508&r2=1611509&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/LocalStrings.properties
Thu Jul 17 23:13:05 2014
@@ -88,6 +88,7 @@ containerBase.backgroundProcess.loader=E
containerBase.backgroundProcess.manager=Exception processing manager {0}
background process
containerBase.backgroundProcess.realm=Exception processing realm {0}
background process
containerBase.backgroundProcess.valve=Exception processing valve {0}
background process
+containerBase.backgroundProcess.unexpectedThreadDeath=Unexpected death of
background thread {0}
defaultInstanceManager.invalidInjection=Invalid method resource injection
annotation
fastEngineMapper.alreadyStarted=FastEngineMapper {0} has already been started
fastEngineMapper.notStarted=FastEngineMapper {0} has not yet been started
Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1611509&r1=1611508&r2=1611509&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Thu Jul 17 23:13:05 2014
@@ -172,6 +172,10 @@
<code>MapperListener</code> during repeated starts of embedded Tomcat.
(kkolinko)
</fix>
+ <add>
+ <bug>56724</bug>: Write an error message to Tomcat logs if container
+ background thread is aborted unexpectedly. (kkolinko)
+ </add>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]