Преглед изворни кода

HPCC-15228 Improve error message for recursive filename

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday пре 9 година
родитељ
комит
85c495899e
2 измењених фајлова са 8 додато и 4 уклоњено
  1. 1 1
      ecl/hqlcpp/hqlcerrors.hpp
  2. 7 3
      ecl/hqlcpp/hqlresource.cpp

+ 1 - 1
ecl/hqlcpp/hqlcerrors.hpp

@@ -522,7 +522,7 @@
 
 //Warnings.
 #define HQLWRN_CannotRecreateDistribution_Text  "Cannot recreate the distribution for a persistent dataset"
-#define HQLWRN_RecursiveDependendencies_Text    "Recursive filename dependency"
+#define HQLWRN_RecursiveDependendencies_Text    "Recursive filename dependency %s"
 #define HQLWRN_MaxSizeExceedsSafeLimit_Text     "Maximum row size of %u exceeds the recommended maximum (%u)"
 #define HQLWRN_TomitaMatchPattern_Text          "MATCHED(%s) will not work on a pattern"
 #define HQLWRN_KeyedFollowsGap_Text             "keyed filter on %s follows unkeyed component %s in the key%s"

+ 7 - 3
ecl/hqlcpp/hqlresource.cpp

@@ -4558,8 +4558,12 @@ void EclResourceDependencyGatherer::addDependencyUse(IHqlExpression * search, Re
         {
             //Don't give a warning if get/set is within the same activity (e.g., within a local())
             if (&dependencySource.exprs.item(index) != expr)
-                //errors->reportWarning(HQLWRN_RecursiveDependendencies, HQLWRN_RecursiveDependendencies_Text, *codeGeneratorAtom, 0, 0, 0);
-                errors->reportError(HQLWRN_RecursiveDependendencies, HQLWRN_RecursiveDependendencies_Text, str(codeGeneratorId), 0, 0, 0);
+            {
+                StringBuffer ecl;
+                getExprECL(search, ecl);
+                VStringBuffer msg(HQLWRN_RecursiveDependendencies_Text, ecl.str());
+                errors->reportError(HQLWRN_RecursiveDependendencies, msg.str(), str(codeGeneratorId), 0, 0, 0);
+            }
         }
         else
         {
@@ -6209,7 +6213,7 @@ void EclResourcer::createResourced(ResourceGraphInfo * graph, HqlExprArray & tra
 #endif
 //  DBGLOG("Prepare to CreateResourced(%p)", graph);
     if (graph->startedGeneratingResourced)
-        throwError(HQLWRN_RecursiveDependendencies);
+        throwError1(HQLWRN_RecursiveDependendencies, "");
 
     graph->startedGeneratingResourced = true;
     ForEachItemIn(idxD, graph->dependsOn)