code: public boolean getChildNodesDataByPage(final NodeData nodeData, final int fromOrderNum, final int offset, final int pageSize,
        final List<NodeData> childs) throws RepositoryException
     {
        // if child nodes lazy iteration feature not supported by cache
        // then call old-style getChildNodes method
        if (!cache.isChildNodesByPageSupported())
        {
           childs.addAll(getChildNodesData(nodeData));
           return false;
        }
        // if child nodes by page iteration supported, then do it
        List<NodeData> childNodes = null;
        if (cache.isEnabled())
        {
           childNodes = cache.getChildNodes(nodeData);
           if (childNodes != null)
           {
              childs.addAll(childNodes);
              return false;
           }
           else
           {
              childNodes = cache.getChildNodesByPage(nodeData, fromOrderNum);
              if (childNodes != null)
              {
                 childs.addAll(childNodes);
                 return true;
              }
           }
        }
        final DataRequest request = new DataRequest(nodeData.getIdentifier(), DataRequest.GET_NODES);
  
        try
        {
           request.start();
           if (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)
              {
                 childs.addAll(childNodes);
                 return false;
              }
              else
              {
                 childNodes = cache.getChildNodesByPage(nodeData, fromOrderNum);
                 if (childNodes != null)
                 {
                    childs.addAll(childNodes);
                    return true;
                 }
              }
           }
  
           return executeAction(new PrivilegedExceptionAction<Boolean>()
           {
              public Boolean run() throws RepositoryException
              {
                 boolean hasNext =
                    CacheableWorkspaceDataManager.super.getChildNodesDataByPage(nodeData, fromOrderNum, offset, pageSize,
                       childs);
  
                 if (cache.isEnabled())
                 {
                    cache.addChildNodesByPage(nodeData, childs, fromOrderNum);
                 }
  
                 return hasNext;
              }
           });
        }
        finally
        {
           request.done();
        }
     }
docs: {@inheritDoc}