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);