瀏覽代碼

Merge pull request #5757 from afishbeck/fileUsedByQueriesLdapCore

HPCC-11278 Fix core when calling WUListQueriesUsingFile with LDAP

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 11 年之前
父節點
當前提交
05088559c0
共有 1 個文件被更改,包括 15 次插入12 次删除
  1. 15 12
      esp/services/ws_workunits/ws_workunitsQuerySets.cpp

+ 15 - 12
esp/services/ws_workunits/ws_workunitsQuerySets.cpp

@@ -1291,20 +1291,23 @@ bool CWsWorkunitsEx::onWUListQueriesUsingFile(IEspContext &context, IEspWUListQu
         if (pmid && *pmid)
             respTarget->setPackageMap(pmid);
 
-        IPropertyTreeIterator *queries = filesInUse.findQueriesUsingFile(target, lfn);
-        IArrayOf<IEspQueryUsingFile> respQueries;
-        ForEach(*queries)
+        Owned<IPropertyTreeIterator> queries = filesInUse.findQueriesUsingFile(target, lfn);
+        if (queries)
         {
-            IPropertyTree &query = queries->query();
-            Owned<IEspQueryUsingFile> q = createQueryUsingFile();
-            q->setId(query.queryProp("@id"));
-
-            VStringBuffer xpath("File[@lfn='%s']/@pkgid", lfn.str());
-            if (query.hasProp(xpath))
-                q->setPackage(query.queryProp(xpath));
-            respQueries.append(*q.getClear());
+            IArrayOf<IEspQueryUsingFile> respQueries;
+            ForEach(*queries)
+            {
+                IPropertyTree &query = queries->query();
+                Owned<IEspQueryUsingFile> q = createQueryUsingFile();
+                q->setId(query.queryProp("@id"));
+
+                VStringBuffer xpath("File[@lfn='%s']/@pkgid", lfn.str());
+                if (query.hasProp(xpath))
+                    q->setPackage(query.queryProp(xpath));
+                respQueries.append(*q.getClear());
+            }
+            respTarget->setQueries(respQueries);
         }
-        respTarget->setQueries(respQueries);
         respTargets.append(*respTarget.getClear());
     }
     resp.setTargets(respTargets);