From 343a3b958d9aaf63627985860ff41b0bc431c324 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Thu, 22 Nov 2018 13:59:49 +0100
Subject: [PATCH] ENH: guard against non-dictionary entries in changeDictionary
 (#1092)

---
 .../changeDictionary/changeDictionary.C          | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
index 65803c4274b..d9a09229842 100644
--- a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
+++ b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
@@ -99,6 +99,11 @@ HashTable<wordList> extractPatchGroups(const dictionary& boundaryDict)
 
     for (const entry& dEntry : boundaryDict)
     {
+        if (!dEntry.isDict())
+        {
+            continue;
+        }
+
         const word& patchName = dEntry.keyword();
         const dictionary& patchDict = dEntry.dict();
 
@@ -552,7 +557,10 @@ int main(int argc, char *argv[])
         dictionary fieldDict;
         for (const entry& e : dictList)
         {
-            fieldDict.add(e.keyword(), e.dict());
+            if (e.isDict())
+            {
+                fieldDict.add(e.keyword(), e.dict());
+            }
         }
 
         if (dictList.size())
@@ -584,6 +592,12 @@ int main(int argc, char *argv[])
 
         for (const entry& replaceEntry : replaceDicts)
         {
+            if (!replaceEntry.isDict())
+            {
+                // Could also warn
+                continue;
+            }
+
             const word& fieldName = replaceEntry.keyword();
             const dictionary& replaceDict = replaceEntry.dict();
 
-- 
GitLab