This is an automated email from the ASF dual-hosted git repository.
jinrongtong pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new cb09cf0c0 [ISSUE #5236] Fix ServiceProvider loading class (#5237)
cb09cf0c0 is described below
commit cb09cf0c026a9bd11918c4eb165db2f887f4a584
Author: RapperCL <[email protected]>
AuthorDate: Mon Oct 3 17:25:58 2022 +0800
[ISSUE #5236] Fix ServiceProvider loading class (#5237)
* fix duplicate class loading
* remove redundant
Co-authored-by: chenyong <[email protected]>
---
.../java/org/apache/rocketmq/common/utils/ServiceProvider.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git
a/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java
b/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java
index 30a6b808f..49f29a89d 100644
--- a/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java
+++ b/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java
@@ -105,24 +105,22 @@ public class ServiceProvider {
public static <T> List<T> load(String name, Class<?> clazz) {
LOG.info("Looking for a resource file of name [{}] ...", name);
- List<T> services = new ArrayList<T>();
+ List<T> services = new ArrayList<>();
try {
- ArrayList<String> names = new ArrayList<String>();
final InputStream is =
getResourceAsStream(getContextClassLoader(), name);
if (is != null) {
BufferedReader reader;
reader = new BufferedReader(new InputStreamReader(is,
StandardCharsets.UTF_8));
String serviceName = reader.readLine();
+ List<String> names = new ArrayList<>();
while (serviceName != null && !"".equals(serviceName)) {
LOG.info(
"Creating an instance as specified by file {} which
was present in the path of the context classloader.",
name);
if (!names.contains(serviceName)) {
names.add(serviceName);
+ services.add(initService(getContextClassLoader(),
serviceName, clazz));
}
-
- services.add((T) initService(getContextClassLoader(),
serviceName, clazz));
-
serviceName = reader.readLine();
}
reader.close();