Program: 8796
Project: 8796
Buggy source:
PermissionStoreEditor(@Nonnull String aclPath,@Nonnull String name,@Nonnull NodeState node,@Nonnull NodeBuilder permissionRoot,@Nonnull TypePredicate isACE,@Nonnull TypePredicate isGrantACE,@Nonnull PrivilegeBitsProvider bitsProvider,@Nonnull RestrictionProvider restrictionProvider){
  this.permissionRoot=permissionRoot;
  if (name.equals(REP_REPO_POLICY)) {
    accessControlledPath="String_Node_Str";
  }
 else {
    accessControlledPath=aclPath.length() == 0 ? "String_Node_Str" : aclPath;
  }
  nodeName=PermissionUtil.getEntryName(accessControlledPath);
  Set<String> orderedChildNames=newLinkedHashSet(node.getNames(OAK_CHILD_ORDER));
  long n=orderedChildNames.size();
  if (node.getChildNodeCount(n + 1) > n) {
    addAll(orderedChildNames,node.getChildNodeNames());
  }
  PrivilegeBits jcrAll=bitsProvider.getBits(PrivilegeConstants.JCR_ALL);
  int index=0;
  for (  String childName : orderedChildNames) {
    NodeState ace=node.getChildNode(childName);
    if (isACE.apply(ace)) {
      boolean isAllow=isGrantACE.apply(ace);
      PrivilegeBits privilegeBits=bitsProvider.getBits(ace.getNames(REP_PRIVILEGES));
      Set<Restriction> restrictions=restrictionProvider.readRestrictions(Strings.emptyToNull(accessControlledPath),TreeFactory.createReadOnlyTree(ace));
      AcEntry entry=(privilegeBits.equals(jcrAll)) ? new JcrAllAcEntry(ace,accessControlledPath,index,isAllow,privilegeBits,restrictions) : new AcEntry(ace,accessControlledPath,index,isAllow,privilegeBits,restrictions);
      List<AcEntry> list=entries.get(entry.principalName);
      if (list == null) {
        list=new ArrayList<AcEntry>();
        entries.put(entry.principalName,list);
      }
      list.add(entry);
      index++;
    }
  }
}

Fixed version (ground truth):
PermissionStoreEditor(@Nonnull String aclPath,@Nonnull String name,@Nonnull NodeState node,@Nonnull NodeBuilder permissionRoot,@Nonnull TypePredicate isACE,@Nonnull TypePredicate isGrantACE,@Nonnull PrivilegeBitsProvider bitsProvider,@Nonnull RestrictionProvider restrictionProvider){
  this.permissionRoot=permissionRoot;
  if (name.equals(REP_REPO_POLICY)) {
    accessControlledPath="String_Node_Str";
  }
 else {
    accessControlledPath=aclPath.isEmpty() ? "String_Node_Str" : aclPath;
  }
  nodeName=PermissionUtil.getEntryName(accessControlledPath);
  Set<String> orderedChildNames=newLinkedHashSet(node.getNames(OAK_CHILD_ORDER));
  long n=orderedChildNames.size();
  if (node.getChildNodeCount(n + 1) > n) {
    addAll(orderedChildNames,node.getChildNodeNames());
  }
  PrivilegeBits jcrAll=bitsProvider.getBits(PrivilegeConstants.JCR_ALL);
  int index=0;
  for (  String childName : orderedChildNames) {
    NodeState ace=node.getChildNode(childName);
    if (isACE.apply(ace)) {
      boolean isAllow=isGrantACE.apply(ace);
      PrivilegeBits privilegeBits=bitsProvider.getBits(ace.getNames(REP_PRIVILEGES));
      Set<Restriction> restrictions=restrictionProvider.readRestrictions(Strings.emptyToNull(accessControlledPath),TreeFactory.createReadOnlyTree(ace));
      AcEntry entry=(privilegeBits.equals(jcrAll)) ? new JcrAllAcEntry(ace,accessControlledPath,index,isAllow,privilegeBits,restrictions) : new AcEntry(ace,accessControlledPath,index,isAllow,privilegeBits,restrictions);
      List<AcEntry> list=entries.get(entry.principalName);
      if (list == null) {
        list=new ArrayList<AcEntry>();
        entries.put(entry.principalName,list);
      }
      list.add(entry);
      index++;
    }
  }
}