From b20e0c2659b126905c501ca759a7637d80c7da01 Mon Sep 17 00:00:00 2001 From: cheerful_ricky Date: Tue, 2 Sep 2025 17:25:06 +0800 Subject: [PATCH] remove recreate database in death recipient Signed-off-by: cheerful_ricky --- notification.gni | 5 +---- .../src/distributed_notification_manager.cpp | 5 ++++- .../distributed_notification_manager_branch_test.cpp | 12 ++++++++++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/notification.gni b/notification.gni index fbecbd4c0..98566afbc 100644 --- a/notification.gni +++ b/notification.gni @@ -34,7 +34,7 @@ test_path = "${component_path}/test" tools_path = "${component_path}/tools" service_fuzz_test_path = "distributed_notification_service/distributed_notification_service" -distributed_notification_supported = false +distributed_notification_supported = true subsystem_name = "notification" component_external_deps = [ "ability_base:base", @@ -89,9 +89,6 @@ declare_args() { !defined(global_parts_info.resourceschedule_device_standby)) { standby_enable = false } - if (target_cpu == "arm") { - distributed_notification_supported = true - } if (defined(global_parts_info) && !defined(global_parts_info.multimedia_player_framework)) { player_framework = false diff --git a/services/distributed/src/distributed_notification_manager.cpp b/services/distributed/src/distributed_notification_manager.cpp index ab12fcb26..15c8434c3 100644 --- a/services/distributed/src/distributed_notification_manager.cpp +++ b/services/distributed/src/distributed_notification_manager.cpp @@ -484,7 +484,10 @@ ErrCode DistributedNotificationManager::GetLocalDeviceInfo(DistributedDatabase:: ErrCode DistributedNotificationManager::OnDistributedKvStoreDeathRecipient() { ANS_LOGD("start"); - database_ = std::make_shared(databaseCb_, deviceCb_); + if (database_ == nullptr) { + ANS_LOGE("database_ is invalid."); + return ERR_ANS_DISTRIBUTED_OPERATION_FAILED; + } if (!database_->RecreateDistributedDB()) { ANS_LOGE("RecreateDistributedDB failed."); return ERR_ANS_DISTRIBUTED_OPERATION_FAILED; diff --git a/services/distributed/test/unittest/distributed_notification_manager_branch_test/distributed_notification_manager_branch_test.cpp b/services/distributed/test/unittest/distributed_notification_manager_branch_test/distributed_notification_manager_branch_test.cpp index 5e3b74ebf..8d1a3c8c0 100755 --- a/services/distributed/test/unittest/distributed_notification_manager_branch_test/distributed_notification_manager_branch_test.cpp +++ b/services/distributed/test/unittest/distributed_notification_manager_branch_test/distributed_notification_manager_branch_test.cpp @@ -326,5 +326,17 @@ HWTEST_F(DistributedNotificationManagerBranchTest, DistributedNotificationManage EXPECT_EQ( distributedManager_->OnDistributedKvStoreDeathRecipient(), ERR_ANS_DISTRIBUTED_OPERATION_FAILED); } + +/** + * @tc.name : DistributedNotificationManager_01900 + * @tc.number : DistributedNotificationManager_01900 + * @tc.desc : test OnDistributedKvStoreDeathRecipient and database_ is nullptr. + */ +HWTEST_F(DistributedNotificationManagerBranchTest, DistributedNotificationManager_01900, Function | SmallTest | Level1) +{ + distributedManager_->database_ = nullptr; + EXPECT_EQ( + distributedManager_->OnDistributedKvStoreDeathRecipient(), ERR_ANS_DISTRIBUTED_OPERATION_FAILED); +} } // namespace Notification } // namespace OHOS \ No newline at end of file -- Gitee