code: protected List<PropertyData> getChildPropertiesData(final NodeData nodeData, boolean forcePersistentRead)
        throws RepositoryException
     {
  
        List<PropertyData> childProperties = null;
        if (!forcePersistentRead)
        {
           childProperties = getCachedCleanChildPropertiesData(nodeData);
           if (childProperties != null)
           {
              return childProperties;
           }
        }
        final DataRequest request = new DataRequest(nodeData.getIdentifier(), DataRequest.GET_PROPERTIES);
  
        try
        {
           request.start();
           if (!forcePersistentRead)
           {
              // Try first to get the value from the cache since a
              // request could have been launched just before
              childProperties = getCachedCleanChildPropertiesData(nodeData);
              if (childProperties != null)
              {
                 return childProperties;
              }
           }
           return executeAction(new PrivilegedExceptionAction<List<PropertyData>>()
           {
              public List<PropertyData> run() throws RepositoryException
              {
                 List<PropertyData> childProperties =
                    CacheableWorkspaceDataManager.super.getChildPropertiesData(nodeData);
  
                 if (childProperties.size() > 0 && cache.isEnabled())
                 {
                    cache.addChildProperties(nodeData, childProperties);
                 }
                 return childProperties;
              }
           });
        }
        finally
        {
           request.done();
        }
     }
docs: Get child PropertyData.
  
  @param nodeData
  parent
  @param forcePersistentRead
  true if persistent read is required (without cache)
  @return List of PropertyData
  @throws RepositoryException
  Repository error