You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by zy...@apache.org on 2023/04/28 06:53:24 UTC

[iotdb] branch master updated: [IOTDB-5834] Fix unclear error msg when querying nonexistent schema template (#9738)

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

zyk 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 17711231b8 [IOTDB-5834] Fix unclear error msg when querying nonexistent schema template (#9738)
17711231b8 is described below

commit 17711231b881f4fb3bca7a7a5c324df172721d39
Author: Marcos_Zyk <38...@users.noreply.github.com>
AuthorDate: Fri Apr 28 14:53:17 2023 +0800

    [IOTDB-5834] Fix unclear error msg when querying nonexistent schema template (#9738)
---
 .../iotdb/confignode/manager/ClusterSchemaManager.java      | 13 ++++++++-----
 .../iotdb/db/metadata/template/ClusterTemplateManager.java  |  7 +++----
 .../apache/iotdb/db/metadata/template/ITemplateManager.java |  3 ++-
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
index 7f21222f62..1c1921f41d 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
@@ -741,11 +741,14 @@ public class ClusterSchemaManager {
       }
     }
 
-    Template template =
-        clusterSchemaInfo
-            .getTemplate(new GetSchemaTemplatePlan(templateExtendInfo.getTemplateName()))
-            .getTemplateList()
-            .get(0);
+    TemplateInfoResp resp =
+        clusterSchemaInfo.getTemplate(
+            new GetSchemaTemplatePlan(templateExtendInfo.getTemplateName()));
+    if (resp.getStatus().getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+      return resp.getStatus();
+    }
+
+    Template template = resp.getTemplateList().get(0);
     boolean needExtend = false;
     for (String measurement : templateExtendInfo.getMeasurements()) {
       if (!template.hasSchema(measurement)) {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/template/ClusterTemplateManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/template/ClusterTemplateManager.java
index bfbb1644ca..94898c97ab 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/template/ClusterTemplateManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/template/ClusterTemplateManager.java
@@ -183,7 +183,7 @@ public class ClusterTemplateManager implements ITemplateManager {
   }
 
   @Override
-  public Template getTemplate(String name) {
+  public Template getTemplate(String name) throws IoTDBException {
     try (ConfigNodeClient configNodeClient =
         CONFIG_NODE_CLIENT_MANAGER.borrowClient(ConfigNodeInfo.CONFIG_REGION_ID)) {
       TGetTemplateResp resp = configNodeClient.getTemplate(name);
@@ -193,10 +193,9 @@ public class ClusterTemplateManager implements ITemplateManager {
         template.deserialize(ByteBuffer.wrap(templateBytes));
         return template;
       } else {
-        throw new RuntimeException(
-            new IoTDBException(resp.status.getMessage(), resp.status.getCode()));
+        throw new IoTDBException(resp.status.getMessage(), resp.status.getCode());
       }
-    } catch (Exception e) {
+    } catch (ClientManagerException | TException e) {
       throw new RuntimeException(
           new IoTDBException(
               "get template info error.", TSStatusCode.UNDEFINED_TEMPLATE.getStatusCode()));
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/template/ITemplateManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/template/ITemplateManager.java
index a3088b2adf..2f90152227 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/template/ITemplateManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/template/ITemplateManager.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.db.metadata.template;
 
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.mpp.plan.statement.metadata.template.CreateSchemaTemplateStatement;
 import org.apache.iotdb.tsfile.utils.Pair;
@@ -48,7 +49,7 @@ public interface ITemplateManager {
    * @param name
    * @return Template
    */
-  Template getTemplate(String name);
+  Template getTemplate(String name) throws IoTDBException;
 
   Template getTemplate(int id);