From 9219e26d4b0cc5feb3fcdd6b97803bd2713ddde1 Mon Sep 17 00:00:00 2001 From: amichelo <andrea.michelotti@lnf.infn.it> Date: Wed, 5 Apr 2023 13:09:17 +0200 Subject: [PATCH] haskey bug --- chaos/common/data/CDataWrapper.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/chaos/common/data/CDataWrapper.cpp b/chaos/common/data/CDataWrapper.cpp index 0cd8d7df1..5c809d44a 100644 --- a/chaos/common/data/CDataWrapper.cpp +++ b/chaos/common/data/CDataWrapper.cpp @@ -811,7 +811,13 @@ CDBufferUniquePtr CDataWrapper::getBinaryValueAsCDataBuffer(const std::string& k // check if the key is present in data wrapper bool CDataWrapper::hasKey(const std::string& key) const { - return bson_has_field(ACCESS_BSON(bson), key.c_str()); + bson_iter_t iter; + bson_iter_t child; + + BSON_ASSERT (bson); + if(key.size()==0) return false; + return (bson_iter_init (&iter, ACCESS_BSON(bson)) && bson_iter_find_descendant (&iter, key.c_str(), &child)); + } bool CDataWrapper::isVector(const std::string& key) const { -- GitLab