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

Reply via email to