You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2011/06/08 10:52:02 UTC

svn commit: r1133290 - in /jackrabbit/branches/2.2: ./ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java

Author: angela
Date: Wed Jun  8 08:52:02 2011
New Revision: 1133290

URL: http://svn.apache.org/viewvc?rev=1133290&view=rev
Log:
2.2: Merging Revision 1132993

Modified:
    jackrabbit/branches/2.2/   (props changed)
    jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java

Propchange: jackrabbit/branches/2.2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun  8 08:52:02 2011
@@ -2,4 +2,4 @@
 /jackrabbit/sandbox/JCR-1456:774917-886178
 /jackrabbit/sandbox/JCR-2170:812417-816332
 /jackrabbit/sandbox/tripod-JCR-2209:795441-795863
-/jackrabbit/trunk:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041379,1041439,1041761,1042643,1042647,1042978-1042982,1043084-1043086,1043088,1043343,1043357-1043358,1043430,1043554,1043616,1043618,1043637,1043656,1043893,1043897,1044239,1044312,1044451,1044613,1049473,1049491,1049514,1049518,1049520,1049859,1049870,1049874,1049878,1049880,1049883,1049889,1049891,1049894-1049895,1049899-1049901,1049909-1049911,1049915-1049916,1049919,1049923,1049925,1049931,1049936,1049939,1050212,1050298,1050346,1050551,1055068,1055070-1055071,1055116-1055117,1055127,1055134,1055164,1055498,1060431,1060434,1060753,1063756,1064670,1065599,1065622,1066059,1066071,1069831,1071562,1071573,1071680,1074140,1079314,1079317,1080186,1080540,1087304,1088991,1089032,1089053,1089436,1092106,1092117,1092683,1097513-1097514,1098963-1098964,1099033,1099172,1100286,1104027,1128175,1130192,1130228
+/jackrabbit/trunk:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041379,1041439,1041761,1042643,1042647,1042978-1042982,1043084-1043086,1043088,1043343,1043357-1043358,1043430,1043554,1043616,1043618,1043637,1043656,1043893,1043897,1044239,1044312,1044451,1044613,1049473,1049491,1049514,1049518,1049520,1049859,1049870,1049874,1049878,1049880,1049883,1049889,1049891,1049894-1049895,1049899-1049901,1049909-1049911,1049915-1049916,1049919,1049923,1049925,1049931,1049936,1049939,1050212,1050298,1050346,1050551,1055068,1055070-1055071,1055116-1055117,1055127,1055134,1055164,1055498,1060431,1060434,1060753,1063756,1064670,1065599,1065622,1066059,1066071,1069831,1071562,1071573,1071680,1074140,1079314,1079317,1080186,1080540,1087304,1088991,1089032,1089053,1089436,1092106,1092117,1092683,1097513-1097514,1098963-1098964,1099033,1099172,1100286,1104027,1128175,1130192,1130228,1132993

Modified: jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java?rev=1133290&r1=1133289&r2=1133290&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java Wed Jun  8 08:52:02 2011
@@ -293,7 +293,7 @@ public class EntryCollector extends Acce
                     }
                 } catch (RepositoryException e) {
                     // should not get here
-                    log.error("Failed to process ACL event: " + event, e);
+                    log.warn("Failed to process ACL event: " + event, e);
                 }
             }
         }
@@ -308,23 +308,26 @@ public class EntryCollector extends Acce
             return new AccessControlModifications<NodeId>(modMap);
         }
 
-        private void siftNodeAdded(String identifier)
-                throws RepositoryException {
-            NodeImpl n = (NodeImpl) session.getNodeByIdentifier(identifier);
-            if (n.isNodeType(EntryCollector.NT_REP_ACL)) {
-                // a new ACL was added -> use the added node to update
-                // the cache.
-                addModification(
-                        accessControlledIdFromAclNode(n),
-                        AccessControlObserver.POLICY_ADDED);
-            } else if (n.isNodeType(EntryCollector.NT_REP_ACE)) {
-                // a new ACE was added -> use the parent node (acl)
-                // to update the cache.
-                addModification(
-                        accessControlledIdFromAceNode(n),
-                        AccessControlObserver.POLICY_MODIFIED);
-            } /* else: some other node added below an access controlled
-               parent node -> not interested. */
+        private void siftNodeAdded(String identifier) throws RepositoryException {
+            if (session.nodeExists(getIdentifierPath(identifier))) {
+                NodeImpl n = (NodeImpl) session.getNodeByIdentifier(identifier);
+                if (n.isNodeType(EntryCollector.NT_REP_ACL)) {
+                    // a new ACL was added -> use the added node to update
+                    // the cache.
+                    addModification(
+                            accessControlledIdFromAclNode(n),
+                            AccessControlObserver.POLICY_ADDED);
+                } else if (n.isNodeType(EntryCollector.NT_REP_ACE)) {
+                    // a new ACE was added -> use the parent node (acl)
+                    // to update the cache.
+                    addModification(
+                            accessControlledIdFromAceNode(n),
+                            AccessControlObserver.POLICY_MODIFIED);
+                } /* else: some other node added below an access controlled
+                     parent node -> not interested. */
+            } else {
+                log.debug("Cannot process NODE_ADDED event. Node {} doesn't exist (anymore).", identifier);
+            }
         }
 
         private void siftNodeRemoved(String path) throws RepositoryException {
@@ -349,23 +352,24 @@ public class EntryCollector extends Acce
                             implementation -> ignore
                  */
             } else {
-                log.debug("Cannot process NODE_REMOVED event."
-                        + " Parent {} doesn't exist (anymore).",
-                        parentPath);
+                log.debug("Cannot process NODE_REMOVED event. Parent {} doesn't exist (anymore).", parentPath);
             }
         }
 
-        private void siftPropertyChanged(String identifier)
-                throws RepositoryException {
-            // test if the changed prop belongs to an ACE
-            NodeImpl parent = (NodeImpl) session.getNodeByIdentifier(identifier);
-            if (parent.isNodeType(EntryCollector.NT_REP_ACE)) {
-                addModification(
-                        accessControlledIdFromAceNode(parent),
-                        AccessControlObserver.POLICY_MODIFIED);
-            } /* some other property below an access controlled node
+        private void siftPropertyChanged(String identifier) throws RepositoryException {
+            if (session.nodeExists(getIdentifierPath(identifier))) {
+                // test if the changed prop belongs to an ACE
+                NodeImpl parent = (NodeImpl) session.getNodeByIdentifier(identifier);
+                if (parent.isNodeType(EntryCollector.NT_REP_ACE)) {
+                    addModification(
+                            accessControlledIdFromAceNode(parent),
+                            AccessControlObserver.POLICY_MODIFIED);
+                } /* some other property below an access controlled node
                  changed -> not interested. (NOTE: rep:ACL doesn't
                  define any properties. */
+            } else {
+                log.debug("Cannot process PROPERTY_CHANGED event. Node {} doesn't exist (anymore).", identifier);
+            }
         }
 
         private NodeId accessControlledIdFromAclNode(Node aclNode)
@@ -386,6 +390,11 @@ public class EntryCollector extends Acce
             modMap.put(accessControllNodeId, modType);
         }
 
+        private static String getIdentifierPath(String identifier) {
+            StringBuilder sb = new StringBuilder();
+            sb.append('[').append(identifier).append(']');
+            return sb.toString();
+        }
     }
 
 }