Author: markt
Date: Mon Jul 27 09:42:58 2015
New Revision: 1692849

URL: http://svn.apache.org/r1692849
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=58179
Fix atomicity violation (concurrent requests could both see null as the old 
value)

Modified:
    tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java

Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1692849&r1=1692848&r2=1692849&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java Mon Jul 
27 09:42:58 2015
@@ -781,17 +781,13 @@ public class ApplicationContext
             return;
         }
 
-        Object oldValue = null;
-        boolean replaced = false;
-
         // Add or replace the specified attribute
         // Check for read only attribute
         if (readOnlyAttributes.containsKey(name))
             return;
-        oldValue = attributes.get(name);
-        if (oldValue != null)
-            replaced = true;
-        attributes.put(name, value);
+
+        Object oldValue = attributes.put(name, value);
+        boolean replaced = oldValue != null;
 
         // Notify interested application event listeners
         Object listeners[] = context.getApplicationEventListeners();



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to