try
{
List<PropertyData> childs = childPropertiesData();
ItemDataFilter filter = new ItemDataNamePatternFilter(namePattern, session);
if (session.getAccessManager().hasPermission(nodeData().getACL(), new String[]{PermissionType.READ},
session.getUserState().getIdentity()))
{
if (childs.size() < session.getLazyReadThreshold())
{
// full iterator
List<PropertyImpl> props = new ArrayList<PropertyImpl>();
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);
session.getActionHandler().postRead(item);
props.add(item);
}