Author: markt
Date: Mon Sep 21 12:54:52 2015
New Revision: 1704289
URL: http://svn.apache.org/viewvc?rev=1704289&view=rev
Log:
Ensure all access to the classloader<->Loggers Map is thread-safe
Modified:
tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java
Modified: tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java?rev=1704289&r1=1704288&r2=1704289&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java (original)
+++ tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java Mon Sep 21
12:54:52 2015
@@ -86,7 +86,7 @@ public class ClassLoaderLogManager exten
* application redeployment.
*/
protected final Map<ClassLoader, ClassLoaderLogInfo> classLoaderLoggers =
- new WeakHashMap<>();
+ new WeakHashMap<>(); // Guarded by this
/**
@@ -273,7 +273,7 @@ public class ClassLoaderLogManager exten
}
- private String findProperty(String name) {
+ private synchronized String findProperty(String name) {
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
ClassLoaderLogInfo info = getClassLoaderInfo(classLoader);
@@ -343,7 +343,7 @@ public class ClassLoaderLogManager exten
/**
* Shuts down the logging system.
*/
- public void shutdown() {
+ public synchronized void shutdown() {
// The JVM is being shutdown. Make sure all loggers for all class
// loaders are shutdown
for (ClassLoaderLogInfo clLogInfo : classLoaderLoggers.values()) {
@@ -387,7 +387,7 @@ public class ClassLoaderLogManager exten
* @param classLoader The classloader for which we will retrieve or build
the
* configuration
*/
- protected ClassLoaderLogInfo getClassLoaderInfo(ClassLoader classLoader) {
+ protected synchronized ClassLoaderLogInfo getClassLoaderInfo(ClassLoader
classLoader) {
if (classLoader == null) {
classLoader = ClassLoader.getSystemClassLoader();
@@ -418,7 +418,7 @@ public class ClassLoaderLogManager exten
* @param classLoader
* @throws IOException Error
*/
- protected void readConfiguration(ClassLoader classLoader)
+ protected synchronized void readConfiguration(ClassLoader classLoader)
throws IOException {
InputStream is = null;
@@ -516,7 +516,7 @@ public class ClassLoaderLogManager exten
* @param classLoader for which the configuration will be loaded
* @throws IOException If something wrong happens during loading
*/
- protected void readConfiguration(InputStream is, ClassLoader classLoader)
+ protected synchronized void readConfiguration(InputStream is, ClassLoader
classLoader)
throws IOException {
ClassLoaderLogInfo info = classLoaderLoggers.get(classLoader);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]