This is an automated email from the ASF dual-hosted git repository.
chengpan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kyuubi.git
The following commit(s) were added to refs/heads/master by this push:
new 34bb1d4db [KYUUBI #4977] Log error message when REST API invocation
error occurs
34bb1d4db is described below
commit 34bb1d4dbe76e8719590e84482078d94f892f522
Author: Cheng Pan <[email protected]>
AuthorDate: Mon Jun 19 21:44:16 2023 +0800
[KYUUBI #4977] Log error message when REST API invocation error occurs
### _Why are the changes needed?_
Currently, there is no error message on Kyuubi server's log when REST API
invocation error occurs, and since we are building REST API, all response media
types should be JSON.
### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including
negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [x] [Run
test](https://kyuubi.readthedocs.io/en/master/contributing/code/testing.html#running-tests)
locally before make a pull request
Closes #4977 from pan3793/error-log.
Closes #4977
00c2b0c0f [Cheng Pan] Update
kyuubi-server/src/main/scala/org/apache/kyuubi/server/trino/api/api.scala
5fe00474f [Cheng Pan] trino
f988329f8 [Cheng Pan] nit
74f9ed762 [Cheng Pan] log error message for REST api invocation
Authored-by: Cheng Pan <[email protected]>
Signed-off-by: Cheng Pan <[email protected]>
---
.../src/main/scala/org/apache/kyuubi/server/api/api.scala | 10 ++++++----
.../main/scala/org/apache/kyuubi/server/trino/api/api.scala | 10 ++++++----
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git
a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/api.scala
b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/api.scala
index deadcf9ab..b56131542 100644
--- a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/api.scala
+++ b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/api.scala
@@ -25,6 +25,7 @@ import javax.ws.rs.ext.{ExceptionMapper, Provider}
import org.eclipse.jetty.server.handler.ContextHandler
+import org.apache.kyuubi.Logging
import org.apache.kyuubi.server.KyuubiRestFrontendService
private[api] trait ApiRequestContext {
@@ -39,18 +40,19 @@ private[api] trait ApiRequestContext {
}
@Provider
-class RestExceptionMapper extends ExceptionMapper[Exception] {
+class RestExceptionMapper extends ExceptionMapper[Exception] with Logging {
override def toResponse(exception: Exception): Response = {
+ warn("Error occurs on accessing REST API.", exception)
exception match {
case e: WebApplicationException =>
Response.status(e.getResponse.getStatus)
- .`type`(e.getResponse.getMediaType)
- .entity(e.getMessage)
+ .`type`(MediaType.APPLICATION_JSON)
+ .entity(Map("message" -> e.getMessage))
.build()
case e =>
Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.`type`(MediaType.APPLICATION_JSON)
- .entity(e.getMessage)
+ .entity(Map("message" -> e.getMessage))
.build()
}
}
diff --git
a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/trino/api/api.scala
b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/trino/api/api.scala
index 76f8a1ca3..50887dabd 100644
--- a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/trino/api/api.scala
+++ b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/trino/api/api.scala
@@ -25,6 +25,7 @@ import javax.ws.rs.ext.{ExceptionMapper, Provider}
import org.eclipse.jetty.server.handler.ContextHandler
+import org.apache.kyuubi.Logging
import org.apache.kyuubi.server.KyuubiTrinoFrontendService
private[api] trait ApiRequestContext {
@@ -39,18 +40,19 @@ private[api] trait ApiRequestContext {
}
@Provider
-class RestExceptionMapper extends ExceptionMapper[Exception] {
+class RestExceptionMapper extends ExceptionMapper[Exception] with Logging {
override def toResponse(exception: Exception): Response = {
+ warn("Error occurs on accessing Trino API.", exception)
exception match {
case e: WebApplicationException =>
Response.status(e.getResponse.getStatus)
- .`type`(e.getResponse.getMediaType)
- .entity(e.getMessage)
+ .`type`(MediaType.APPLICATION_JSON)
+ .entity(Map("message" -> e.getMessage))
.build()
case e =>
Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.`type`(MediaType.APPLICATION_JSON)
- .entity(e.getMessage)
+ .entity(Map("message" -> e.getMessage))
.build()
}
}