You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2022/08/10 06:08:37 UTC
[iotdb] branch master updated: [IOTDB-4067] Handle null pointer in getRegisteredNodeInfoList (#6930)
This is an automated email from the ASF dual-hosted git repository.
caogaofei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 6188f62c81 [IOTDB-4067] Handle null pointer in getRegisteredNodeInfoList (#6930)
6188f62c81 is described below
commit 6188f62c813506f4215cfbee18878a8b33732246
Author: Itami Sho <42...@users.noreply.github.com>
AuthorDate: Wed Aug 10 14:08:32 2022 +0800
[IOTDB-4067] Handle null pointer in getRegisteredNodeInfoList (#6930)
---
.../org/apache/iotdb/confignode/manager/NodeManager.java | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
index 4b5fa0bb38..cce00c155a 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
@@ -37,6 +37,7 @@ import org.apache.iotdb.confignode.consensus.response.DataNodeConfigurationResp;
import org.apache.iotdb.confignode.consensus.response.DataNodeRegisterResp;
import org.apache.iotdb.confignode.consensus.response.DataNodeToStatusResp;
import org.apache.iotdb.confignode.manager.load.LoadManager;
+import org.apache.iotdb.confignode.manager.load.heartbeat.INodeCache;
import org.apache.iotdb.confignode.persistence.NodeInfo;
import org.apache.iotdb.confignode.procedure.env.DataNodeRemoveHandler;
import org.apache.iotdb.confignode.rpc.thrift.TClearCacheReq;
@@ -223,6 +224,15 @@ public class NodeManager {
return dataNodeLocations;
}
+ private INodeCache getNodeCache(int nodeId) {
+ return getLoadManager().getNodeCacheMap().get(nodeId);
+ }
+
+ private String getNodeStatus(int nodeId) {
+ INodeCache nodeCache = getNodeCache(nodeId);
+ return nodeCache == null ? "Unknown" : nodeCache.getNodeStatus().getStatus();
+ }
+
public List<TDataNodeInfo> getRegisteredDataNodeInfoList() {
List<TDataNodeInfo> dataNodeInfoList = new ArrayList<>();
List<TDataNodeConfiguration> registeredDataNodes = this.getRegisteredDataNodes(-1);
@@ -232,8 +242,7 @@ public class NodeManager {
TDataNodeInfo info = new TDataNodeInfo();
int dataNodeId = dataNodeInfo.getLocation().getDataNodeId();
info.setDataNodeId(dataNodeId);
- info.setStatus(
- getLoadManager().getNodeCacheMap().get(dataNodeId).getNodeStatus().getStatus());
+ info.setStatus(getNodeStatus(dataNodeId));
info.setRpcAddresss(dataNodeInfo.getLocation().getClientRpcEndPoint().getIp());
info.setRpcPort(dataNodeInfo.getLocation().getClientRpcEndPoint().getPort());
info.setDataRegionNum(0);
@@ -253,8 +262,7 @@ public class NodeManager {
TConfigNodeInfo info = new TConfigNodeInfo();
int configNodeId = configNodeLocation.getConfigNodeId();
info.setConfigNodeId(configNodeId);
- info.setStatus(
- getLoadManager().getNodeCacheMap().get(configNodeId).getNodeStatus().getStatus());
+ info.setStatus(getNodeStatus(configNodeId));
info.setInternalAddress(configNodeLocation.getInternalEndPoint().getIp());
info.setInternalPort(configNodeLocation.getInternalEndPoint().getPort());
configNodeInfoList.add(info);