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 a42f2b4  Fix template restart bug (#3525)
a42f2b4 is described below

commit a42f2b422c23843b275c8dc3cf12d5c4ae7d1393
Author: Potato <[email protected]>
AuthorDate: Mon Jul 12 17:19:49 2021 +0800

    Fix template restart bug (#3525)
---
 server/src/main/java/org/apache/iotdb/db/metadata/MManager.java   | 7 +++++--
 .../test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java | 8 ++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index e0aa34d..1968453 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -804,10 +804,13 @@ public class MManager {
 
   public MeasurementMNode[] getMNodes(PartialPath deviceId, String[] 
measurements)
       throws MetadataException {
-    MNode deviceNode = getNodeByPath(deviceId);
     MeasurementMNode[] mNodes = new MeasurementMNode[measurements.length];
     for (int i = 0; i < mNodes.length; i++) {
-      mNodes[i] = ((MeasurementMNode) deviceNode.getChild(measurements[i]));
+      try {
+        mNodes[i] = (MeasurementMNode) 
getNodeByPath(deviceId.concatNode(measurements[i]));
+      } catch (PathNotExistException ignored) {
+        logger.warn("{} does not exist in {}", measurements[i], deviceId);
+      }
       if (mNodes[i] == null && 
!IoTDBDescriptor.getInstance().getConfig().isEnablePartialInsert()) {
         throw new MetadataException(measurements[i] + " does not exist in " + 
deviceId);
       }
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 e7d9fb7..1022cf9 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
@@ -876,6 +876,14 @@ public class MManagerBasicTest {
     }
 
     assertTrue(allSchema.isEmpty());
+
+    MeasurementMNode[] mNodes =
+        manager.getMNodes(new PartialPath("root.sg1.d1"), new String[] 
{"s11"});
+    assertNotNull(mNodes[0]);
+    assertEquals(mNodes[0].getSchema(), s11);
+
+    mNodes = manager.getMNodes(new PartialPath("root.sg1.d1"), new String[] 
{"s100"});
+    assertNull(mNodes[0]);
   }
 
   private CreateTemplatePlan getCreateTemplatePlan() {

Reply via email to