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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org