[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