This is an automated email from the ASF dual-hosted git repository.
jackietien 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 ed87567e56b Fix possible NPE while executing show cluster or show
cluster details
ed87567e56b is described below
commit ed87567e56bfd0001476aa3b22c42ba13bb46c44
Author: Jackie Tien <[email protected]>
AuthorDate: Sat Sep 2 08:36:02 2023 +0800
Fix possible NPE while executing show cluster or show cluster details
---
.../config/metadata/ShowClusterDetailsTask.java | 54 ++++++++++++++++++----
.../execution/config/metadata/ShowClusterTask.java | 30 ++++++++++--
2 files changed, 70 insertions(+), 14 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterDetailsTask.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterDetailsTask.java
index 65b7b3cf8a0..7c072de0742 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterDetailsTask.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterDetailsTask.java
@@ -62,8 +62,16 @@ public class ShowClusterDetailsTask implements IConfigTask {
builder.getTimeColumnBuilder().writeLong(0L);
builder.getColumnBuilder(0).writeInt(nodeId);
builder.getColumnBuilder(1).writeBinary(new Binary(NODE_TYPE_CONFIG_NODE));
- builder.getColumnBuilder(2).writeBinary(new Binary(nodeStatus));
- builder.getColumnBuilder(3).writeBinary(new Binary(internalAddress));
+ if (nodeStatus == null) {
+ builder.getColumnBuilder(2).appendNull();
+ } else {
+ builder.getColumnBuilder(2).writeBinary(new Binary(nodeStatus));
+ }
+ if (internalAddress == null) {
+ builder.getColumnBuilder(3).appendNull();
+ } else {
+ builder.getColumnBuilder(3).writeBinary(new Binary(internalAddress));
+ }
builder.getColumnBuilder(4).writeInt(internalPort);
builder.getColumnBuilder(5).writeBinary(new
Binary(Integer.toString(configConsensusPort)));
builder.getColumnBuilder(6).writeBinary(new Binary(""));
@@ -71,8 +79,16 @@ public class ShowClusterDetailsTask implements IConfigTask {
builder.getColumnBuilder(8).writeBinary(new Binary(""));
builder.getColumnBuilder(9).writeBinary(new Binary(""));
builder.getColumnBuilder(10).writeBinary(new Binary(""));
- builder.getColumnBuilder(11).writeBinary(new
Binary(versionInfo.getVersion()));
- builder.getColumnBuilder(12).writeBinary(new
Binary(versionInfo.getBuildInfo()));
+ if (versionInfo == null || versionInfo.getVersion() == null) {
+ builder.getColumnBuilder(11).appendNull();
+ } else {
+ builder.getColumnBuilder(11).writeBinary(new
Binary(versionInfo.getVersion()));
+ }
+ if (versionInfo == null || versionInfo.getBuildInfo() == null) {
+ builder.getColumnBuilder(12).appendNull();
+ } else {
+ builder.getColumnBuilder(12).writeBinary(new
Binary(versionInfo.getBuildInfo()));
+ }
builder.declarePosition();
}
@@ -92,17 +108,37 @@ public class ShowClusterDetailsTask implements IConfigTask
{
builder.getTimeColumnBuilder().writeLong(0L);
builder.getColumnBuilder(0).writeInt(nodeId);
builder.getColumnBuilder(1).writeBinary(new Binary(NODE_TYPE_DATA_NODE));
- builder.getColumnBuilder(2).writeBinary(new Binary(nodeStatus));
- builder.getColumnBuilder(3).writeBinary(new Binary(internalAddress));
+ if (nodeStatus == null) {
+ builder.getColumnBuilder(2).appendNull();
+ } else {
+ builder.getColumnBuilder(2).writeBinary(new Binary(nodeStatus));
+ }
+ if (internalAddress == null) {
+ builder.getColumnBuilder(3).appendNull();
+ } else {
+ builder.getColumnBuilder(3).writeBinary(new Binary(internalAddress));
+ }
builder.getColumnBuilder(4).writeInt(internalPort);
builder.getColumnBuilder(5).writeBinary(new Binary(""));
- builder.getColumnBuilder(6).writeBinary(new Binary(rpcAddress));
+ if (rpcAddress == null) {
+ builder.getColumnBuilder(6).appendNull();
+ } else {
+ builder.getColumnBuilder(6).writeBinary(new Binary(rpcAddress));
+ }
builder.getColumnBuilder(7).writeBinary(new
Binary(Integer.toString(rpcPort)));
builder.getColumnBuilder(8).writeBinary(new
Binary(Integer.toString(dataConsensusPort)));
builder.getColumnBuilder(9).writeBinary(new
Binary(Integer.toString(schemaConsensusPort)));
builder.getColumnBuilder(10).writeBinary(new
Binary(Integer.toString(mppPort)));
- builder.getColumnBuilder(11).writeBinary(new
Binary(versionInfo.getVersion()));
- builder.getColumnBuilder(12).writeBinary(new
Binary(versionInfo.getBuildInfo()));
+ if (versionInfo == null || versionInfo.getVersion() == null) {
+ builder.getColumnBuilder(11).appendNull();
+ } else {
+ builder.getColumnBuilder(11).writeBinary(new
Binary(versionInfo.getVersion()));
+ }
+ if (versionInfo == null || versionInfo.getBuildInfo() == null) {
+ builder.getColumnBuilder(12).appendNull();
+ } else {
+ builder.getColumnBuilder(12).writeBinary(new
Binary(versionInfo.getBuildInfo()));
+ }
builder.declarePosition();
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterTask.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterTask.java
index 65ebb459a92..7e85fa62d64 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterTask.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowClusterTask.java
@@ -67,12 +67,32 @@ public class ShowClusterTask implements IConfigTask {
TNodeVersionInfo versionInfo) {
builder.getTimeColumnBuilder().writeLong(0L);
builder.getColumnBuilder(0).writeInt(nodeId);
- builder.getColumnBuilder(1).writeBinary(new Binary(nodeType));
- builder.getColumnBuilder(2).writeBinary(new Binary(nodeStatus));
- builder.getColumnBuilder(3).writeBinary(new Binary(hostAddress));
+ if (nodeType == null) {
+ builder.getColumnBuilder(1).appendNull();
+ } else {
+ builder.getColumnBuilder(1).writeBinary(new Binary(nodeType));
+ }
+ if (nodeStatus == null) {
+ builder.getColumnBuilder(2).appendNull();
+ } else {
+ builder.getColumnBuilder(2).writeBinary(new Binary(nodeStatus));
+ }
+ if (hostAddress == null) {
+ builder.getColumnBuilder(3).appendNull();
+ } else {
+ builder.getColumnBuilder(3).writeBinary(new Binary(hostAddress));
+ }
builder.getColumnBuilder(4).writeInt(port);
- builder.getColumnBuilder(5).writeBinary(new
Binary(versionInfo.getVersion()));
- builder.getColumnBuilder(6).writeBinary(new
Binary(versionInfo.getBuildInfo()));
+ if (versionInfo == null || versionInfo.getVersion() == null) {
+ builder.getColumnBuilder(5).appendNull();
+ } else {
+ builder.getColumnBuilder(5).writeBinary(new
Binary(versionInfo.getVersion()));
+ }
+ if (versionInfo == null || versionInfo.getBuildInfo() == null) {
+ builder.getColumnBuilder(6).appendNull();
+ } else {
+ builder.getColumnBuilder(6).writeBinary(new
Binary(versionInfo.getBuildInfo()));
+ }
builder.declarePosition();
}