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;