This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.jcr.contentloader-2.0.6 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git
commit defa57ec1072889d03b309bbb89bdc740c662e6e Author: Ian Boston <i...@apache.org> AuthorDate: Thu Jan 7 23:33:50 2010 +0000 SLING-1251 Applied Patch from Ray Davis (Thanks) fixes acl policies after JR16 upgrade, and fixes a potential NPE. git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/contentloader@897054 13f79535-47bb-0310-9956-ffa450edef68 --- .../internal/DefaultContentCreator.java | 53 +++++++++++++--------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java index c4d7876..2cf70aa 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java @@ -813,16 +813,24 @@ public class DefaultContentCreator implements ContentCreator { AccessControlManager accessControlManager = AccessControlUtil.getAccessControlManager(session); AccessControlList updatedAcl = null; - AccessControlPolicyIterator applicablePolicies = accessControlManager.getApplicablePolicies(resourcePath); - while (applicablePolicies.hasNext()) { - AccessControlPolicy policy = applicablePolicies.nextAccessControlPolicy(); - if (policy instanceof AccessControlList) { - updatedAcl = (AccessControlList)policy; - break; - } + AccessControlPolicy[] policies = accessControlManager.getPolicies(resourcePath); + for (AccessControlPolicy policy : policies) { + if (policy instanceof AccessControlList) { + updatedAcl = (AccessControlList)policy; + break; + } + } + if (updatedAcl == null) { + AccessControlPolicyIterator applicablePolicies = accessControlManager.getApplicablePolicies(resourcePath); + while (applicablePolicies.hasNext()) { + AccessControlPolicy policy = applicablePolicies.nextAccessControlPolicy(); + if (policy instanceof AccessControlList) { + updatedAcl = (AccessControlList)policy; + } + } } if (updatedAcl == null) { - throw new RepositoryException("Unable to find an access conrol policy to update."); + throw new RepositoryException("Unable to find or create an access control policy to update for " + resourcePath); } Set<String> postedPrivilegeNames = new HashSet<String>(); @@ -869,12 +877,14 @@ public class DefaultContentCreator implements ContentCreator { //add a fresh ACE with the granted privileges List<Privilege> grantedPrivilegeList = new ArrayList<Privilege>(); - for (String name : grantedPrivilegeNames) { - if (name.length() == 0) { - continue; //empty, skip it. - } - Privilege privilege = accessControlManager.privilegeFromName(name); - grantedPrivilegeList.add(privilege); + if (grantedPrivilegeNames != null) { + for (String name : grantedPrivilegeNames) { + if (name.length() == 0) { + continue; //empty, skip it. + } + Privilege privilege = accessControlManager.privilegeFromName(name); + grantedPrivilegeList.add(privilege); + } } //add the privileges that should be preserved grantedPrivilegeList.addAll(preserveGrantedPrivileges); @@ -888,13 +898,14 @@ public class DefaultContentCreator implements ContentCreator { if (!authorizable.isGroup()) { //add a fresh ACE with the denied privileges List<Privilege> deniedPrivilegeList = new ArrayList<Privilege>(); - for (String name : deniedPrivilegeNames) { - if (name.length() == 0) { - continue; //empty, skip it. - } - Privilege privilege = accessControlManager.privilegeFromName(name); - deniedPrivilegeList.add(privilege); - + if (deniedPrivilegeNames != null) { + for (String name : deniedPrivilegeNames) { + if (name.length() == 0) { + continue; //empty, skip it. + } + Privilege privilege = accessControlManager.privilegeFromName(name); + deniedPrivilegeList.add(privilege); + } } //add the privileges that should be preserved deniedPrivilegeList.addAll(preserveDeniedPrivileges); -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.