diff --git a/services/samgr/native/source/collect/common_event_collect.cpp b/services/samgr/native/source/collect/common_event_collect.cpp index dec363103f2fe2a2c3a227cd797768e6798a3a48..c1998b91c7746b5faecc11f570305cd1c9e5d8fa 100644 --- a/services/samgr/native/source/collect/common_event_collect.cpp +++ b/services/samgr/native/source/collect/common_event_collect.cpp @@ -353,16 +353,20 @@ int64_t CommonEventCollect::SaveOnDemandReasonExtraData(const EventFwk::CommonEv wantMap[UID] = std::to_string(uid); wantMap[NET_TYPE] = std::to_string(netType); wantMap[BUNDLE_NAME] = want.GetBundle(); - std::lock_guard autoLock(extraDataLock_); - for (auto key : extraDataKey_[want.GetAction()]) { - wantMap[key] = GetParamFromWant(key, want); - } - wantMap[COMMON_EVENT_ACTION_NAME] = want.GetAction(); - OnDemandReasonExtraData extraData(data.GetCode(), data.GetData(), wantMap); + int64_t extraDataId = 0; + { + std::lock_guard autoLock(extraDataLock_); + for (auto key : extraDataKey_[want.GetAction()]) { + wantMap[key] = GetParamFromWant(key, want); + } + wantMap[COMMON_EVENT_ACTION_NAME] = want.GetAction(); + OnDemandReasonExtraData extraData(data.GetCode(), data.GetData(), wantMap); - int64_t extraDataId = GenerateExtraDataIdLocked(); - extraDatas_[extraDataId] = extraData; - HILOGD("CommonEventCollect save extraData %{public}d", static_cast(extraDataId)); + extraDataId = GenerateExtraDataIdLocked(); + extraDatas_[extraDataId] = extraData; + HILOGD("CommonEventCollect save extraData %{public}d,n:%{public}zu", + static_cast(extraDataId), extraDatas_.size()); + } if (workHandler_ == nullptr) { HILOGI("CommonEventCollect workHandler is nullptr"); return -1;