From 83757dae617f3ff5b0a61fc8985b859f28979974 Mon Sep 17 00:00:00 2001 From: Wayne Chu Date: Fri, 30 Apr 2021 08:55:22 +0800 Subject: [PATCH] perf: use iterator.remove() to remove modulesWithoutProvider (#6874) --- CHANGES.md | 1 + .../config/ApplicationConfigLoader.java | 22 +++++-------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b4d8f7e29e..d92a777607 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -31,6 +31,7 @@ Release Notes. * Fix: Some defensive codes didn't work in `PercentileFunction combine`. * CVE: fix Jetty vulnerability. https://nvd.nist.gov/vuln/detail/CVE-2019-17638 * Fix: MAL function would miss samples name after creating new samples. +* perf: use iterator.remove() to remove modulesWithoutProvider #### UI * Add logo for kong plugin. diff --git a/oap-server/server-bootstrap/src/main/java/org/apache/skywalking/oap/server/starter/config/ApplicationConfigLoader.java b/oap-server/server-bootstrap/src/main/java/org/apache/skywalking/oap/server/starter/config/ApplicationConfigLoader.java index 31c874dd1f..8bb299351a 100644 --- a/oap-server/server-bootstrap/src/main/java/org/apache/skywalking/oap/server/starter/config/ApplicationConfigLoader.java +++ b/oap-server/server-bootstrap/src/main/java/org/apache/skywalking/oap/server/starter/config/ApplicationConfigLoader.java @@ -20,10 +20,9 @@ package org.apache.skywalking.oap.server.starter.config; import java.io.FileNotFoundException; import java.io.Reader; -import java.util.HashSet; +import java.util.Iterator; import java.util.Map; import java.util.Properties; -import java.util.Set; import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.apm.util.PropertyPlaceholderHelper; import org.apache.skywalking.oap.server.library.module.ApplicationConfiguration; @@ -133,8 +132,9 @@ public class ApplicationConfigLoader implements ConfigLoader> moduleConfiguration) { - final Set modulesWithoutProvider = new HashSet<>(); - for (final Map.Entry> entry : moduleConfiguration.entrySet()) { + Iterator>> moduleIterator = moduleConfiguration.entrySet().iterator(); + while (moduleIterator.hasNext()) { + Map.Entry> entry = moduleIterator.next(); final String moduleName = entry.getKey(); final Map providerConfig = entry.getValue(); if (!providerConfig.containsKey(SELECTOR)) { @@ -159,19 +159,9 @@ public class ApplicationConfigLoader implements ConfigLoader { - final String module = e.getKey(); - final boolean shouldBeRemoved = modulesWithoutProvider.contains(module); - - if (shouldBeRemoved) { - log.info("Remove module {} without any provider", module); - } - - return shouldBeRemoved; - }); } private void overrideModuleSettings(ApplicationConfiguration configuration, String key, String value) { -- GitLab