From a06128fa3df4c76a9edcb5f6d2e0b60478e3f1b7 Mon Sep 17 00:00:00 2001 From: avibhstarburst Date: Tue, 15 Apr 2025 17:23:11 +0300 Subject: [PATCH] Use GlueException.statusCode when available --- .../java/io/trino/aws/proxy/glue/rest/TrinoGlueResource.java | 3 ++- .../io/trino/aws/proxy/glue/TestingGlueRequestHandler.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/trino-aws-proxy-glue/src/main/java/io/trino/aws/proxy/glue/rest/TrinoGlueResource.java b/trino-aws-proxy-glue/src/main/java/io/trino/aws/proxy/glue/rest/TrinoGlueResource.java index b1b5e266..19dbfa3b 100644 --- a/trino-aws-proxy-glue/src/main/java/io/trino/aws/proxy/glue/rest/TrinoGlueResource.java +++ b/trino-aws-proxy-glue/src/main/java/io/trino/aws/proxy/glue/rest/TrinoGlueResource.java @@ -86,8 +86,9 @@ public Response gluePost(@Context Request request, @Context SigningMetadata sign catch (GlueException e) { requestLoggingSession.logException(e); - return Response.status(BAD_REQUEST) + return Response.status(e.statusCode() != 0 ? e.statusCode() : BAD_REQUEST.getStatusCode()) .header(X_AMZN_ERROR_TYPE, e.getClass().getSimpleName() + ":" + e.getMessage()) + .entity(e) .build(); } catch (Exception e) { diff --git a/trino-aws-proxy-glue/src/test/java/io/trino/aws/proxy/glue/TestingGlueRequestHandler.java b/trino-aws-proxy-glue/src/test/java/io/trino/aws/proxy/glue/TestingGlueRequestHandler.java index 0366f56f..9486f368 100644 --- a/trino-aws-proxy-glue/src/test/java/io/trino/aws/proxy/glue/TestingGlueRequestHandler.java +++ b/trino-aws-proxy-glue/src/test/java/io/trino/aws/proxy/glue/TestingGlueRequestHandler.java @@ -94,6 +94,7 @@ public GlueResponse handleRequest(ParsedGlueRequest request, SigningMetadata sig // TODO: add more cases case GetDatabaseRequest getDatabaseRequest -> throw EntityNotFoundException.builder() + .statusCode(400) .message("'%s.%s' not found".formatted(getDatabaseRequest.catalogId(), getDatabaseRequest.name())) .build();