This is an automated email from the ASF dual-hosted git repository.

wankai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 57746c24d3 chore: Fix NPE if no TopN rules (#13320)
57746c24d3 is described below

commit 57746c24d3fd831835a3709ea3078fa26928f54e
Author: Wan Kai <wankai...@foxmail.com>
AuthorDate: Tue Jun 17 16:00:01 2025 +0800

    chore: Fix NPE if no TopN rules (#13320)
---
 .../oap/server/storage/plugin/banyandb/BanyanDBConfigLoader.java | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConfigLoader.java
 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConfigLoader.java
index 0104aa1177..61bd45697b 100644
--- 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConfigLoader.java
+++ 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConfigLoader.java
@@ -38,15 +38,13 @@ import static 
org.apache.skywalking.oap.server.library.util.YamlConfigLoaderUtil
 @Slf4j
 public class BanyanDBConfigLoader {
     private final ModuleProvider moduleProvider;
-    private BanyanDBStorageConfig config;
+    private final BanyanDBStorageConfig config;
     private final Yaml yaml;
-    private final Yaml topNYaml;
 
     public BanyanDBConfigLoader(final ModuleProvider moduleProvider) {
         this.moduleProvider = moduleProvider;
         this.config = new BanyanDBStorageConfig();
         this.yaml = new Yaml();
-        this.topNYaml = new Yaml();
     }
 
     public BanyanDBStorageConfig loadConfig() throws ModuleStartException {
@@ -199,11 +197,14 @@ public class BanyanDBConfigLoader {
         } catch (FileNotFoundException e) {
             throw new ModuleStartException("Cannot find the BanyanDB topN 
configuration file [bydb-topn.yml].", e);
         }
-        Map<String, List<Map<String, ?>>> configMap = 
yaml.loadAs(applicationReader, Map.class);
+        Map<String, List<Map<String, ?>>> configMap = new 
Yaml().loadAs(applicationReader, Map.class);
         if (configMap == null) {
             return;
         }
         List<Map<String, ?>> topNConfig = configMap.get("TopN-Rules");
+        if (topNConfig == null) {
+            return;
+        }
         for (Map<String, ?> rule : topNConfig) {
             TopN topN = new TopN();
             var name = rule.get("name");

Reply via email to