WorkspaceNode workspaceNode = (WorkspaceNode) it.next();
DataNode node = workspaceNode.getNode();
boolean writeLock = workspaceNode.isDirty() || workspaceNode.isCreated() || workspaceNode.isDeleted() || (workspaceNode.isChildrenModified() && cache.getLockParentForChildInsertRemove());
boolean acquired = node.acquire(gtx, lockAcquisitionTimeout, writeLock ? DataNode.LOCK_TYPE_WRITE : DataNode.LOCK_TYPE_READ);
if (acquired)
{
if (log.isTraceEnabled()) log.trace("acquired lock on node " + node.getName());
te.addLock(node.getLock());
}