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 <[email protected]>
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);
 

Reply via email to