Bläddra i källkod

Merge pull request #3804 from wangkx/h8488

HPCC-8488 Fix ESP cores when a workunit has no query

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 12 år sedan
förälder
incheckning
0d7b15ed8a
1 ändrade filer med 30 tillägg och 27 borttagningar
  1. 30 27
      esp/services/ws_workunits/ws_workunitsHelpers.cpp

+ 30 - 27
esp/services/ws_workunits/ws_workunitsHelpers.cpp

@@ -464,46 +464,49 @@ void WsWuInfo::getHelpers(IEspECLWorkunit &info, unsigned flags)
 {
     try
     {
+        IArrayOf<IEspECLHelpFile> helpers;
+
         Owned <IConstWUQuery> query = cw->getQuery();
         if(!query)
         {
             ERRLOG("Cannot get Query for this workunit.");
             info.setHelpersDesc("Cannot get Query for this workunit.");
         }
-
-        SCMStringBuffer qname;
-        query->getQueryShortText(qname);
-        if(qname.length())
+        else
         {
-            if((flags & WUINFO_TruncateEclTo64k) && (qname.length() > 64000))
-                qname.setLen(qname.str(), 64000);
+            SCMStringBuffer qname;
+            query->getQueryShortText(qname);
+            if(qname.length())
+            {
+                if((flags & WUINFO_TruncateEclTo64k) && (qname.length() > 64000))
+                    qname.setLen(qname.str(), 64000);
 
-            IEspECLQuery* q=&info.updateQuery();
-            q->setText(qname.str());
-        }
+                IEspECLQuery* q=&info.updateQuery();
+                q->setText(qname.str());
+            }
 
-        if (version > 1.34)
-        {
-            SCMStringBuffer mainDefinition;
-            query->getQueryMainDefinition(mainDefinition);
-            if(mainDefinition.length())
+            if (version > 1.34)
             {
-                IEspECLQuery* q=&info.updateQuery();
-                q->setQueryMainDefinition(mainDefinition.str());
+                SCMStringBuffer mainDefinition;
+                query->getQueryMainDefinition(mainDefinition);
+                if(mainDefinition.length())
+                {
+                    IEspECLQuery* q=&info.updateQuery();
+                    q->setQueryMainDefinition(mainDefinition.str());
+                }
             }
-        }
 
-        if (version > 1.30)
-        {
-            SCMStringBuffer qText;
-            query->getQueryText(qText);
-            if ((qText.length() > 0) && isArchiveQuery(qText.str()))
-                info.setHasArchiveQuery(true);
-        }
+            if (version > 1.30)
+            {
+                SCMStringBuffer qText;
+                query->getQueryText(qText);
+                if ((qText.length() > 0) && isArchiveQuery(qText.str()))
+                    info.setHasArchiveQuery(true);
+            }
 
-        IArrayOf<IEspECLHelpFile> helpers;
-        for (unsigned i = 0; i < FileTypeSize; i++)
-            getHelpFiles(query, (WUFileType) i, helpers);
+            for (unsigned i = 0; i < FileTypeSize; i++)
+                getHelpFiles(query, (WUFileType) i, helpers);
+        }
 
         getWorkunitThorLogInfo(helpers, info);