[exo-jcr-commits] exo-jcr SVN: r1257 - jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Dec 30 09:28:02 EST 2009
Author: tolusha
Date: 2009-12-30 09:28:02 -0500 (Wed, 30 Dec 2009)
New Revision: 1257
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
Log:
EXOJCR-338: small changes
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2009-12-30 11:45:14 UTC (rev 1256)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2009-12-30 14:28:02 UTC (rev 1257)
@@ -2573,24 +2573,32 @@
*/
private List childNodesData() throws RepositoryException, AccessDeniedException
{
-
- List storedNodes = dataManager.getChildNodesData(nodeData());
+ List<NodeData> storedNodes = dataManager.getChildNodesData(nodeData());
Collections.sort(storedNodes, new NodeDataOrderComparator());
- for (int i = storedNodes.size() - 1; i >= 0; i--)
+ List<Object> results = new ArrayList(storedNodes.size());
+
+ Iterator it = storedNodes.iterator();
+ while (it.hasNext())
{
- NodeData node = (NodeData)storedNodes.get(i);
+ NodeData node = (NodeData)it.next();
if (!(session.getAccessManager().hasPermission(node.getACL(), new String[]{PermissionType.READ}, session
.getUserState().getIdentity())))
{
- storedNodes.remove(i);
+ it.remove();
}
-
- ItemImpl pooled = dataManager.reloadItem(node);
- if (pooled != null)
+ else
{
- storedNodes.set(i, pooled);
+ ItemImpl pooled = dataManager.reloadItem(node);
+ if (pooled != null)
+ {
+ results.add(pooled);
+ }
+ else
+ {
+ results.add(node);
+ }
}
}
More information about the exo-jcr-commits
mailing list