From eaafcc4778e5591db2506452a801850fa68d3fde Mon Sep 17 00:00:00 2001 From: markt Date: Fri, 23 Apr 2010 14:23:45 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49143 Threading / initialisation issues. Not all were valid. Make them volatile anyway so FindBugs doesn't complain. Fix some additional issues - use of valueOf() - found along the way git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@937309 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/realm/RealmBase.java | 2 +- java/org/apache/catalina/session/StandardSession.java | 16 ++++++++-------- java/org/apache/catalina/startup/TldConfig.java | 2 +- java/org/apache/catalina/util/ExtensionValidator.java | 3 ++- .../modeler/modules/MbeansDescriptorsDigesterSource.java | 2 +- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/java/org/apache/catalina/realm/RealmBase.java b/java/org/apache/catalina/realm/RealmBase.java index d93557607..d5f6f7718 100644 --- a/java/org/apache/catalina/realm/RealmBase.java +++ b/java/org/apache/catalina/realm/RealmBase.java @@ -124,7 +124,7 @@ public abstract class RealmBase extends LifecycleBase /** * MD5 message digest provider. */ - protected static MessageDigest md5Helper; + protected static volatile MessageDigest md5Helper; /** diff --git a/java/org/apache/catalina/session/StandardSession.java b/java/org/apache/catalina/session/StandardSession.java index d39fce429..52448b45b 100644 --- a/java/org/apache/catalina/session/StandardSession.java +++ b/java/org/apache/catalina/session/StandardSession.java @@ -249,7 +249,7 @@ public class StandardSession /** * The HTTP session context associated with this session. */ - protected static HttpSessionContext sessionContext = null; + protected static volatile HttpSessionContext sessionContext = null; /** @@ -1559,12 +1559,12 @@ public class StandardSession protected void writeObject(ObjectOutputStream stream) throws IOException { // Write the scalar instance variables (except Manager) - stream.writeObject(new Long(creationTime)); - stream.writeObject(new Long(lastAccessedTime)); - stream.writeObject(new Integer(maxInactiveInterval)); - stream.writeObject(new Boolean(isNew)); - stream.writeObject(new Boolean(isValid)); - stream.writeObject(new Long(thisAccessedTime)); + stream.writeObject(Long.valueOf(creationTime)); + stream.writeObject(Long.valueOf(lastAccessedTime)); + stream.writeObject(Integer.valueOf(maxInactiveInterval)); + stream.writeObject(Boolean.valueOf(isNew)); + stream.writeObject(Boolean.valueOf(isValid)); + stream.writeObject(Long.valueOf(thisAccessedTime)); stream.writeObject(id); if (manager.getContainer().getLogger().isDebugEnabled()) manager.getContainer().getLogger().debug @@ -1589,7 +1589,7 @@ public class StandardSession // Serialize the attribute count and the Serializable attributes int n = saveNames.size(); - stream.writeObject(new Integer(n)); + stream.writeObject(Integer.valueOf(n)); for (int i = 0; i < n; i++) { stream.writeObject(saveNames.get(i)); try { diff --git a/java/org/apache/catalina/startup/TldConfig.java b/java/org/apache/catalina/startup/TldConfig.java index 6846e5b7d..5c5353e23 100644 --- a/java/org/apache/catalina/startup/TldConfig.java +++ b/java/org/apache/catalina/startup/TldConfig.java @@ -66,7 +66,7 @@ public final class TldConfig implements LifecycleListener { private static final String WEB_INF_LIB = "/WEB-INF/lib/"; // Names of JARs that are known not to contain any TLDs - private static Set noTldJars = null; + private static volatile Set noTldJars = null; private static final org.apache.juli.logging.Log log= org.apache.juli.logging.LogFactory.getLog( TldConfig.class ); diff --git a/java/org/apache/catalina/util/ExtensionValidator.java b/java/org/apache/catalina/util/ExtensionValidator.java index 9c14b40af..6c4462e69 100644 --- a/java/org/apache/catalina/util/ExtensionValidator.java +++ b/java/org/apache/catalina/util/ExtensionValidator.java @@ -62,7 +62,8 @@ public final class ExtensionValidator { private static final StringManager sm = StringManager.getManager("org.apache.catalina.util"); - private static ArrayList containerAvailableExtensions = null; + private static volatile ArrayList containerAvailableExtensions = + null; private static ArrayList containerManifestResources = new ArrayList(); diff --git a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java index 1f49c3102..89e171659 100644 --- a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java +++ b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java @@ -42,7 +42,7 @@ public class MbeansDescriptorsDigesterSource extends ModelerSource String type; Object source; List mbeans = new ArrayList(); - protected static Digester digester = null; + protected static volatile Digester digester = null; protected static Digester createDigester(Registry registry) { -- 2.11.0