Author: markt
Date: Mon Feb 26 22:20:04 2018
New Revision: 1825421
URL: http://svn.apache.org/viewvc?rev=1825421&view=rev
Log:
SpotBugs
Fix some concurrency related concerns.
Modified:
tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java
tomcat/trunk/java/org/apache/catalina/realm/LockOutRealm.java
Modified: tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java?rev=1825421&r1=1825420&r2=1825421&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java Mon Feb 26
22:20:04 2018
@@ -164,7 +164,7 @@ public class JAASRealm extends RealmBase
*/
protected String configFile;
- protected Configuration jaasConfiguration;
+ protected volatile Configuration jaasConfiguration;
protected volatile boolean jaasConfigurationLoaded = false;
@@ -606,6 +606,8 @@ public class JAASRealm extends RealmBase
* @return the loaded configuration
*/
protected Configuration getConfig() {
+ // Local copy to avoid possible NPE due to concurrent change
+ String configFile = this.configFile;
try {
if (jaasConfigurationLoaded) {
return jaasConfiguration;
@@ -615,8 +617,7 @@ public class JAASRealm extends RealmBase
jaasConfigurationLoaded = true;
return null;
}
- URL resource = Thread.currentThread().getContextClassLoader().
- getResource(configFile);
+ URL resource =
Thread.currentThread().getContextClassLoader().getResource(configFile);
URI uri = resource.toURI();
@SuppressWarnings("unchecked")
Class<Configuration> sunConfigFile = (Class<Configuration>)
Modified: tomcat/trunk/java/org/apache/catalina/realm/LockOutRealm.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/LockOutRealm.java?rev=1825421&r1=1825420&r2=1825421&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/LockOutRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/LockOutRealm.java Mon Feb 26
22:20:04 2018
@@ -88,7 +88,7 @@ public class LockOutRealm extends Combin
* that prevents this component from being used
*/
@Override
- protected void startInternal() throws LifecycleException {
+ protected synchronized void startInternal() throws LifecycleException {
// Configure the list of failed users to delete the oldest entry once
it
// exceeds the specified size
failedUsers = new LinkedHashMap<String, LockRecord>(cacheSize, 0.75f,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]