From 55059ee3315e8216d905e3d2c9a6e5a58f09096d Mon Sep 17 00:00:00 2001 From: MengYao Date: Sun, 15 Jun 2025 22:23:46 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MengYao --- .../app/src/kvstore_meta_manager.cpp | 8 +- .../service/rdb/rdb_service_impl.cpp | 3 + .../service/test/BUILD.gn | 2 - .../service/test/cloud_data_test.cpp | 2 +- .../test/mock/meta_data_manager_mock.cpp | 5 + .../test/mock/meta_data_manager_mock.h | 2 - .../service/test/rdb_service_impl_test.cpp | 273 ++++++++++++++++++ .../test/udmf_service_impl_mock_test.cpp | 2 +- 8 files changed, 286 insertions(+), 11 deletions(-) diff --git a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp index c2477b585..790e03030 100644 --- a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp +++ b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp @@ -151,11 +151,9 @@ void KvStoreMetaManager::InitMetaData() localData.dataDir = metaDBDirectory_; localData.schema = ""; localData.isPublic = true; - if (!(MetaDataManager::GetInstance().SaveMeta(data.GetKeyWithoutPath(), data) && - MetaDataManager::GetInstance().SaveMeta(data.GetKey(), data, true) && - MetaDataManager::GetInstance().SaveMeta(data.GetKeyLocal(), localData, true))) { - ZLOGE("save meta fail"); - } + MetaDataManager::GetInstance().SaveMeta(data.GetKeyWithoutPath(), data); + MetaDataManager::GetInstance().SaveMeta(data.GetKey(), data, true); + MetaDataManager::GetInstance().SaveMeta(data.GetKeyLocal(), localData, true); std::string localUuid; DeviceMetaData deviceMeta; if (MetaDataManager::GetInstance().LoadMeta(deviceMeta.GetKey(), deviceMeta, true)) { diff --git a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp index 191ee6bcc..d0ffa6fe5 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp @@ -1742,6 +1742,9 @@ int32_t RdbServiceImpl::VerifyPromiseInfo(const RdbSyncerParam ¶m) auto tokenId = IPCSkeleton::GetCallingTokenID(); auto uid = IPCSkeleton::GetCallingUid(); meta.user = param.user_; + StoreMetaMapping metaMapping(meta); + MetaDataManager::GetInstance().LoadMeta(metaMapping.GetKey(), metaMapping, true); + meta.dataDir = metaMapping.dataDir; StoreMetaDataLocal localMeta; auto isCreated = MetaDataManager::GetInstance().LoadMeta(meta.GetKeyLocal(), localMeta, true); if (!isCreated) { diff --git a/services/distributeddataservice/service/test/BUILD.gn b/services/distributeddataservice/service/test/BUILD.gn index 1c59fedb1..9dd995e6c 100644 --- a/services/distributeddataservice/service/test/BUILD.gn +++ b/services/distributeddataservice/service/test/BUILD.gn @@ -69,7 +69,6 @@ ohos_unittest("CloudDataTest") { "${data_service_path}/service/cloud/sync_manager.cpp", "${data_service_path}/service/cloud/sync_strategies/network_sync_strategy.cpp", "${data_service_path}/service/test/mock/checker_mock.cpp", - "${data_service_path}/service/test/mock/meta_data_manager_mock.cpp", "cloud_data_test.cpp", ] @@ -129,7 +128,6 @@ ohos_unittest("CloudServiceImplTest") { "${data_service_path}/service/cloud/sync_manager.cpp", "${data_service_path}/service/cloud/sync_strategies/network_sync_strategy.cpp", "${data_service_path}/service/test/mock/checker_mock.cpp", - "${data_service_path}/service/test/mock/meta_data_manager_mock.cpp", "cloud_service_impl_test.cpp", ] diff --git a/services/distributeddataservice/service/test/cloud_data_test.cpp b/services/distributeddataservice/service/test/cloud_data_test.cpp index 46b922090..c9a6e00fa 100644 --- a/services/distributeddataservice/service/test/cloud_data_test.cpp +++ b/services/distributeddataservice/service/test/cloud_data_test.cpp @@ -340,7 +340,7 @@ HWTEST_F(CloudDataTest, GetSchema, TestSize.Level1) auto event = std::make_unique(CloudEvent::GET_SCHEMA, storeInfo); EventCenter::GetInstance().PostEvent(std::move(event)); auto ret = MetaDataManager::GetInstance().LoadMeta(cloudInfo.GetSchemaKey(TEST_CLOUD_BUNDLE), schemaMeta, true); - ASSERT_FALSE(ret); + ASSERT_TRUE(ret); } /** diff --git a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp index f30af0a31..634760740 100644 --- a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp +++ b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp @@ -35,6 +35,11 @@ OHOS::DistributedData::MetaDataManager::~MetaDataManager() { } +bool OHOS::DistributedData::MetaDataManager::LoadMeta(const std::string &key, Serializable &value, bool isLocal) +{ + return BMetaDataManager::metaDataManager->LoadMeta(key, value, isLocal); +} + template<> bool OHOS::DistributedData::MetaDataManager::LoadMeta( const std::string &prefix, std::vector &values, bool isLocal) diff --git a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h index 4ac1fcb36..6db1bf937 100644 --- a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h +++ b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h @@ -26,7 +26,6 @@ namespace OHOS::DistributedData { class BMetaDataManager { public: virtual bool LoadMeta(const std::string &, Serializable &, bool) = 0; - virtual bool SaveMeta(const std::string &, const Serializable &, bool) = 0; BMetaDataManager() = default; virtual ~BMetaDataManager() = default; static inline std::shared_ptr metaDataManager = nullptr; @@ -34,7 +33,6 @@ public: class MetaDataManagerMock : public BMetaDataManager { public: MOCK_METHOD(bool, LoadMeta, (const std::string &, Serializable &, bool), (override)); - MOCK_METHOD(bool, SaveMeta, (const std::string &, const Serializable &, bool), (override)); }; template class BMetaData { diff --git a/services/distributeddataservice/service/test/rdb_service_impl_test.cpp b/services/distributeddataservice/service/test/rdb_service_impl_test.cpp index b223515bf..06771403f 100644 --- a/services/distributeddataservice/service/test/rdb_service_impl_test.cpp +++ b/services/distributeddataservice/service/test/rdb_service_impl_test.cpp @@ -55,6 +55,7 @@ public: static void SetUpTestCase(void); static void TearDownTestCase(void); static void InitMetaData(); + static void InitMapping(StoreMetaMapping &meta); void SetUp(); void TearDown(); protected: @@ -83,6 +84,14 @@ void RdbServiceImplTest::InitMetaData() metaData_.dataDir = DirectoryManager::GetInstance().GetStorePath(metaData_) + "/" + TEST_STORE; } +void RdbServiceImplTest::InitMapping(StoreMetaMapping &metaMapping) +{ + metaMapping.deviceId = DmAdapter::GetInstance().GetLocalDevice().uuid; + metaMapping.user = "100"; + metaMapping.bundleName = "bundleName"; + metaMapping.storeId = "storeName"; +} + void RdbServiceImplTest::InitMetaDataManager() { MetaDataManager::GetInstance().Initialize(dbStoreMock_, nullptr, ""); @@ -1800,5 +1809,269 @@ HWTEST_F(RdbServiceImplTest, Delete_001, TestSize.Level1) auto errCode = service.Delete(param); EXPECT_EQ(errCode, RDB_ERROR); } + +/** + * @tc.name: RegisterEvent_001 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_001, TestSize.Level1) +{ + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "RegisterEvent_bundleName"; + storeInfo.storeName = "RegisterEvent_storeName"; + storeInfo.user = 100; + storeInfo.path = "RegisterEvent_path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC +} + +/** + * @tc.name: RegisterEvent_002 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_002, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); +} + + +/** + * @tc.name: RegisterEvent_003 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_003, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + metaMapping.cloudPath ="path"; + metaMapping.dataDir ="path"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + StoreMetaData meta(metaMapping); + meta.dataDir ="path1"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), metaMapping, true), true); + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true), true); +} + +/** + * @tc.name: RegisterEvent_004 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_004, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + metaMapping.cloudPath ="path"; + metaMapping.dataDir ="path"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + StoreMetaData meta(metaMapping); + meta.storeType = StoreMetaData::STORE_KV_BEGIN; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), metaMapping, true), true); + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true), true); +} + +/** + * @tc.name: RegisterEvent_005 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_005, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + metaMapping.cloudPath ="path"; + metaMapping.dataDir ="path"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + StoreMetaData meta(metaMapping); + + meta.storeType = StoreMetaData::STORE_OBJECT_BEGIN; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), metaMapping, true), true); + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true), true); +} + +/** + * @tc.name: RegisterEvent_006 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_006, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + metaMapping.cloudPath ="path"; + metaMapping.dataDir ="path"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + StoreMetaData meta(metaMapping); + meta.storeType = StoreMetaData::STORE_RELATIONAL_BEGIN; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), metaMapping, true), true); + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true), true); +} + +/** + * @tc.name: RegisterEvent_007 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_007, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + metaMapping.cloudPath ="path"; + metaMapping.dataDir ="path"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + StoreMetaData meta(metaMapping); + meta.storeType = StoreMetaData::STORE_RELATIONAL_END; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), metaMapping, true), true); + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true), true); +} + +/** + * @tc.name: RegisterEvent_008 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_008, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + metaMapping.cloudPath ="path"; + metaMapping.dataDir ="path"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + StoreMetaData meta(metaMapping); + meta.dataDir = "path1"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), metaMapping, true), true); + + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true), true); +} + +/** + * @tc.name: RegisterEvent_009 + * @tc.desc: Test Delete when param is invalid. + * @tc.type: FUNC + */ +HWTEST_F(RdbServiceImplTest, RegisterEvent_009, TestSize.Level1) +{ + StoreMetaMapping metaMapping; + InitMapping(metaMapping); + metaMapping.cloudPath ="path"; + metaMapping.dataDir ="path"; + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(metaMapping.GetKey(), metaMapping, true), true); + + StoreMetaData meta(metaMapping); + EXPECT_EQ(MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), metaMapping, true), true); + RdbServiceImpl service; + DistributedData::StoreInfo storeInfo; + storeInfo.bundleName = "bundleName"; + storeInfo.storeName = "storeName"; + storeInfo.user = 100; + storeInfo.path = "path"; + auto event = std::make_unique(CloudEvent::CLOUD_SYNC, storeInfo); + EXPECT_NE(event, nullptr); + auto result = EventCenter::GetInstance().PostEvent(move(event)); + EXPECT_EQ(result, 1); // CODE_SYNC + + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(metaMapping.GetKey(), true), true); + EXPECT_EQ(MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true), true); +} + } // namespace DistributedRDBTest } // namespace OHOS::Test \ No newline at end of file diff --git a/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp b/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp index dac0fb614..c782a4346 100644 --- a/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp +++ b/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp @@ -97,7 +97,7 @@ HWTEST_F(UdmfServiceImplMockTest, IsNeedMetaSyncTest001, TestSize.Level0) .WillOnce(testing::Return(true)) .WillOnce(testing::Return(true)); isNeedSync = udmfServiceImpl.IsNeedMetaSync(meta, devices); - EXPECT_EQ(isNeedSync, true); + EXPECT_EQ(isNeedSync, false); } /** -- Gitee From 02c3c11fefa63ce596f09d14c8f01cb1d3fe34bf Mon Sep 17 00:00:00 2001 From: MengYao Date: Sun, 15 Jun 2025 22:26:15 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MengYao --- .../distributeddataservice/app/src/installer/installer_impl.cpp | 1 - services/distributeddataservice/app/src/kvstore_data_service.cpp | 1 - 2 files changed, 2 deletions(-) diff --git a/services/distributeddataservice/app/src/installer/installer_impl.cpp b/services/distributeddataservice/app/src/installer/installer_impl.cpp index 0e6901245..ecb548549 100644 --- a/services/distributeddataservice/app/src/installer/installer_impl.cpp +++ b/services/distributeddataservice/app/src/installer/installer_impl.cpp @@ -86,7 +86,6 @@ void InstallEventSubscriber::OnUninstall(const std::string &bundleName, int32_t ZLOGI("storeMetaData uninstalled bundleName:%{public}s storeId:%{public}s, userId:%{public}d, " "appIndex:%{public}d", bundleName.c_str(), Anonymous::Change(meta.storeId).c_str(), userId, appIndex); MetaDataManager::GetInstance().DelMeta(meta.GetKeyWithoutPath()); - MetaDataManager::GetInstance().DelMeta(meta.GetKey()); MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true); MetaDataManager::GetInstance().DelMeta(meta.GetKeyLocal(), true); MetaDataManager::GetInstance().DelMeta(meta.GetSecretKey(), true); diff --git a/services/distributeddataservice/app/src/kvstore_data_service.cpp b/services/distributeddataservice/app/src/kvstore_data_service.cpp index 198f5cd96..7957362b6 100644 --- a/services/distributeddataservice/app/src/kvstore_data_service.cpp +++ b/services/distributeddataservice/app/src/kvstore_data_service.cpp @@ -1117,7 +1117,6 @@ int32_t KvStoreDataService::ClearAppStorage(const std::string &bundleName, int32 if (meta.instanceId == appIndex && !meta.appId.empty() && !meta.storeId.empty()) { ZLOGI("StoreMetaData data cleared bundleName:%{public}s, stordId:%{public}s, appIndex:%{public}d", bundleName.c_str(), Anonymous::Change(meta.storeId).c_str(), appIndex); - MetaDataManager::GetInstance().DelMeta(meta.GetKey()); MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true); MetaDataManager::GetInstance().DelMeta(meta.GetKeyLocal(), true); MetaDataManager::GetInstance().DelMeta(meta.GetSecretKey(), true); -- Gitee From d858cf3b49daf06ac3ac864b23a42c03c6f1de6a Mon Sep 17 00:00:00 2001 From: MengYao Date: Sun, 15 Jun 2025 23:07:11 +0800 Subject: [PATCH 3/4] fix bug Signed-off-by: MengYao --- .../distributeddataservice/app/src/kvstore_data_service.cpp | 2 +- .../distributeddataservice/app/src/kvstore_meta_manager.cpp | 2 +- .../framework/include/metadata/store_meta_data.h | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/services/distributeddataservice/app/src/kvstore_data_service.cpp b/services/distributeddataservice/app/src/kvstore_data_service.cpp index 7957362b6..03e30a1e7 100644 --- a/services/distributeddataservice/app/src/kvstore_data_service.cpp +++ b/services/distributeddataservice/app/src/kvstore_data_service.cpp @@ -1117,7 +1117,7 @@ int32_t KvStoreDataService::ClearAppStorage(const std::string &bundleName, int32 if (meta.instanceId == appIndex && !meta.appId.empty() && !meta.storeId.empty()) { ZLOGI("StoreMetaData data cleared bundleName:%{public}s, stordId:%{public}s, appIndex:%{public}d", bundleName.c_str(), Anonymous::Change(meta.storeId).c_str(), appIndex); - MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true); + MetaDataManager::GetInstance().DelMeta(meta.GetKeyWithoutPath(), true); MetaDataManager::GetInstance().DelMeta(meta.GetKeyLocal(), true); MetaDataManager::GetInstance().DelMeta(meta.GetSecretKey(), true); MetaDataManager::GetInstance().DelMeta(meta.GetStrategyKey()); diff --git a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp index 790e03030..1b785ff30 100644 --- a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp +++ b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp @@ -719,7 +719,7 @@ void KvStoreMetaManager::UpdateStoreMetaMapping(const std::string &newUuid, cons auto oldKey = meta.GetKey(); meta.deviceId = newUuid; MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), meta, true); - MetaDataManager::GetInstance().DelMeta(oldKey); + MetaDataManager::GetInstance().DelMeta(oldKey, true); } } diff --git a/services/distributeddataservice/framework/include/metadata/store_meta_data.h b/services/distributeddataservice/framework/include/metadata/store_meta_data.h index 240a55e60..daa3f89c5 100644 --- a/services/distributeddataservice/framework/include/metadata/store_meta_data.h +++ b/services/distributeddataservice/framework/include/metadata/store_meta_data.h @@ -21,7 +21,6 @@ #include "store/store_info.h" namespace OHOS::DistributedData { -struct StoreMetaMapping; struct API_EXPORT StoreMetaData : public Serializable { // record meta version for compatible, should update when modify store meta data structure. static constexpr uint32_t CURRENT_VERSION = 0x03000006; -- Gitee From 9956654d803a69b97a2d1d2d9bacb0da5109c290 Mon Sep 17 00:00:00 2001 From: MengYao Date: Mon, 16 Jun 2025 15:28:53 +0800 Subject: [PATCH 4/4] fix bug Signed-off-by: MengYao --- .../distributeddataservice/app/src/kvstore_data_service.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/distributeddataservice/app/src/kvstore_data_service.cpp b/services/distributeddataservice/app/src/kvstore_data_service.cpp index 03e30a1e7..f4cdf88e9 100644 --- a/services/distributeddataservice/app/src/kvstore_data_service.cpp +++ b/services/distributeddataservice/app/src/kvstore_data_service.cpp @@ -1117,7 +1117,8 @@ int32_t KvStoreDataService::ClearAppStorage(const std::string &bundleName, int32 if (meta.instanceId == appIndex && !meta.appId.empty() && !meta.storeId.empty()) { ZLOGI("StoreMetaData data cleared bundleName:%{public}s, stordId:%{public}s, appIndex:%{public}d", bundleName.c_str(), Anonymous::Change(meta.storeId).c_str(), appIndex); - MetaDataManager::GetInstance().DelMeta(meta.GetKeyWithoutPath(), true); + MetaDataManager::GetInstance().DelMeta(meta.GetKeyWithoutPath()); + MetaDataManager::GetInstance().DelMeta(meta.GetKey(), true); MetaDataManager::GetInstance().DelMeta(meta.GetKeyLocal(), true); MetaDataManager::GetInstance().DelMeta(meta.GetSecretKey(), true); MetaDataManager::GetInstance().DelMeta(meta.GetStrategyKey()); -- Gitee