This is an automated email from the ASF dual-hosted git repository.

haonan 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 2fbfa556d0 Fix SchemaTree SearchDeviceSchema NPE (#6176)
2fbfa556d0 is described below

commit 2fbfa556d0a19c92c0d1fbbbf3cab9bd31e7feae
Author: Haonan <[email protected]>
AuthorDate: Tue Jun 7 10:25:22 2022 +0800

    Fix SchemaTree SearchDeviceSchema NPE (#6176)
---
 .../apache/iotdb/db/mpp/common/schematree/SchemaTree.java   |  4 ++++
 .../iotdb/db/mpp/common/schematree/SchemaTreeTest.java      | 13 +++++++++++++
 2 files changed, 17 insertions(+)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTree.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTree.java
index a1ee32b437..8c3e307b58 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTree.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTree.java
@@ -115,6 +115,10 @@ public class SchemaTree {
       cur = cur.getChild(nodes[i]);
     }
 
+    if (cur == null) {
+      return null;
+    }
+
     List<SchemaMeasurementNode> measurementNodeList = new ArrayList<>();
     SchemaNode node;
     for (String measurement : measurements) {
diff --git 
a/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTreeTest.java
 
b/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTreeTest.java
index 23a5446c91..0861ffe1e2 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTreeTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/SchemaTreeTest.java
@@ -537,6 +537,19 @@ public class SchemaTreeTest {
     testSchemaTree(schemaTree.getRoot());
   }
 
+  @Test
+  public void testMergeSchemaTreeAndSearchDeviceSchemaInfo() throws Exception {
+    SchemaTree schemaTree = new SchemaTree();
+    for (SchemaTree tree : generateSchemaTrees()) {
+      schemaTree.mergeSchemaTree(tree);
+    }
+    PartialPath devicePath = new PartialPath("root.sg.d99999");
+    List<String> measurements = new ArrayList<>();
+    measurements.add("s1");
+    measurements.add("s2");
+    schemaTree.searchDeviceSchemaInfo(devicePath, measurements);
+  }
+
   private List<SchemaTree> generateSchemaTrees() throws Exception {
     List<SchemaTree> schemaTreeList = new ArrayList<>();
     SchemaTree schemaTree;

Reply via email to