You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/05/26 11:14:32 UTC

[incubator-iotdb] branch master updated: add status code in exception (#1266)

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

qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 5a5e36f  add status code in exception (#1266)
5a5e36f is described below

commit 5a5e36f93fd8052ca5f34a102c6a834b30012f40
Author: Jialin Qiao <qj...@mails.tsinghua.edu.cn>
AuthorDate: Tue May 26 19:14:23 2020 +0800

    add status code in exception (#1266)
    
    * add status code in exception
---
 docs/UserGuide/Client/Status Codes.md                       |  4 ++--
 docs/zh/UserGuide/Client/Status Codes.md                    |  4 ++--
 .../src/main/java/org/apache/iotdb/SessionExample.java      |  5 +++--
 .../iotdb/db/exception/metadata/MetadataException.java      |  3 +--
 .../exception/metadata/StorageGroupAlreadySetException.java |  5 ++++-
 .../src/main/java/org/apache/iotdb/rpc/RpcUtils.java        |  3 +--
 .../org/apache/iotdb/rpc/StatementExecutionException.java   | 13 +++++++++++++
 7 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/docs/UserGuide/Client/Status Codes.md b/docs/UserGuide/Client/Status Codes.md
index d59c4a6..eafdd0b 100644
--- a/docs/UserGuide/Client/Status Codes.md	
+++ b/docs/UserGuide/Client/Status Codes.md	
@@ -50,8 +50,8 @@ Here is a list of Status Code and related message:
 |203|INCOMPATIBLE_VERSION|Incompatible version|
 |298|NODE_DELETE_FAILED_ERROR|Failed while deleting node|
 |299|ALIAS_ALREADY_EXIST_ERROR|Alias already exists|
-|300|TIMESERIES_ALREADY_EXIST_ERROR|Timeseries already exists|
-|301|TIMESERIES_NOT_EXIST_ERROR|Timeseries does not exist|
+|300|PATH_ALREADY_EXIST_ERROR|Path already exists|
+|301|PATH_NOT_EXIST_ERROR|Path does not exist|
 |302|UNSUPPORTED_FETCH_METADATA_OPERATION_ERROR|Unsupported fetch metadata operation|
 |303|METADATA_ERROR|Meet error when dealing with metadata|
 |305|OUT_OF_TTL_ERROR|Insertion time is less than TTL time bound|
diff --git a/docs/zh/UserGuide/Client/Status Codes.md b/docs/zh/UserGuide/Client/Status Codes.md
index 61c1e66..de81671 100644
--- a/docs/zh/UserGuide/Client/Status Codes.md	
+++ b/docs/zh/UserGuide/Client/Status Codes.md	
@@ -50,8 +50,8 @@ try {
 |203|INCOMPATIBLE_VERSION|版本不兼容|
 |298|NODE_DELETE_FAILED_ERROR|删除节点失败|
 |299|ALIAS_ALREADY_EXIST_ERROR|路径别名已经存在|
-|300|TIMESERIES_ALREADY_EXIST_ERROR|时间序列已经存在|
-|301|TIMESERIES_NOT_EXIST_ERROR|时间序列不存在|
+|300|PATH_ALREADY_EXIST_ERROR|路径已经存在|
+|301|PATH_NOT_EXIST_ERROR|路径不存在|
 |302|UNSUPPORTED_FETCH_METADATA_OPERATION_ERROR|不支持的获取元数据操作|
 |303|METADATA_ERROR|处理元数据错误|
 |305|OUT_OF_TTL_ERROR|插入时间少于TTL时间边界|
diff --git a/example/session/src/main/java/org/apache/iotdb/SessionExample.java b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
index d28faf6..c677c89 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -25,6 +25,8 @@ import java.util.Map;
 import org.apache.iotdb.rpc.BatchExecutionException;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
 import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.rpc.TSStatusCode;
+import org.apache.iotdb.service.rpc.thrift.TSStatus;
 import org.apache.iotdb.session.Session;
 import org.apache.iotdb.session.SessionDataSet;
 import org.apache.iotdb.session.SessionDataSet.DataIterator;
@@ -46,9 +48,8 @@ public class SessionExample {
     try {
       session.setStorageGroup("root.sg1");
     } catch (StatementExecutionException e) {
-      if (!e.getMessage().contains("StorageGroupAlreadySetException")) {
+      if (e.getStatusCode() != TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode())
         throw e;
-      }
     }
 
     createTimeseries();
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java b/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
index b498219..4f220ff 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
@@ -34,8 +34,7 @@ public class MetadataException extends IoTDBException {
   }
 
   public MetadataException(Throwable cause, int errorCode) {
-    super(cause, TSStatusCode.METADATA_ERROR.getStatusCode());
-    this.errorCode = errorCode;
+    super(cause, errorCode);
   }
 
   public MetadataException(String msg) {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java b/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java
index b196309..86c5695 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java
@@ -19,11 +19,14 @@
 
 package org.apache.iotdb.db.exception.metadata;
 
+import org.apache.iotdb.rpc.TSStatusCode;
+
 public class StorageGroupAlreadySetException extends MetadataException {
 
   private static final long serialVersionUID = 9110669164701929779L;
 
   public StorageGroupAlreadySetException(String path) {
-    super(String.format("%s has already been set to storage group", path));
+    super(String.format("%s has already been set to storage group", path),
+        TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode());
   }
 }
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java b/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
index df2761e..db84839 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
@@ -42,8 +42,7 @@ public class RpcUtils {
    */
   public static void verifySuccess(TSStatus status) throws StatementExecutionException {
     if (status.code != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
-      throw new StatementExecutionException(String.format("%d: %s",
-          status.code, status.message));
+      throw new StatementExecutionException(status);
     }
   }
 
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java b/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java
index d7e09fc..bf1993d 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java
@@ -18,8 +18,17 @@
  */
 package org.apache.iotdb.rpc;
 
+import org.apache.iotdb.service.rpc.thrift.TSStatus;
+
 public class StatementExecutionException extends Exception{
 
+  private int statusCode;
+
+  public StatementExecutionException(TSStatus status) {
+    super(String.format("%d: %s", status.code, status.message));
+    this.statusCode = status.code;
+  }
+
   public StatementExecutionException(String reason) {
     super(reason);
   }
@@ -31,4 +40,8 @@ public class StatementExecutionException extends Exception{
   public StatementExecutionException(String message, Throwable cause) {
     super(message, cause);
   }
+
+  public int getStatusCode() {
+    return statusCode;
+  }
 }