Bladeren bron

Merge pull request #3819 from jakesmith/xmlread-improved-error

HPCC-8507 Improve some xml read errors

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 12 jaren geleden
bovenliggende
commit
0966ca67d7
1 gewijzigde bestanden met toevoegingen van 13 en 2 verwijderingen
  1. 13 2
      thorlcr/activities/xmlread/thxmlreadslave.cpp

+ 13 - 2
thorlcr/activities/xmlread/thxmlreadslave.cpp

@@ -98,13 +98,15 @@ class CXmlReadSlaveActivity : public CDiskReadSlaveActivityBase, public CThorDat
 
             try
             {
-                while (xmlParser->next()) {
+                while (xmlParser->next())
+                {
                     if (lastMatch)
                     {
                         RtlDynamicRowBuilder row(allocator);
                         size32_t sz = xmlTransformer->transform(row, lastMatch, this);
                         lastMatch.clear();
-                        if (sz) {
+                        if (sz)
+                        {
                             localOffset = 0;
                             ++activity.diskProgress;
                             return row.finalizeRowClear(sz);
@@ -112,6 +114,15 @@ class CXmlReadSlaveActivity : public CDiskReadSlaveActivityBase, public CThorDat
                     }
                 }
             }
+            catch (IPTreeException *e)
+            {
+                StringBuffer context;
+                e->errorMessage(context).newline();
+                context.append("Logical filename = ").append(activity.logicalFilename).newline();
+                context.append("Physical file part = ").append(iFile->queryFilename()).newline();
+                context.append("offset = ").append(localOffset);
+                throw MakeStringException(e->errorCode(), "%s", context.str());
+            }
             catch (IXMLReadException *e)
             {
                 if (XmlRead_syntax != e->errorCode())