diff --git a/services/service/src/discovery/discovery_manager.cpp b/services/service/src/discovery/discovery_manager.cpp index 87db35c87dca8f82e0c7917f46a19e81ebae38e3..a26cf7af14d7807632b82035ece290598cd9caa6 100644 --- a/services/service/src/discovery/discovery_manager.cpp +++ b/services/service/src/discovery/discovery_manager.cpp @@ -168,9 +168,11 @@ int32_t DiscoveryManager::StartDiscovering(const std::string &pkgName, StartDiscoveryTimer(pkgNameTemp); auto it = filterOptions.find(PARAM_KEY_FILTER_OPTIONS); - JsonObject jsonObject(it->second); - if (!jsonObject.IsDiscarded() && jsonObject.Contains(TYPE_MINE)) { - return StartDiscovering4MineLibary(pkgNameTemp, dmSubInfo, it->second); + if (it != filterOptions.end()) { + JsonObject jsonObject(it->second); + if (!jsonObject.IsDiscarded() && jsonObject.Contains(TYPE_MINE)) { + return StartDiscovering4MineLibary(pkgNameTemp, dmSubInfo, it->second); + } } int32_t ret = isStandardMetaNode ? StartDiscoveringNoMetaType(pkgNameTemp, dmSubInfo, discoverParam) : diff --git a/test/commonunittest/UTTest_discovery_manager.cpp b/test/commonunittest/UTTest_discovery_manager.cpp index d73b1f55fb93909aa00cc31101a5d5a8d038d6ae..1de0b1d66231fdde23d24cc74e4fb128f059fffd 100644 --- a/test/commonunittest/UTTest_discovery_manager.cpp +++ b/test/commonunittest/UTTest_discovery_manager.cpp @@ -141,6 +141,18 @@ HWTEST_F(DiscoveryManagerTest, StartDiscovering_003, testing::ext::TestSize.Leve EXPECT_EQ(ret, ERR_DM_DISCOVERY_REPEATED); } +HWTEST_F(DiscoveryManagerTest, StartDiscovering_004, testing::ext::TestSize.Level0) +{ + std::string pkgName = "pkgName_test1"; + std::map discoverParam; + std::map filterOptions; + discoverParam.insert(std::pair("SUBSCRIBE_ID", "test_value1")); + discoverParam.insert(std::pair("DISC_MEDIUM", "test_value2")); + filterOptions.insert(std::pair("PARAM_KEY_FILTER_OPTIONS", "test_value3")); + int32_t ret = manager->StartDiscovering(pkgName, discoverParam, filterOptions); + EXPECT_EQ(true, checkSoftbusRes(ret)); +} + HWTEST_F(DiscoveryManagerTest, StartDiscovering4MineLibary_001, testing::ext::TestSize.Level0) { std::string pkgName = "pkgName";