You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/06/24 17:03:44 UTC

svn commit: r1496077 - /manifoldcf/branches/CONNECTORS-703/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/UserRecord.java

Author: kwright
Date: Mon Jun 24 15:03:44 2013
New Revision: 1496077

URL: http://svn.apache.org/r1496077
Log:
UserRecord needs to be synchronized if multiple threads are going to work on it in the same instant.

Modified:
    manifoldcf/branches/CONNECTORS-703/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/UserRecord.java

Modified: manifoldcf/branches/CONNECTORS-703/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/UserRecord.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-703/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/UserRecord.java?rev=1496077&r1=1496076&r2=1496077&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-703/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/UserRecord.java (original)
+++ manifoldcf/branches/CONNECTORS-703/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/UserRecord.java Mon Jun 24 15:03:44 2013
@@ -44,6 +44,9 @@ import java.util.*;
 * mapper supplied out-of-the-box with ManifoldCF right now is a simple regular-
 * expression mapper, which converts the active-directory id to a user name in
 * any other specified domain.
+*
+* NOTE: since the same instance is potentially operated on by multiple threads,
+* it must be thread safe.
 */
 public class UserRecord
 {
@@ -61,25 +64,25 @@ public class UserRecord
   }
   
   /** Set a domain value to be a user record */
-  public void setDomainValue(String domain, UserRecord record)
+  public synchronized void setDomainValue(String domain, UserRecord record)
   {
     userInfo.put(domain, record);
   }
   
   /** Set a domain value to be a string */
-  public void setDomainValue(String domain, String name)
+  public synchronized void setDomainValue(String domain, String name)
   {
     userInfo.put(domain, name);
   }
   
   /** Delete a domain value */
-  public void deleteDomainValue(String domain)
+  public synchronized void deleteDomainValue(String domain)
   {
     userInfo.remove(domain);
   }
   
   /** Get a domain value, expecting a String */
-  public String getDomainValueAsString(String domain)
+  public synchronized String getDomainValueAsString(String domain)
   {
     Object o = userInfo.get(domain);
     if (o == null || !(o instanceof String))
@@ -88,7 +91,7 @@ public class UserRecord
   }
   
   /** Get a domain value, expecting a UserRecord */
-  public UserRecord getDomainValueAsUserRecord(String domain)
+  public synchronized UserRecord getDomainValueAsUserRecord(String domain)
   {
     Object o = userInfo.get(domain);
     if (o == null || !(o instanceof UserRecord))
@@ -97,13 +100,13 @@ public class UserRecord
   }
   
   /** Get an iterator over the list of domains */
-  public Iterator<String> iteratorDomains()
+  public synchronized Iterator<String> iteratorDomains()
   {
     return userInfo.keySet().iterator();
   }
   
   /** Get the number of domains */
-  public int getDomainCount()
+  public synchronized int getDomainCount()
   {
     return userInfo.size();
   }