diff --git a/arangod/Aql/TraversalNode.cpp b/arangod/Aql/TraversalNode.cpp index 86cf366096..02ac13a3cc 100644 --- a/arangod/Aql/TraversalNode.cpp +++ b/arangod/Aql/TraversalNode.cpp @@ -311,7 +311,10 @@ void TraversalNode::toJsonHelper (triagens::basics::Json& nodes, map.second.size()); for (auto const & x : map.second) { triagens::basics::Json exp(zone, triagens::basics::Json::Object); - x->toJson(exp, zone); + auto tmp = dynamic_cast(x); + if (tmp != nullptr) { + tmp->toJson(exp, zone); + } expressionArray(exp); } expressionObject.set(std::to_string(map.first), expressionArray); diff --git a/arangod/VocBase/Traverser.h b/arangod/VocBase/Traverser.h index 95df4568c9..d9947766b7 100644 --- a/arangod/VocBase/Traverser.h +++ b/arangod/VocBase/Traverser.h @@ -125,8 +125,8 @@ namespace triagens { } } - virtual void toJson (triagens::basics::Json& json, - TRI_memory_zone_t* zone) const; + void toJson (triagens::basics::Json& json, + TRI_memory_zone_t* zone) const; bool matchesCheck (TRI_doc_mptr_t& element, TRI_document_collection_t* collection,