diff --git a/CHANGES.md b/CHANGES.md index b4d8f7e29edba0db350fa9ad6ba70469086313df..d92a7776072c18362f9f9010a6b4976cef635cec 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 31c874dd1fc54a1af430485aaa4aeb8f6d19fab7..8bb299351af5cdb4da8dd2e5c20ed8eb0b8b34ba 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) {