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

Valery Kharseko
2 days ago 98c87302c0faad3dfa3e33c6d74eec6c4ee16369
Avoid global write lock on every delete in GroupManager (#682)
1 files modified
17 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java 17 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java
@@ -678,6 +678,23 @@
      return;
    }
    // Fast path: this hook runs for every delete, but almost no deleted
    // entries have a group registered at or below them. Check with the read
    // lock first instead of serializing all delete threads on the exclusive
    // lock (same pattern as SubentryManager.doPostDelete).
    lock.readLock().lock();
    try
    {
      if (!groupInstances.containsSubtree(entry.getName()))
      {
        return;
      }
    }
    finally
    {
      lock.readLock().unlock();
    }
    lock.writeLock().lock();
    try
    {