summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchaoc <[email protected]>2023-12-27 15:00:05 +0800
committerchaoc <[email protected]>2023-12-27 15:00:05 +0800
commite78ad536eed22e21c899804464b4b0c504e8a1fb (patch)
tree5655178762cad1e9033bd49612eab362062cc717
parent1991801a2fc8e47007a3efd251fe2a43bef96c03 (diff)
style: add some issues found during code review and some suggestions for fixes
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfig.java2
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamConfigBuilder.java2
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamDomConfigProcessor.java2
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/config/GrootYamlParser.java1
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigBuilder.java2
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigLocator.java1
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/utils/DistributedLock.java5
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/utils/FileUtils.java2
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/utils/HttpClientUtils.java3
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/utils/JsonPathUtil.java1
-rw-r--r--groot-common/src/main/java/com/geedgenetworks/common/utils/ReflectionUtils.java1
11 files changed, 22 insertions, 0 deletions
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfig.java b/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfig.java
index 775ee13..f0edbd2 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfig.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfig.java
@@ -37,10 +37,12 @@ public class CommonConfig {
}
br.close();
} else {
+ // FIXME
System.out.println("udf-plugin配置文件不存在");
}
} catch (Exception e) {
+ // FIXME
e.printStackTrace();
}
}
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamConfigBuilder.java b/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamConfigBuilder.java
index 83d7b87..2e6a247 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamConfigBuilder.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamConfigBuilder.java
@@ -62,6 +62,7 @@ public class GrootStreamConfigBuilder extends AbstractYamlConfigBuilder {
} catch (Exception ex) {
throw new InvalidConfigurationException("Invalid YAML configuration", ex);
} finally {
+ // FIXME 试图关闭一个作用域不仅限于当前类的资源
IOUtil.closeResource(in);
}
YamlNode grootStreamRoot =
@@ -80,6 +81,7 @@ public class GrootStreamConfigBuilder extends AbstractYamlConfigBuilder {
}
public GrootStreamConfigBuilder setProperties(Properties properties) {
if (properties == null) {
+ // FIXME 试图修改函数实参
properties = System.getProperties();
}
setPropertiesInternal(properties);
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamDomConfigProcessor.java b/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamDomConfigProcessor.java
index 61c4855..d0c3fae 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamDomConfigProcessor.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/config/GrootStreamDomConfigProcessor.java
@@ -3,6 +3,7 @@ package com.geedgenetworks.common.config;
import com.hazelcast.internal.config.AbstractDomConfigProcessor;
import com.hazelcast.logging.ILogger;
import com.hazelcast.logging.Logger;
+import org.slf4j.LoggerFactory;
import org.w3c.dom.Node;
import java.util.ArrayList;
@@ -13,6 +14,7 @@ import java.util.Map;
import static com.hazelcast.internal.config.DomConfigHelper.*;
public class GrootStreamDomConfigProcessor extends AbstractDomConfigProcessor {
+ // TODO 日志规范:使用日志门面 slf4j 代替
private static final ILogger LOGGER = Logger.getLogger(GrootStreamDomConfigProcessor.class);
private final GrootStreamConfig config;
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/GrootYamlParser.java b/groot-common/src/main/java/com/geedgenetworks/common/config/GrootYamlParser.java
index 2fbb680..8aa9915 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/config/GrootYamlParser.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/config/GrootYamlParser.java
@@ -35,6 +35,7 @@ public final class GrootYamlParser {
for (int i = 0; i < keys.length - 1; i++) {
Object value = data.get(keys[i]);
+ // TODO 重复的分支
if (value == null || !(value instanceof Map)) {
return null;
}
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigBuilder.java b/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigBuilder.java
index 67e0a5a..3fb83da 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigBuilder.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigBuilder.java
@@ -22,6 +22,7 @@ public class UDFPluginConfigBuilder extends AbstractConfigBuilder {
public UDFPluginConfigBuilder(UDFPluginConfigLocator locator) {
if (locator == null) {
+ // FIXME 试图修改函数实参
locator = new UDFPluginConfigLocator();
locator.locateEverywhere();
}
@@ -42,6 +43,7 @@ public class UDFPluginConfigBuilder extends AbstractConfigBuilder {
throw new RuntimeException(e);
}
finally {
+ // FIXME 试图关闭外部资源
IOUtil.closeResource(this.in);
}
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigLocator.java b/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigLocator.java
index 49da576..e5d1974 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigLocator.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/config/UDFPluginConfigLocator.java
@@ -11,6 +11,7 @@ import java.util.Collections;
@Slf4j
public final class UDFPluginConfigLocator extends AbstractConfigLocator {
+ // TODO 使用 Collections.singletonList() 代替
public static Collection<String> ALL_ACCEPTED_SUFFIXES = Collections.unmodifiableList(Arrays.asList("plugins"));
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/utils/DistributedLock.java b/groot-common/src/main/java/com/geedgenetworks/common/utils/DistributedLock.java
index 0793115..56ba733 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/utils/DistributedLock.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/utils/DistributedLock.java
@@ -51,7 +51,9 @@ public class DistributedLock implements Lock, Watcher {
ROOT_LOCK, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
}
} catch (IOException | InterruptedException | KeeperException e) {
+ // TODO 异常处理
logger.error("Node already exists!");
+
}
}
@@ -65,6 +67,7 @@ public class DistributedLock implements Lock, Watcher {
@Override
public void lock() {
+ // FIXME exceptionList 任何时候都为空,没有被更新
if (exceptionList.size() > 0) {
throw new LockException(exceptionList.get(0));
}
@@ -145,9 +148,11 @@ public class DistributedLock implements Lock, Watcher {
Stat stat = zk.exists(ROOT_LOCK + "/" + prev, true);
if (stat != null) {
+ // FIXME 尝试修改一个并发环境下的变量,可能存在可见性的安全问题
this.countDownLatch = new CountDownLatch(1);
// 计数等待,若等到前一个节点消失,则precess中进行countDown,停止等待,获取锁
this.countDownLatch.await(waitTime, TimeUnit.MILLISECONDS);
+ // FIXME 等待前后对 latch 对象进行了重置,理论上 等待操作将永远超时,永远无法成功。
this.countDownLatch = null;
}
return true;
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/utils/FileUtils.java b/groot-common/src/main/java/com/geedgenetworks/common/utils/FileUtils.java
index 00a9a82..97d1196 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/utils/FileUtils.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/utils/FileUtils.java
@@ -70,6 +70,7 @@ public class FileUtils {
public static void createParentFile(File file) {
File parentFile = file.getParentFile();
if (null != parentFile && !parentFile.exists()) {
+ // FIXME 逻辑混乱,先创建了父文件夹?再创建父文件夹的父文件夹? 如果前者能创建成功则不需要后者,如果前者创建不成功也不会执行后者。
parentFile.mkdirs();
createParentFile(parentFile);
}
@@ -86,6 +87,7 @@ public class FileUtils {
file.delete();
}
+ // FIXME 当文件不存在时:仅仅创建了父文件夹?并没有创建文件!
if (!file.getParentFile().exists()) {
createParentFile(file);
}
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/utils/HttpClientUtils.java b/groot-common/src/main/java/com/geedgenetworks/common/utils/HttpClientUtils.java
index c68555f..fe75bb1 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/utils/HttpClientUtils.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/utils/HttpClientUtils.java
@@ -45,6 +45,7 @@ import java.util.Map;
public class HttpClientUtils {
/** 全局连接池对象 */
+ // FIXME 连接池并没有被使用!
private static final PoolingHttpClientConnectionManager CONN_MANAGER =
new PoolingHttpClientConnectionManager();
@@ -346,6 +347,7 @@ public class HttpClientUtils {
logger.error("Release Connection error:{}", e.getMessage());
}
}
+ // TODO return 代码块应先于 finally 代码块一步被压入方法栈
return result;
}
}
@@ -391,6 +393,7 @@ public class HttpClientUtils {
}
}
+ // FIXME 同上
return result;
}
}
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/utils/JsonPathUtil.java b/groot-common/src/main/java/com/geedgenetworks/common/utils/JsonPathUtil.java
index dcba58c..8a2f66f 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/utils/JsonPathUtil.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/utils/JsonPathUtil.java
@@ -13,6 +13,7 @@ import java.util.concurrent.ConcurrentHashMap;
* @date 2023/5/1917:51
*/
public class JsonPathUtil {
+ // TODO 建议使用日志门面
private static final Log logger = LogFactory.get();
private static Map<String, JSONPath> jsonPathMap = new ConcurrentHashMap<>(16);
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/utils/ReflectionUtils.java b/groot-common/src/main/java/com/geedgenetworks/common/utils/ReflectionUtils.java
index 007c55f..8430c07 100644
--- a/groot-common/src/main/java/com/geedgenetworks/common/utils/ReflectionUtils.java
+++ b/groot-common/src/main/java/com/geedgenetworks/common/utils/ReflectionUtils.java
@@ -12,6 +12,7 @@ public class ReflectionUtils {
Optional<Method> method = Optional.empty();
Method m;
+ // TODO 使用 getMethod + getDeclaredMethod 代替 循环 + getSuperclass
for (; clazz != null; clazz = clazz.getSuperclass()) {
try {
m = clazz.getDeclaredMethod(methodName, parameterTypes);