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