You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2020/11/22 13:34:18 UTC
[iotdb] 01/01: [IOTDB-1021] Fix NullPointerException when showing
child paths of non-existent path
This is an automated email from the ASF dual-hosted git repository.
sunzesong pushed a commit to branch jira-1021
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a8dea41f18bed093979f85d893736668351bbc08
Author: samperson1997 <sz...@mails.tsinghua.edu.cn>
AuthorDate: Sun Nov 22 21:33:42 2020 +0800
[IOTDB-1021] Fix NullPointerException when showing child paths of non-existent path
---
server/src/main/java/org/apache/iotdb/db/metadata/MTree.java | 3 +++
.../src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java | 4 +++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index 5e6a2bc..88e8f13 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@ -1124,6 +1124,9 @@ public class MTree implements Serializable {
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
private void findChildNodePathInNextLevel(
MNode node, String[] nodes, int idx, String parent, Set<String> res, int length) {
+ if (node == null) {
+ return;
+ }
String nodeReg = MetaUtils.getNodeRegByIdx(idx, nodes);
if (!nodeReg.contains(PATH_WILDCARD)) {
if (idx == length) {
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
index f583b46..0a0106a 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
@@ -405,7 +405,8 @@ public class MManagerBasicTest {
"[root.laptop.b1.d1, root.laptop.b1.d2, root.vehicle.b1.d0, root.vehicle.b1.d2, root.vehicle.b1.d3]",
"[root.laptop.b1.d1, root.laptop.b1.d2]",
"[root.vehicle.b1.d0, root.vehicle.b1.d2, root.vehicle.b1.d3, root.vehicle.b2.d0]",
- "[root.laptop.b1.d1.s0, root.laptop.b1.d1.s1, root.laptop.b1.d2.s0, root.laptop.b2.d1.s1, root.laptop.b2.d1.s3, root.laptop.b2.d2.s2]"
+ "[root.laptop.b1.d1.s0, root.laptop.b1.d1.s1, root.laptop.b1.d2.s0, root.laptop.b2.d1.s1, root.laptop.b2.d1.s3, root.laptop.b2.d2.s2]",
+ "[]"
};
try {
@@ -441,6 +442,7 @@ public class MManagerBasicTest {
assertEquals(res[5], manager.getChildNodePathInNextLevel(new PartialPath("root.l*.b1")).toString());
assertEquals(res[6], manager.getChildNodePathInNextLevel(new PartialPath("root.v*.*")).toString());
assertEquals(res[7], manager.getChildNodePathInNextLevel(new PartialPath("root.l*.b*.*")).toString());
+ assertEquals(res[8], manager.getChildNodePathInNextLevel(new PartialPath("root.laptopp")).toString());
} catch (MetadataException e) {
e.printStackTrace();
fail(e.getMessage());