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