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 30a6b808f39..49f29a89d94 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 @@ protected static InputStream getResourceAsStream(ClassLoader loader, String name public static List load(String name, Class clazz) { LOG.info("Looking for a resource file of name [{}] ...", name); - List services = new ArrayList(); + List services = new ArrayList<>(); try { - ArrayList names = new ArrayList(); 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 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();