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