code: protected List<PropertyData> getCachedCleanChildPropertiesData(NodeData nodeData,
        QPathEntryFilter pattern)
     {
        List<PropertyData> cachedItemList = cache.getChildProperties(nodeData, pattern);
        if (cachedItemList != null)
        {
           boolean skip = false;
           for (int j = 0, length = cachedItemList.size(); j < length; j++)
           {
              PropertyData prop = cachedItemList.get(j);
              if (prop != null && !(prop instanceof NullPropertyData) && forceLoad(prop))
              {
                 cache.remove(prop.getIdentifier(), prop);
                 skip = true;
              }
           }
           if (skip)
              cachedItemList = null;
        }
        return cachedItemList;
     }
docs: It is similar to {@link WorkspaceStorageCache#getChildProperties(NodeData, QPathEntryFilter)} except that if it
  is a property it will check if it is complete or not, if not it will remove the entry from
  the cache and returns null