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

coulbeck
02.34.2007 be1c7c1f4ce88b5175e7a946c0745cd9f9e7873b
Fix for issue #1309: Deleting ACI is Ineffective.
This was caused by a null pointer exception that we previously got away with but became noticable since the ACI cache update is now atomic.
1 files modified
11 ■■■■■ changed files
opends/src/server/org/opends/server/authorization/dseecompat/AciList.java 11 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/authorization/dseecompat/AciList.java
@@ -143,6 +143,10 @@
    List<Attribute> attributeList =
         entry.getOperationalAttribute(AciHandler.aciType);
    if (attributeList == null) {
      return 0;
    }
    // Copy the ACI list.
    LinkedHashMap<DN,List<Aci>> aciCopy = copyList();
@@ -166,6 +170,11 @@
  private static int addAciAttributeList(
       LinkedHashMap<DN,List<Aci>> aciList, DN dn,
       List<Attribute> attributeList) {
    if (attributeList == null) {
      return 0;
    }
    int validAcis=0;
    ArrayList<Aci> acis = new ArrayList<Aci>();
    for (Attribute attribute : attributeList) {
@@ -212,7 +221,7 @@
      aciCopy.remove(oldEntry.getDN());
      List<Attribute> attributeList =
           newEntry.getOperationalAttribute(AciHandler.aciType, null);
           newEntry.getOperationalAttribute(AciHandler.aciType);
      addAciAttributeList(aciCopy,newEntry.getDN(),attributeList);
      // Replace the ACI list with the copy.