Author: tolusha
Date: 2010-11-18 04:35:51 -0500 (Thu, 18 Nov 2010)
New Revision: 3477
Modified:
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
Log:
JCR-1505: Avoid iterating over a List thanks to its iterator when it is possible
Modified:
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java
===================================================================
---
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java 2010-11-18
09:32:30 UTC (rev 3476)
+++
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java 2010-11-18
09:35:51 UTC (rev 3477)
@@ -159,8 +159,9 @@
public List<AccessControlEntry> getPermissionEntries()
{
List<AccessControlEntry> list = new ArrayList<AccessControlEntry>();
- for (AccessControlEntry entry : accessList)
+ for (int i = 0, length = accessList.size(); i < length; i++)
{
+ AccessControlEntry entry = accessList.get(i);
list.add(new AccessControlEntry(entry.getIdentity(), entry.getPermission()));
}
return list;
@@ -169,8 +170,9 @@
public List<String> getPermissions(String identity)
{
List<String> permissions = new ArrayList<String>();
- for (AccessControlEntry entry : accessList)
+ for (int i = 0, length = accessList.size(); i < length; i++)
{
+ AccessControlEntry entry = accessList.get(i);
if (entry.getIdentity().equals(identity))
permissions.add(entry.getPermission());
}
Modified:
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
---
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2010-11-18
09:32:30 UTC (rev 3476)
+++
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2010-11-18
09:35:51 UTC (rev 3477)
@@ -981,8 +981,9 @@
{
// full iterator
List<NodeImpl> nodes = new ArrayList<NodeImpl>();
- for (NodeData child : childs)
+ for (int i = 0, length = childs.size(); i < length; i++)
{
+ NodeData child = childs.get(i);
if (session.getAccessManager().hasPermission(child.getACL(), new
String[]{PermissionType.READ},
session.getUserState().getIdentity()))
{
@@ -1032,8 +1033,9 @@
{
// full iterator
List<NodeImpl> nodes = new ArrayList<NodeImpl>();
- for (NodeData child : childs)
+ for (int i = 0, length = childs.size(); i < length; i++)
{
+ NodeData child = childs.get(i);
if (filter.accept(child)
&& session.getAccessManager().hasPermission(child.getACL(), new
String[]{PermissionType.READ},
session.getUserState().getIdentity()))
@@ -1129,8 +1131,9 @@
{
// full iterator
List<PropertyImpl> props = new ArrayList<PropertyImpl>();
- for (PropertyData child : childs)
+ for (int i = 0, length = childs.size(); i < length; i++)
{
+ PropertyData child = childs.get(i);
PropertyImpl item = (PropertyImpl)dataManager.readItem(child,
nodeData(), true, false);
session.getActionHandler().postRead(item);
props.add(item);
@@ -1185,8 +1188,9 @@
{
// full iterator
List<PropertyImpl> props = new ArrayList<PropertyImpl>();
- for (PropertyData child : childs)
+ for (int i = 0, length = childs.size(); i < length; i++)
{
+ PropertyData child = childs.get(i);
if (filter.accept(child))
{
PropertyImpl item = (PropertyImpl)dataManager.readItem(child,
nodeData(), true, false);
Modified:
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
---
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2010-11-18
09:32:30 UTC (rev 3476)
+++
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2010-11-18
09:35:51 UTC (rev 3477)
@@ -672,8 +672,9 @@
{
List<PropertyData> refDatas =
transactionableManager.getReferencesData(identifier, true);
List<PropertyImpl> refs = new
ArrayList<PropertyImpl>(refDatas.size());
- for (PropertyData data : refDatas)
+ for (int i = 0, length = refDatas.size(); i < length; i++)
{
+ PropertyData data = refDatas.get(i);
ItemState state = changesLog.getItemState(data.getIdentifier());
if (state != null)
{
@@ -1959,8 +1960,9 @@
if (action != MERGE_PROPS)
{
List<NodeData> childNodes =
dataManager.getChildNodesData((NodeData)parent);
- for (NodeData childNode : childNodes)
+ for (int i = 0, length = childNodes.size(); i < length; i++)
{
+ NodeData childNode = childNodes.get(i);
ret.put(childNode.getIdentifier(), childNode);
}
}
@@ -1969,8 +1971,9 @@
List<PropertyData> childProps =
listOnly ? dataManager.listChildPropertiesData((NodeData)parent) :
dataManager
.getChildPropertiesData((NodeData)parent);
- outer : for (PropertyData childProp : childProps)
+ outer : for (int i = 0, length = childProps.size(); i < length; i++)
{
+ PropertyData childProp = childProps.get(i);
for (ItemState transientState : transientDescendants)
{
if (!transientState.isNode() && !transientState.isDeleted()
Modified:
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
---
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2010-11-18
09:32:30 UTC (rev 3476)
+++
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2010-11-18
09:35:51 UTC (rev 3477)
@@ -34,7 +34,6 @@
import org.exoplatform.services.transaction.TransactionService;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -491,11 +490,9 @@
if (skipVersionStorage)
{
List<PropertyData> result = new ArrayList<PropertyData>();
-
- Iterator<PropertyData> iterator = props.iterator();
- while (iterator.hasNext())
+ for (int i = 0, length = props.size(); i < length; i++)
{
- PropertyData prop = iterator.next();
+ PropertyData prop = props.get(i);
if (!prop.getQPath().isDescendantOf(Constants.JCR_VERSION_STORAGE_PATH))
{
result.add(prop);
Modified:
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
---
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2010-11-18
09:32:30 UTC (rev 3476)
+++
jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2010-11-18
09:35:51 UTC (rev 3477)
@@ -511,9 +511,11 @@
return null;
}
- // add property as many times as has referenced values
- for (ValueData vdata : prop.getValues())
+ // add property as many times as has referenced values
+ List<ValueData> lData = prop.getValues();
+ for (int i = 0, length = lData.size(); i < length; i++)
{
+ ValueData vdata = lData.get(i);
try
{
if (new String(vdata.getAsByteArray(),
Constants.DEFAULT_ENCODING).equals(identifier))
@@ -999,8 +1001,10 @@
// add referenced property
if (modifyListsOfChild != ModifyChildOption.NOT_MODIFY && prop.getType() ==
PropertyType.REFERENCE)
{
- for (ValueData vdata : prop.getValues())
+ List<ValueData> lData = prop.getValues();
+ for (int i = 0, length = lData.size(); i < length; i++)
{
+ ValueData vdata = lData.get(i);
String nodeIdentifier = null;
try
{