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>.

Reply via email to