From 90b4cf70aed4994eea49d40e008cbe8c87a5c338 Mon Sep 17 00:00:00 2001 From: Eivind Kvedalen Date: Fri, 12 Feb 2016 22:13:58 +0100 Subject: [PATCH] PropertExpressionEngine: Ignore dependencies that does not resolve to a document when verifying expressions. --- src/App/PropertyExpressionEngine.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/App/PropertyExpressionEngine.cpp b/src/App/PropertyExpressionEngine.cpp index ed641e7b6c..bffb862bcf 100644 --- a/src/App/PropertyExpressionEngine.cpp +++ b/src/App/PropertyExpressionEngine.cpp @@ -656,11 +656,15 @@ std::string PropertyExpressionEngine::validateExpression(const ObjectIdentifier // Get dependencies for the document object pointed to be *j std::vector targets; targets.push_back(docObj); - std::vector deps = (*j).getDocument()->getDependencyList(targets); - for (std::vector::const_iterator i = deps.begin(); i != deps.end(); ++i) { - if (*i == pathDocObj) - return (*j).toString() + " reference creates a cyclic dependency."; + // Does the dependency resolve to a document? If not, ignore it + if ((*j).getDocument()) { + std::vector deps = (*j).getDocument()->getDependencyList(targets); + + for (std::vector::const_iterator i = deps.begin(); i != deps.end(); ++i) { + if (*i == pathDocObj) + return (*j).toString() + " reference creates a cyclic dependency."; + } } }