Author: markt
Date: Fri Jan 22 12:58:14 2016
New Revision: 1726202
URL: http://svn.apache.org/viewvc?rev=1726202&view=rev
Log:
WeakHashMap isn't thread safe.
Modified:
tomcat/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java
tomcat/trunk/webapps/docs/changelog.xml
Modified:
tomcat/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java?rev=1726202&r1=1726201&r2=1726202&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/util/CustomObjectInputStream.java Fri
Jan 22 12:58:14 2016
@@ -107,10 +107,16 @@ public final class CustomObjectInputStre
}
this.warnOnFailure = warnOnFailure;
- Set<String> reportedClasses = reportedClassCache.get(classLoader);
+ Set<String> reportedClasses;
+ synchronized (reportedClassCache) {
+ reportedClasses = reportedClassCache.get(classLoader);
+ }
if (reportedClasses == null) {
reportedClasses = Collections.newSetFromMap(new
ConcurrentHashMap<>());
- Set<String> original = reportedClassCache.putIfAbsent(classLoader,
reportedClasses);
+ Set<String> original;
+ synchronized (reportedClassCache) {
+ original = reportedClassCache.putIfAbsent(classLoader,
reportedClasses);
+ }
if (original != null) {
// Concurrent attempts to create the new Set. Make sure all
// threads use the first successfully added Set.
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1726202&r1=1726201&r2=1726202&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Jan 22 12:58:14 2016
@@ -51,6 +51,10 @@
Protect initialization of <code>ResourceLinkFactory</code> when
running with a SecurityManager. (kkolinko)
</fix>
+ <fix>
+ Correct a thread safety issue in the filtering of session attributes
+ based on the implementing class name of the value object. (markt)
+ </fix>
</changelog>
</subsection>
</section>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]