mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

ludovicp
15.59.2010 b3fd8de34d9a827d582a8e33efdf18a958a6434d
Fix possible deadlock with delete operations
1 files modified
22 ■■■■■ changed files
opends/src/server/org/opends/server/replication/service/ReplicationDomain.java 22 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/service/ReplicationDomain.java
@@ -3668,15 +3668,18 @@
   * @param serverId    server where these attributes are configured.
   * @param attributes  the configured attributes.
   */
  synchronized public void setEclInclude(int serverId, Set<String> attributes)
  public void setEclInclude(int serverId, Set<String> attributes)
  {
    eclIncludeByServer.put(serverId, attributes);
    synchronized(eclIncludeByServer)
    {
      eclIncludeByServer.put(serverId, attributes);
    // and rebuild the global list to be ready for usage
    crossServersECLIncludes.clear();
    for (Set<String> attributesByServer : eclIncludeByServer.values())
      for (String attribute : attributesByServer)
        crossServersECLIncludes.add(attribute);
      // and rebuild the global list to be ready for usage
      crossServersECLIncludes.clear();
      for (Set<String> attributesByServer : eclIncludeByServer.values())
        for (String attribute : attributesByServer)
          crossServersECLIncludes.add(attribute);
    }
  }
  /**
@@ -3698,7 +3701,10 @@
   */
  public Set<String> getEclInclude(int serverId)
  {
    return eclIncludeByServer.get(serverId);
    synchronized(eclIncludeByServer)
    {
      return eclIncludeByServer.get(serverId);
    }
  }
  /**