[ 
https://issues.apache.org/jira/browse/DRILL-8540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18038948#comment-18038948
 ] 

ASF GitHub Bot commented on DRILL-8540:
---------------------------------------

cgivre commented on code in PR #3031:
URL: https://github.com/apache/drill/pull/3031#discussion_r2535173544


##########
exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillErrorHandler.java:
##########
@@ -18,25 +18,49 @@
 package org.apache.drill.exec.server.rest.auth;
 
 import org.apache.drill.exec.server.rest.WebServerConstants;
-import org.eclipse.jetty.server.handler.ErrorHandler;
+import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.util.Callback;
 
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.io.Writer;
 
 /**
- * Custom ErrorHandler class for Drill's WebServer to have better error 
message in case when SPNEGO login failed and
- * what to do next. In all other cases this would use the generic error page.
+ * Custom ErrorHandler class for Drill's WebServer to handle errors 
appropriately based on the request type.
+ * - For JSON API endpoints (*.json), returns JSON error responses
+ * - For SPNEGO login failures, provides helpful HTML error page
+ * - For all other cases, returns standard HTML error page
  */
-public class DrillErrorHandler extends ErrorHandler {
+public class DrillErrorHandler extends ErrorPageErrorHandler {
+
+  @Override
+  public boolean handle(Request target, org.eclipse.jetty.server.Response 
response, Callback callback) throws Exception {
+    // Check if this is a JSON API request
+    String pathInContext = Request.getPathInContext(target);
+    if (pathInContext != null && pathInContext.endsWith(".json")) {
+      // For JSON API endpoints, return JSON error response instead of HTML
+      response.getHeaders().put("Content-Type", "application/json");

Review Comment:
   Fixed.





> Update Jetty to Version 12
> --------------------------
>
>                 Key: DRILL-8540
>                 URL: https://issues.apache.org/jira/browse/DRILL-8540
>             Project: Apache Drill
>          Issue Type: Task
>          Components: Web Server
>    Affects Versions: 1.22.0
>            Reporter: Charles Givre
>            Assignee: Charles Givre
>            Priority: Major
>             Fix For: 1.23.0
>
>
> Drill was using Jetty version 9.X which was EOL some time ago.  This PR bumps 
> Jetty to version 12.  Jetty 12 is not compatible with with Java 11, so this 
> PR also requires that Drill remove support for Java 11.  At this state, this 
> seems reasonable. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to