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() {