You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2022/03/31 04:02:19 UTC

[skywalking] 01/01: Add `Error Prone Annotations` dependency to suppress warnings

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

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

commit 51e73c5b4beb212ca7a80688f97a6f9c51a5d62a
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Thu Mar 31 12:01:59 2022 +0800

    Add `Error Prone Annotations` dependency to suppress warnings
---
 .lift/config.toml                                  |  6 ++--
 CHANGES.md                                         |  1 +
 dist-material/release-docs/LICENSE                 |  1 +
 oap-server-bom/pom.xml                             |  6 ++++
 .../skywalking/oap/meter/analyzer/Analyzer.java    |  5 ++--
 .../skywalking/oal/rt/parser/AnalysisResult.java   |  3 +-
 .../skywalking/oal/rt/parser/OALScripts.java       |  3 +-
 .../oal/rt/parser/PersistenceColumns.java          | 11 +++----
 oap-server/pom.xml                                 |  9 ++++--
 .../zookeeper/ClusterModuleZookeeperProvider.java  |  3 +-
 .../plugin/zookeeper/SWInstanceSerializer.java     |  3 +-
 .../configuration/api/ConfigWatcherRegister.java   |  4 +--
 .../zookeeper/ZookeeperConfigWatcherRegister.java  | 34 ++++++++++++----------
 .../endpoint/EndpointCallRelationDispatcher.java   |  1 +
 .../oap/server/core/query/sql/Where.java           |  4 +--
 .../agent/kafka/provider/handler/LogHandler.java   |  2 --
 .../oap/server/library/module/BootstrapFlow.java   | 11 +++----
 .../server/library/server/ssl/PrivateKeyUtil.java  |  2 +-
 .../oap/server/library/util/ResourceUtils.java     |  3 +-
 .../oap/query/graphql/resolver/Mutation.java       |  5 +++-
 .../oap/query/graphql/resolver/Query.java          |  3 +-
 .../errorlog/ErrorLogParserListenerManager.java    |  4 +--
 .../performance/PerfDataParserListenerManager.java |  4 +--
 .../server/ReceiverGRPCHandlerRegister.java        |  4 +--
 .../influxdb/query/ProfileThreadSnapshotQuery.java |  2 +-
 .../storage/plugin/influxdb/query/TraceQuery.java  |  1 +
 .../jdbc/h2/dao/H2ProfileTaskLogQueryDAO.java      | 16 +++++-----
 .../oap/server/telemetry/api/HistogramMetrics.java |  2 +-
 .../prometheus/PrometheusMetricsCollector.java     |  2 +-
 .../known-oap-backend-dependencies.txt             |  2 +-
 30 files changed, 89 insertions(+), 68 deletions(-)

diff --git a/.lift/config.toml b/.lift/config.toml
index e579508..fe723bc 100644
--- a/.lift/config.toml
+++ b/.lift/config.toml
@@ -2,7 +2,9 @@ jdk11 = true
 ignoreRules = [ "THREAD_SAFETY_VIOLATION", "MissingSummary", "SameNameButDifferent", "NonAtomicVolatileUpdate", "EqualsGetClass"]
 setup = ".lift/setup.sh"
 ignoreFiles = """
-skywalking-ui/
+skywalking-ui/**
 **/target/**
-/dist-material/release-docs/
+/dist-material/release-docs/**
+test/e2e-v2/cases/**
+test/e2e-v2/java-test-service/**
 """
diff --git a/CHANGES.md b/CHANGES.md
index c8f9077..35a8365 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -150,6 +150,7 @@ NOTICE, this sharding concept is NOT just for splitting data into different data
 * Trim tag's key and value in log query.
 * Refactor IoTDB storage plugin, add IoTDBDataConverter and fix ModifyCollectionInEnhancedForLoop bug.
 * Bump up iotdb-session to 0.12.5.
+* Add `Error Prone Annotations` dependency to suppress warnings, which are not errors.
 
 #### UI
 
diff --git a/dist-material/release-docs/LICENSE b/dist-material/release-docs/LICENSE
index c69e7f8..20a2db6 100755
--- a/dist-material/release-docs/LICENSE
+++ b/dist-material/release-docs/LICENSE
@@ -335,6 +335,7 @@ The text of each license is the standard Apache 2.0 license.
     tsfile 0.12.5 https://github.com/apache/iotdb Apache 2.0
     libthrift 0.14.1: https://github.com/apache/thrift Apache 2.0
     j2objc 1.3: https://github.com/google/j2objc Apache 2.0
+    Error Prone Annotations 2.11.0 https://github.com/google/error-prone Apache 2.0
 
 ========================================================================
 MIT licenses
diff --git a/oap-server-bom/pom.xml b/oap-server-bom/pom.xml
index fee971f..9bde48c 100644
--- a/oap-server-bom/pom.xml
+++ b/oap-server-bom/pom.xml
@@ -30,6 +30,7 @@
     <properties>
         <slf4j.version>1.7.30</slf4j.version>
         <log4j.version>2.17.1</log4j.version>
+        <google.error_prone_annotations>2.11.0</google.error_prone_annotations>
         <graphql-java-tools.version>12.0.2</graphql-java-tools.version>
         <graphql-java.version>17.3</graphql-java.version>
         <graphql-java-extended-scalars.version>17.0</graphql-java-extended-scalars.version>
@@ -123,6 +124,11 @@
                 <version>${log4j.version}</version>
             </dependency>
             <dependency>
+                <groupId>com.google.errorprone</groupId>
+                <artifactId>error_prone_annotations</artifactId>
+                <version>${google.error_prone_annotations}</version>
+            </dependency>
+            <dependency>
                 <groupId>com.graphql-java-kickstart</groupId>
                 <artifactId>graphql-java-tools</artifactId>
                 <version>${graphql-java-tools.version}</version>
diff --git a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/Analyzer.java b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/Analyzer.java
index f4c1ef3..7608b16 100644
--- a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/Analyzer.java
+++ b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/Analyzer.java
@@ -92,8 +92,6 @@ public class Analyzer {
         return analyzer;
     }
 
-    private static final String FUNCTION_NAME_TEMP = "%s%s";
-
     private List<String> samples;
 
     private final String metricName;
@@ -250,7 +248,7 @@ public class Analyzer {
                               final String dataType,
                               final DownsamplingType downsamplingType) {
         String functionName = String.format(
-            FUNCTION_NAME_TEMP, downsamplingType.toString().toLowerCase(), StringUtils.capitalize(dataType));
+            "%s%s", downsamplingType.toString().toLowerCase(), StringUtils.capitalize(dataType));
         meterSystem.create(metricName, functionName, scopeType);
     }
 
@@ -272,6 +270,7 @@ public class Analyzer {
                     toService(requireNonNull(entity.getSourceServiceName()), entity.getLayer());
                     clientSide(entity);
                     break;
+                default:
             }
         } else {
             toService(requireNonNull(entity.getServiceName()), entity.getLayer());
diff --git a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/AnalysisResult.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/AnalysisResult.java
index acaa5e9..14b9f39 100644
--- a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/AnalysisResult.java
+++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/AnalysisResult.java
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.oal.rt.parser;
 
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 import lombok.Getter;
@@ -91,7 +92,7 @@ public class AnalysisResult {
 
     public void addPersistentField(String fieldName, String columnName, Class<?> type) {
         if (persistentFields == null) {
-            persistentFields = new LinkedList<>();
+            persistentFields = new ArrayList<>();
         }
         DataColumn dataColumn = new DataColumn(fieldName, columnName, type);
         persistentFields.add(dataColumn);
diff --git a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALScripts.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALScripts.java
index 08deadd..6af233b 100644
--- a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALScripts.java
+++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALScripts.java
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.oal.rt.parser;
 
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 import lombok.Getter;
@@ -28,7 +29,7 @@ public class OALScripts {
     private DisableCollection disableCollection;
 
     public OALScripts() {
-        metricsStmts = new LinkedList<>();
+        metricsStmts = new ArrayList<>();
         disableCollection = new DisableCollection();
     }
 }
diff --git a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceColumns.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceColumns.java
index 195e3f8..2df4a1a 100644
--- a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceColumns.java
+++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceColumns.java
@@ -18,15 +18,16 @@
 
 package org.apache.skywalking.oal.rt.parser;
 
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
 public class PersistenceColumns {
-    private List<PersistenceField> stringFields = new LinkedList<>();
-    private List<PersistenceField> longFields = new LinkedList<>();
-    private List<PersistenceField> doubleFields = new LinkedList<>();
-    private List<PersistenceField> intFields = new LinkedList<>();
-    private List<PersistenceField> objectFields = new LinkedList<>();
+    private List<PersistenceField> stringFields = new ArrayList<>();
+    private List<PersistenceField> longFields = new ArrayList<>();
+    private List<PersistenceField> doubleFields = new ArrayList<>();
+    private List<PersistenceField> intFields = new ArrayList<>();
+    private List<PersistenceField> objectFields = new ArrayList<>();
 
     public void addStringField(String fieldName) {
         stringFields.add(new PersistenceField(fieldName, "String"));
diff --git a/oap-server/pom.xml b/oap-server/pom.xml
index 4773dac..f80a53f 100755
--- a/oap-server/pom.xml
+++ b/oap-server/pom.xml
@@ -17,7 +17,8 @@
   ~
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
@@ -51,7 +52,7 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        
+
         <kafka-clients.version>2.4.1</kafka-clients.version>
         <spring-kafka-test.version>2.4.6.RELEASE</spring-kafka-test.version>
     </properties>
@@ -87,6 +88,10 @@
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.errorprone</groupId>
+            <artifactId>error_prone_annotations</artifactId>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>
diff --git a/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ClusterModuleZookeeperProvider.java b/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ClusterModuleZookeeperProvider.java
index 2768c71..542ce7d 100644
--- a/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ClusterModuleZookeeperProvider.java
+++ b/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ClusterModuleZookeeperProvider.java
@@ -19,6 +19,7 @@
 package org.apache.skywalking.oap.server.cluster.plugin.zookeeper;
 
 import com.google.common.collect.Lists;
+import java.nio.charset.StandardCharsets;
 import java.security.NoSuchAlgorithmException;
 import java.util.List;
 import org.apache.curator.RetryPolicy;
@@ -114,7 +115,7 @@ public class ClusterModuleZookeeperProvider extends ModuleProvider {
                 }
             };
             builder.aclProvider(provider);
-            builder.authorization(config.getSchema(), config.getExpression().getBytes());
+            builder.authorization(config.getSchema(), config.getExpression().getBytes(StandardCharsets.UTF_8));
         }
         client = builder.build();
 
diff --git a/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/SWInstanceSerializer.java b/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/SWInstanceSerializer.java
index 243fcea..ef879a1 100644
--- a/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/SWInstanceSerializer.java
+++ b/oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/SWInstanceSerializer.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.oap.server.cluster.plugin.zookeeper;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import java.nio.charset.StandardCharsets;
 import org.apache.curator.x.discovery.ServiceInstance;
 import org.apache.curator.x.discovery.details.InstanceSerializer;
 import org.apache.skywalking.oap.server.core.cluster.RemoteInstance;
@@ -30,7 +31,7 @@ public class SWInstanceSerializer implements InstanceSerializer<RemoteInstance>
 
     @Override
     public byte[] serialize(ServiceInstance<RemoteInstance> instance) throws Exception {
-        return gson.toJson(instance).getBytes();
+        return gson.toJson(instance).getBytes(StandardCharsets.UTF_8);
     }
 
     @Override
diff --git a/oap-server/server-configuration/configuration-api/src/main/java/org/apache/skywalking/oap/server/configuration/api/ConfigWatcherRegister.java b/oap-server/server-configuration/configuration-api/src/main/java/org/apache/skywalking/oap/server/configuration/api/ConfigWatcherRegister.java
index 604d2b1..e4ae9c8 100644
--- a/oap-server/server-configuration/configuration-api/src/main/java/org/apache/skywalking/oap/server/configuration/api/ConfigWatcherRegister.java
+++ b/oap-server/server-configuration/configuration-api/src/main/java/org/apache/skywalking/oap/server/configuration/api/ConfigWatcherRegister.java
@@ -208,7 +208,7 @@ public abstract class ConfigWatcherRegister implements DynamicConfigurationServi
 
     public abstract Optional<GroupConfigTable> readGroupConfig(Set<String> keys);
 
-    public class Register {
+    static class Register {
         private Map<String, WatcherHolder> register = new HashMap<>();
 
         private boolean containsKey(String key) {
@@ -255,7 +255,7 @@ public abstract class ConfigWatcherRegister implements DynamicConfigurationServi
     }
 
     @Getter
-    protected class WatcherHolder {
+    protected static class WatcherHolder {
         private ConfigChangeWatcher watcher;
         private final String key;
 
diff --git a/oap-server/server-configuration/configuration-zookeeper/src/main/java/org/apache/skywalking/oap/server/configuration/zookeeper/ZookeeperConfigWatcherRegister.java b/oap-server/server-configuration/configuration-zookeeper/src/main/java/org/apache/skywalking/oap/server/configuration/zookeeper/ZookeeperConfigWatcherRegister.java
index 74f459b..82eb497 100644
--- a/oap-server/server-configuration/configuration-zookeeper/src/main/java/org/apache/skywalking/oap/server/configuration/zookeeper/ZookeeperConfigWatcherRegister.java
+++ b/oap-server/server-configuration/configuration-zookeeper/src/main/java/org/apache/skywalking/oap/server/configuration/zookeeper/ZookeeperConfigWatcherRegister.java
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.oap.server.configuration.zookeeper;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Optional;
 import java.util.Set;
 import lombok.extern.slf4j.Slf4j;
@@ -54,7 +55,7 @@ public class ZookeeperConfigWatcherRegister extends ConfigWatcherRegister {
             ChildData data = this.childrenCache.getCurrentData(this.prefix + s);
             String itemValue = null;
             if (data != null && data.getData() != null) {
-                itemValue = new String(data.getData());
+                itemValue = new String(data.getData(), StandardCharsets.UTF_8);
             }
             table.add(new ConfigTable.ConfigItem(s, itemValue));
         });
@@ -66,21 +67,22 @@ public class ZookeeperConfigWatcherRegister extends ConfigWatcherRegister {
         GroupConfigTable table = new GroupConfigTable();
         keys.forEach(key -> {
             GroupConfigTable.GroupConfigItems groupConfigItems = new GroupConfigTable.GroupConfigItems(key);
-                try {
-                    client.getChildren().forPath(this.prefix + key).forEach(itemName -> {
-                        byte[] data = null;
-                        try {
-                            data = client.getData().forPath(this.prefix + key + "/" + itemName);
-                        } catch (Exception e) {
-                            log.error(e.getMessage(), e);
-                        }
-                        groupConfigItems.add(
-                            new ConfigTable.ConfigItem(itemName, data == null ? null : new String(data)));
-                    });
-                } catch (Exception e) {
-                    log.error(e.getMessage(), e);
-                }
-                table.addGroupConfigItems(groupConfigItems);
+            try {
+                client.getChildren().forPath(this.prefix + key).forEach(itemName -> {
+                    byte[] data = null;
+                    try {
+                        data = client.getData().forPath(this.prefix + key + "/" + itemName);
+                    } catch (Exception e) {
+                        log.error(e.getMessage(), e);
+                    }
+                    groupConfigItems.add(
+                        new ConfigTable.ConfigItem(
+                            itemName, data == null ? null : new String(data, StandardCharsets.UTF_8)));
+                });
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
+            table.addGroupConfigItems(groupConfigItems);
         });
         return Optional.of(table);
     }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointCallRelationDispatcher.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointCallRelationDispatcher.java
index 562b27e..eebd98e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointCallRelationDispatcher.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointCallRelationDispatcher.java
@@ -31,6 +31,7 @@ public class EndpointCallRelationDispatcher implements SourceDispatcher<Endpoint
             case SERVER:
                 serverSide(source);
                 break;
+            default:
         }
     }
 
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/sql/Where.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/sql/Where.java
index b48c75b..dd3053a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/sql/Where.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/sql/Where.java
@@ -18,11 +18,11 @@
 
 package org.apache.skywalking.oap.server.core.query.sql;
 
-import java.util.LinkedList;
+import java.util.ArrayList;
 import java.util.List;
 import lombok.Getter;
 
 @Getter
 public class Where {
-    private List<KeyValues> keyValues = new LinkedList<>();
+    private List<KeyValues> keyValues = new ArrayList<>();
 }
diff --git a/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/LogHandler.java b/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/LogHandler.java
index 76ff9ad..ac7e8a2 100644
--- a/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/LogHandler.java
+++ b/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/LogHandler.java
@@ -34,7 +34,6 @@ import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
 @Slf4j
 public class LogHandler extends AbstractKafkaHandler {
 
-    private final KafkaFetcherConfig config;
     private final HistogramMetrics histogram;
     private final CounterMetrics errorCounter;
     private final ILogAnalyzerService logAnalyzerService;
@@ -42,7 +41,6 @@ public class LogHandler extends AbstractKafkaHandler {
     public LogHandler(final ModuleManager moduleManager,
                       final KafkaFetcherConfig config) {
         super(moduleManager, config);
-        this.config = config;
         this.logAnalyzerService = moduleManager.find(LogAnalyzerModule.NAME)
                                                .provider()
                                                .getService(ILogAnalyzerService.class);
diff --git a/oap-server/server-library/library-module/src/main/java/org/apache/skywalking/oap/server/library/module/BootstrapFlow.java b/oap-server/server-library/library-module/src/main/java/org/apache/skywalking/oap/server/library/module/BootstrapFlow.java
index 7a9f6e9..c79ca98 100644
--- a/oap-server/server-library/library-module/src/main/java/org/apache/skywalking/oap/server/library/module/BootstrapFlow.java
+++ b/oap-server/server-library/library-module/src/main/java/org/apache/skywalking/oap/server/library/module/BootstrapFlow.java
@@ -19,22 +19,19 @@
 package org.apache.skywalking.oap.server.library.module;
 
 import java.util.ArrayList;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.skywalking.oap.server.library.util.CollectionUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
+@Slf4j
 class BootstrapFlow {
-    private static final Logger LOGGER = LoggerFactory.getLogger(BootstrapFlow.class);
-
     private Map<String, ModuleDefine> loadedModules;
     private List<ModuleProvider> startupSequence;
 
     BootstrapFlow(Map<String, ModuleDefine> loadedModules) throws CycleDependencyException, ModuleNotFoundException {
         this.loadedModules = loadedModules;
-        startupSequence = new LinkedList<>();
+        startupSequence = new ArrayList<>();
 
         makeSequence();
     }
@@ -43,7 +40,7 @@ class BootstrapFlow {
     void start(
         ModuleManager moduleManager) throws ModuleNotFoundException, ServiceNotProvidedException, ModuleStartException {
         for (ModuleProvider provider : startupSequence) {
-            LOGGER.info("start the provider {} in {} module.", provider.name(), provider.getModuleName());
+            log.info("start the provider {} in {} module.", provider.name(), provider.getModuleName());
             provider.requiredCheck(provider.getModule().services());
 
             provider.start();
diff --git a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/ssl/PrivateKeyUtil.java b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/ssl/PrivateKeyUtil.java
index 7128d2f..59b227e 100644
--- a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/ssl/PrivateKeyUtil.java
+++ b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/ssl/PrivateKeyUtil.java
@@ -67,7 +67,7 @@ public class PrivateKeyUtil {
             0x4, (byte) 0x82, (byte) ((pkcs1Length >> 8) & 0xff), (byte) (pkcs1Length & 0xff) // Octet string + length
         };
         StringBuilder pkcs8 = new StringBuilder(PKCS_8_PEM_HEADER);
-        pkcs8.append("\n").append(new String(Base64.getEncoder().encode(join(pkcs8Header, pkcs1Bytes))));
+        pkcs8.append("\n").append(new String(Base64.getEncoder().encode(join(pkcs8Header, pkcs1Bytes)), StandardCharsets.UTF_8));
         pkcs8.append("\n").append(PKCS_8_PEM_FOOTER);
         return new ByteArrayInputStream(pkcs8.toString().getBytes());
     }
diff --git a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/ResourceUtils.java b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/ResourceUtils.java
index 93b2620..343063b 100644
--- a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/ResourceUtils.java
+++ b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/ResourceUtils.java
@@ -24,6 +24,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -34,7 +35,7 @@ import java.util.Set;
 public class ResourceUtils {
 
     public static Reader read(String fileName) throws FileNotFoundException {
-        return new InputStreamReader(readToStream(fileName));
+        return new InputStreamReader(readToStream(fileName), StandardCharsets.UTF_8);
     }
 
     public static InputStream readToStream(String fileName) throws FileNotFoundException {
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Mutation.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Mutation.java
index d0ebe77..a6988f8 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Mutation.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Mutation.java
@@ -18,11 +18,14 @@
 
 package org.apache.skywalking.oap.query.graphql.resolver;
 
+import com.google.errorprone.annotations.Keep;
 import graphql.kickstart.tools.GraphQLMutationResolver;
+import org.apache.skywalking.oap.server.core.version.Version;
 
 /**
  * Root mutation resolver.
  */
 public class Mutation implements GraphQLMutationResolver {
-    private String version = "8.0";
+    @Keep // GraphQL picks this as version
+    private String version = Version.CURRENT.toString();
 }
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Query.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Query.java
index 565e2a1..1186c19 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Query.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/Query.java
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.oap.query.graphql.resolver;
 
+import com.google.errorprone.annotations.Keep;
 import graphql.kickstart.tools.GraphQLQueryResolver;
 import org.apache.skywalking.oap.server.core.version.Version;
 
@@ -25,6 +26,6 @@ import org.apache.skywalking.oap.server.core.version.Version;
  * Root Query Resolver.
  */
 public class Query implements GraphQLQueryResolver {
-    @SuppressWarnings("unused") // Used in GraphQL query
+    @Keep // GraphQL picks this as version
     private final String version = Version.CURRENT.toString();
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/ErrorLogParserListenerManager.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/ErrorLogParserListenerManager.java
index f7aea0f..47fd9d5 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/ErrorLogParserListenerManager.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/ErrorLogParserListenerManager.java
@@ -17,14 +17,14 @@
 
 package org.apache.skywalking.oap.server.receiver.browser.provider.parser.errorlog;
 
-import java.util.LinkedList;
+import java.util.ArrayList;
 import java.util.List;
 import lombok.Getter;
 import org.apache.skywalking.oap.server.receiver.browser.provider.parser.errorlog.listener.ErrorLogListenerFactory;
 
 public class ErrorLogParserListenerManager {
     @Getter
-    private final List<ErrorLogListenerFactory> errorLogAnalysisListeners = new LinkedList<>();
+    private final List<ErrorLogListenerFactory> errorLogAnalysisListeners = new ArrayList<>();
 
     public void add(final ErrorLogListenerFactory factory) {
         errorLogAnalysisListeners.add(factory);
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/performance/PerfDataParserListenerManager.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/performance/PerfDataParserListenerManager.java
index 1d369c2..46b8ae7 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/performance/PerfDataParserListenerManager.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/performance/PerfDataParserListenerManager.java
@@ -17,14 +17,14 @@
 
 package org.apache.skywalking.oap.server.receiver.browser.provider.parser.performance;
 
-import java.util.LinkedList;
+import java.util.ArrayList;
 import java.util.List;
 import lombok.Getter;
 import org.apache.skywalking.oap.server.receiver.browser.provider.parser.performance.listener.PerfDataListenerFactory;
 
 public class PerfDataParserListenerManager {
     @Getter
-    private final List<PerfDataListenerFactory> perfDataListenerFactories = new LinkedList<>();
+    private final List<PerfDataListenerFactory> perfDataListenerFactories = new ArrayList<>();
 
     public void add(final PerfDataListenerFactory factory) {
         perfDataListenerFactories.add(factory);
diff --git a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverGRPCHandlerRegister.java b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverGRPCHandlerRegister.java
index 9bacdb9..69c7f40 100644
--- a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverGRPCHandlerRegister.java
+++ b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverGRPCHandlerRegister.java
@@ -22,7 +22,7 @@ import io.grpc.BindableService;
 import io.grpc.ServerInterceptor;
 import io.grpc.ServerInterceptors;
 import io.grpc.ServerServiceDefinition;
-import java.util.LinkedList;
+import java.util.ArrayList;
 import java.util.List;
 import lombok.Setter;
 import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
@@ -31,7 +31,7 @@ public class ReceiverGRPCHandlerRegister implements GRPCHandlerRegister {
 
     @Setter
     private GRPCHandlerRegister grpcHandlerRegister;
-    private List<ServerInterceptor> interceptors = new LinkedList<>();
+    private List<ServerInterceptor> interceptors = new ArrayList<>();
 
     @Override
     public void addHandler(BindableService handler) {
diff --git a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/ProfileThreadSnapshotQuery.java b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/ProfileThreadSnapshotQuery.java
index 4adf3ce..f76b6f8 100644
--- a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/ProfileThreadSnapshotQuery.java
+++ b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/ProfileThreadSnapshotQuery.java
@@ -65,7 +65,7 @@ public class ProfileThreadSnapshotQuery implements IProfileThreadSnapshotQueryDA
         countQuery.and(eq(ProfileThreadSnapshotRecord.TASK_ID, taskId))
                   .and(eq(ProfileThreadSnapshotRecord.SEQUENCE, 0));
 
-        final LinkedList<String> segments = new LinkedList<>();
+        final List<String> segments = new ArrayList<>();
         QueryResult.Series series = client.queryForSingleSeries(countQuery);
         if (Objects.isNull(series)) {
             return Collections.emptyList();
diff --git a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TraceQuery.java b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TraceQuery.java
index b19eae6..42df362 100644
--- a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TraceQuery.java
+++ b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TraceQuery.java
@@ -121,6 +121,7 @@ public class TraceQuery implements ITraceQueryDAO {
             case SUCCESS:
                 recallQuery.and(eq(SegmentRecord.IS_ERROR, BooleanUtils.FALSE));
                 break;
+            default:
         }
         if (CollectionUtils.isNotEmpty(tags)) {
             WhereNested<WhereQueryImpl<SelectQueryImpl>> nested = recallQuery.andNested();
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2ProfileTaskLogQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2ProfileTaskLogQueryDAO.java
index 95757f8..3eca06a 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2ProfileTaskLogQueryDAO.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2ProfileTaskLogQueryDAO.java
@@ -18,20 +18,18 @@
 
 package org.apache.skywalking.oap.server.storage.plugin.jdbc.h2.dao;
 
-import org.apache.skywalking.oap.server.core.profiling.trace.ProfileTaskLogRecord;
-import org.apache.skywalking.oap.server.core.query.type.ProfileTaskLog;
-import org.apache.skywalking.oap.server.core.query.type.ProfileTaskLogOperationType;
-import org.apache.skywalking.oap.server.core.storage.profiling.trace.IProfileTaskLogQueryDAO;
-import org.apache.skywalking.oap.server.library.client.jdbc.JDBCClientException;
-import org.apache.skywalking.oap.server.library.client.jdbc.hikaricp.JDBCHikariCPClient;
-
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
-import java.util.LinkedList;
 import java.util.List;
+import org.apache.skywalking.oap.server.core.profiling.trace.ProfileTaskLogRecord;
+import org.apache.skywalking.oap.server.core.query.type.ProfileTaskLog;
+import org.apache.skywalking.oap.server.core.query.type.ProfileTaskLogOperationType;
+import org.apache.skywalking.oap.server.core.storage.profiling.trace.IProfileTaskLogQueryDAO;
+import org.apache.skywalking.oap.server.library.client.jdbc.JDBCClientException;
+import org.apache.skywalking.oap.server.library.client.jdbc.hikaricp.JDBCHikariCPClient;
 
 public class H2ProfileTaskLogQueryDAO implements IProfileTaskLogQueryDAO {
     private JDBCHikariCPClient h2Client;
@@ -50,7 +48,7 @@ public class H2ProfileTaskLogQueryDAO implements IProfileTaskLogQueryDAO {
 
         try (Connection connection = h2Client.getConnection()) {
             try (ResultSet resultSet = h2Client.executeQuery(connection, sql.toString(), condition.toArray(new Object[0]))) {
-                final LinkedList<ProfileTaskLog> tasks = new LinkedList<>();
+                final List<ProfileTaskLog> tasks = new ArrayList<>();
                 while (resultSet.next()) {
                     tasks.add(parseLog(resultSet));
                 }
diff --git a/oap-server/server-telemetry/telemetry-api/src/main/java/org/apache/skywalking/oap/server/telemetry/api/HistogramMetrics.java b/oap-server/server-telemetry/telemetry-api/src/main/java/org/apache/skywalking/oap/server/telemetry/api/HistogramMetrics.java
index a3215a2..dd78e37 100644
--- a/oap-server/server-telemetry/telemetry-api/src/main/java/org/apache/skywalking/oap/server/telemetry/api/HistogramMetrics.java
+++ b/oap-server/server-telemetry/telemetry-api/src/main/java/org/apache/skywalking/oap/server/telemetry/api/HistogramMetrics.java
@@ -36,7 +36,7 @@ public abstract class HistogramMetrics {
      */
     public abstract void observe(double value);
 
-    public class Timer implements Closeable {
+    public static class Timer implements Closeable {
         private final HistogramMetrics metrics;
         private final long startNanos;
         private double duration;
diff --git a/oap-server/server-telemetry/telemetry-prometheus/src/main/java/org/apache/skywalking/oap/server/telemetry/prometheus/PrometheusMetricsCollector.java b/oap-server/server-telemetry/telemetry-prometheus/src/main/java/org/apache/skywalking/oap/server/telemetry/prometheus/PrometheusMetricsCollector.java
index 382ce83..59cc6b8 100644
--- a/oap-server/server-telemetry/telemetry-prometheus/src/main/java/org/apache/skywalking/oap/server/telemetry/prometheus/PrometheusMetricsCollector.java
+++ b/oap-server/server-telemetry/telemetry-prometheus/src/main/java/org/apache/skywalking/oap/server/telemetry/prometheus/PrometheusMetricsCollector.java
@@ -30,7 +30,7 @@ import org.apache.skywalking.oap.server.telemetry.api.MetricsCollector;
 public class PrometheusMetricsCollector implements MetricsCollector {
     @Override public Iterable<MetricFamily> collect() {
         Enumeration<Collector.MetricFamilySamples> mfs = CollectorRegistry.defaultRegistry.metricFamilySamples();
-        List<MetricFamily> result = new LinkedList<>();
+        List<MetricFamily> result = new ArrayList<>();
         while (mfs.hasMoreElements()) {
             Collector.MetricFamilySamples metricFamilySamples = mfs.nextElement();
             List<MetricFamily.Sample> samples = new ArrayList<>(metricFamilySamples.samples.size());
diff --git a/tools/dependencies/known-oap-backend-dependencies.txt b/tools/dependencies/known-oap-backend-dependencies.txt
index 4da9f85..341a39a 100755
--- a/tools/dependencies/known-oap-backend-dependencies.txt
+++ b/tools/dependencies/known-oap-backend-dependencies.txt
@@ -39,7 +39,7 @@ curator-client-4.3.0.jar
 curator-framework-4.3.0.jar
 curator-recipes-4.3.0.jar
 curator-x-discovery-4.3.0.jar
-error_prone_annotations-2.3.2.jar
+error_prone_annotations-2.11.0.jar
 failsafe-2.3.4.jar
 failureaccess-1.0.1.jar
 flatbuffers-java-1.12.0.jar