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

fanjia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/seatunnel-web.git


The following commit(s) were added to refs/heads/main by this push:
     new f987ff38 [Bug] [Seatunnel-web] Validation messages are wrong (#186)
f987ff38 is described below

commit f987ff385d8fe8c00a3e7631c93823e13ebfbd82
Author: Mohammad Arshad <[email protected]>
AuthorDate: Mon Aug 19 07:21:40 2024 +0530

    [Bug] [Seatunnel-web] Validation messages are wrong (#186)
    
    * [Bug] [Seatunnel-web] Validation messages are wrong
    
    * Checked if debug is enabled before logging.
---
 .../org/apache/seatunnel/app/common/Result.java    | 13 ++++++++-
 .../app/utils/GlobalExceptionHandler.java          | 34 +++++++++++-----------
 .../server/common/SeatunnelErrorEnum.java          |  4 +--
 .../test/SeatunnelDatasourceControllerTest.java    |  4 ++-
 4 files changed, 34 insertions(+), 21 deletions(-)

diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/common/Result.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/common/Result.java
index 38dca30b..2f05a435 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/common/Result.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/common/Result.java
@@ -52,6 +52,12 @@ public class Result<T> {
         this.data = null;
     }
 
+    private Result(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+        this.data = null;
+    }
+
     public static <T> Result<T> success() {
         return new Result<>();
     }
@@ -72,11 +78,16 @@ public class Result<T> {
         return result;
     }
 
-    public static <T> Result<T> getFailure(SeatunnelException e) {
+    public static <T> Result<T> failure(SeatunnelException e) {
         Result<T> result = new Result<>(e);
         return result;
     }
 
+    public static <T> Result<T> failure(int code, String msg) {
+        Result<T> result = new Result<>(code, msg);
+        return result;
+    }
+
     public boolean isSuccess() {
         return OK.getCode() == this.code;
     }
diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/utils/GlobalExceptionHandler.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/utils/GlobalExceptionHandler.java
index 0dc4da7a..f7d22b7d 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/utils/GlobalExceptionHandler.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/utils/GlobalExceptionHandler.java
@@ -36,29 +36,21 @@ public class GlobalExceptionHandler {
 
     @ExceptionHandler(value = SeatunnelException.class)
     private Result<String> portalExceptionHandler(SeatunnelException e) {
-        logError(e);
-
-        //        final SeatunnelException seatunnelException =
-        //                Optional.ofNullable(e)
-        //
-        // .orElse(SeatunnelException.newInstance(SeatunnelErrorEnum.UNKNOWN));
-
-        final String message = e.getMessage();
-        final SeatunnelErrorEnum errorEnum = e.getErrorEnum();
-
-        return Result.failure(errorEnum, message);
+        logDebug(e);
+        return Result.failure(e);
     }
 
     @ExceptionHandler(value = DataSourcePluginException.class)
     private Result<String> dsHandler(DataSourcePluginException e) {
         logError(e);
-        final String message = e.getMessage();
-        return Result.failure(SeatunnelErrorEnum.INVALID_DATASOURCE, 
e.getMessage());
+        return Result.failure(
+                SeatunnelErrorEnum.INVALID_DATASOURCE.getCode(),
+                SeatunnelErrorEnum.INVALID_DATASOURCE.getMsg() + ". " + 
e.getMessage());
     }
 
     @ExceptionHandler(value = MissingServletRequestParameterException.class)
     private Result<String> missParam(MissingServletRequestParameterException 
e) {
-        logError(e);
+        logDebug(e);
         return Result.failure(SeatunnelErrorEnum.MISSING_PARAM, 
e.getParameterName());
     }
 
@@ -70,22 +62,30 @@ public class GlobalExceptionHandler {
 
     @ExceptionHandler(value = ExpiredJwtException.class)
     private Result<String> expiredJwtException(ExpiredJwtException e) {
-        logError(e);
+        logDebug(e);
         return Result.failure(SeatunnelErrorEnum.TOKEN_ILLEGAL, 
e.getMessage());
     }
 
     @ExceptionHandler(value = Exception.class)
     private Result<String> exceptionHandler(Exception e) {
         logError(e);
-        return Result.failure(SeatunnelErrorEnum.UNKNOWN, e.getMessage());
+        return Result.failure(
+                SeatunnelErrorEnum.UNKNOWN.getCode(),
+                SeatunnelErrorEnum.UNKNOWN.getMsg() + ". " + e.getMessage());
     }
 
     private void logError(Throwable throwable) {
         log.error(throwable.getMessage(), throwable);
     }
 
+    private void logDebug(Throwable throwable) {
+        if (log.isDebugEnabled()) {
+            log.debug(throwable.getMessage(), throwable);
+        }
+    }
+
     @ExceptionHandler(value = ParamValidationException.class)
     private Result<String> paramValidationHandler(SeatunnelException e) {
-        return Result.getFailure(e);
+        return Result.failure(e);
     }
 }
diff --git 
a/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
 
b/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
index dfd0cb33..b81cec09 100644
--- 
a/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
+++ 
b/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
@@ -59,7 +59,7 @@ public enum SeatunnelErrorEnum {
             99996, "unsupported operation", "This operation [%s] is not 
supported now."),
     HTTP_REQUEST_FAILED(99997, "http request failed", "Http request failed, 
url is %s"),
     ILLEGAL_STATE(99998, "illegal state", "%s"),
-    UNKNOWN(99999, "unknown exception", "Unknown exception"),
+    UNKNOWN(99999, "Unknown exception", "Unknown exception"),
 
     UNSUPPORTED_CONNECTOR_TYPE(
             30000,
@@ -124,7 +124,7 @@ public enum SeatunnelErrorEnum {
             1600000,
             "datasource can not be delete because it used by task",
             "datasource can not be delete because it used by task"),
-    INVALID_DATASOURCE(-70001, "Datasource [{0}] invalid", "datasource [{0}] 
invalid"),
+    INVALID_DATASOURCE(-70001, "Datasource invalid", "datasource [{0}] 
invalid"),
     MISSING_PARAM(1777000, "param miss [{0}]", "param miss [{0}]"),
     PARAM_CAN_NOT_BE_NULL(60018, "", "param [%s] can not be null or empty"),
     INVALID_PARAM(60019, "", "param [%s] is invalid. %s"),
diff --git 
a/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/SeatunnelDatasourceControllerTest.java
 
b/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/SeatunnelDatasourceControllerTest.java
index b928e0cc..13e2be88 100644
--- 
a/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/SeatunnelDatasourceControllerTest.java
+++ 
b/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/SeatunnelDatasourceControllerTest.java
@@ -24,6 +24,7 @@ import 
org.apache.seatunnel.app.domain.request.datasource.DatasourceReq;
 import org.apache.seatunnel.app.domain.response.PageInfo;
 import org.apache.seatunnel.app.domain.response.datasource.DatasourceDetailRes;
 import org.apache.seatunnel.app.domain.response.datasource.DatasourceRes;
+import org.apache.seatunnel.server.common.SeatunnelErrorEnum;
 
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
@@ -121,7 +122,8 @@ public class SeatunnelDatasourceControllerTest {
                 
seatunnelDatasourceControllerWrapper.getFakeSourceDatasourceReq(datasourceName);
         Result<String> result = 
seatunnelDatasourceControllerWrapper.createDatasource(req);
         assertTrue(result.isFailed());
-        assertEquals(60004, result.getCode());
+        
assertEquals(SeatunnelErrorEnum.DATASOURCE_NAME_ALREADY_EXISTS.getCode(), 
result.getCode());
+        assertEquals("datasource [" + datasourceName + "] already exists", 
result.getMsg());
     }
 
     @AfterAll

Reply via email to