Author: sergiykarpenko
Date: 2009-11-26 08:31:31 -0500 (Thu, 26 Nov 2009)
New Revision: 881
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java
Log:
EXOJCR-270: updateTreeACL - updated
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java 2009-11-26
13:17:10 UTC (rev 880)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java 2009-11-26
13:31:31 UTC (rev 881)
@@ -896,14 +896,20 @@
if (!isPrivilegeable || prevData.getACL().equals(newACL))
{
- // do update NodeData
- TransientNodeData newData =
- new TransientNodeData(prevData.getQPath(), prevData.getIdentifier(),
prevData.getPersistedVersion(),
- prevData.getPrimaryTypeName(), prevData.getMixinTypeNames(),
prevData.getOrderNumber(), prevData
- .getParentIdentifier(), newACL);
- newData.addState(TransientPropertyData.TRANSITIVE_PATH_UPDATED);
- node.put(ITEM_DATA, newData);
+ // do update NodeData
+ if (!prevData.getACL().equals(newACL))
+ {
+ AccessControlList acl = new AccessControlList(prevData.getACL().getOwner(),
newACL.getPermissionEntries());
+
+ TransientNodeData newData =
+ new TransientNodeData(prevData.getQPath(), prevData.getIdentifier(),
prevData.getPersistedVersion(),
+ prevData.getPrimaryTypeName(), prevData.getMixinTypeNames(),
prevData.getOrderNumber(), prevData
+ .getParentIdentifier(), acl);
+ newData.addState(TransientPropertyData.TRANSITIVE_PATH_UPDATED);
+ node.put(ITEM_DATA, newData);
+ }
+
// do update child nodes
for (Node<Serializable, Object> child : node.getChildren())
@@ -911,14 +917,14 @@
String childNodeId = (String)child.get(ITEM_ID);
if (childNodeId == null)
{
- throw new RepositoryException("FATAL Child Node Id key is null.
Parent " + newData.getQPath());
+ throw new RepositoryException("FATAL Child Node Id key is null.
Parent " + prevData.getQPath());
}
Node<Serializable, Object> childNode =
nodesRoot.getChild(makeNodeFqn(childNodeId));
if (childNode == null)
{
throw new RepositoryException("FATAL Node record not found (" +
childNodeId
- + "), but listed in childs of " + newData.getQPath());
+ + "), but listed in childs of " + prevData.getQPath());
}
updateTreeACL(childNode, newACL);
Show replies by date