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/07 15:14:25 UTC
svn commit: r1132993 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java
Author: angela
Date: Tue Jun 7 13:14:24 2011
New Revision: 1132993
URL: http://svn.apache.org/viewvc?rev=1132993&view=rev
Log:
minor improvement: change log level to warn and test for node existence before calling Session.getNodeByIdentifier
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java?rev=1132993&r1=1132992&r2=1132993&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java Tue Jun 7 13:14:24 2011
@@ -283,7 +283,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);
}
}
}
@@ -299,21 +299,25 @@ public class EntryCollector extends Acce
}
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. */
+ 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 {
@@ -343,15 +347,19 @@ public class EntryCollector extends Acce
}
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
+ 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) throws RepositoryException {
@@ -369,5 +377,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();
+ }
}
}
\ No newline at end of file