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

bonampak pushed a commit to branch feature/jakarta-jetty-upgrade
in repository https://gitbox.apache.org/repos/asf/knox.git

commit 0e4aa89dbf746a146502a945514ab568df8788cc
Author: bonampak <[email protected]>
AuthorDate: Wed Apr 22 13:21:39 2026 +0200

    KNOX-3238: refactor Http404ErrorHandler
---
 .../src/main/java/org/apache/knox/gateway/GatewayServer.java   | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git 
a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java 
b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
index 1f0d1e973..2fa55c3f6 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
@@ -66,6 +66,7 @@ import org.eclipse.jetty.server.HttpConfiguration;
 import org.eclipse.jetty.server.HttpConnectionFactory;
 import org.eclipse.jetty.server.NetworkConnector;
 import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Response;
 import org.eclipse.jetty.server.SecureRequestCustomizer;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
@@ -75,6 +76,7 @@ import 
org.eclipse.jetty.server.handler.ContextHandlerCollection;
 import org.eclipse.jetty.server.handler.ErrorHandler;
 import org.eclipse.jetty.server.handler.HandlerCollection;
 import org.eclipse.jetty.server.handler.RequestLogHandler;
+import org.eclipse.jetty.util.Callback;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.eclipse.jetty.util.thread.QueuedThreadPool;
 import org.eclipse.jetty.ee10.webapp.Configuration;
@@ -1300,15 +1302,15 @@ public class GatewayServer {
     }
 
     @Override
-    public void doError(String target, Request baseRequest, HttpServletRequest 
request, HttpServletResponse response) throws IOException {
+    public boolean handle(Request request, Response response, Callback 
callback) throws Exception {
       final int gatewayPrefixLength = ("/" + gatewayPath + "/").length();
-      String pathInfo = baseRequest.getPathInfo();
+      String pathInfo = Request.getPathInContext(request);
       String topologyName = pathInfo.substring(gatewayPrefixLength, 
pathInfo.indexOf('/', gatewayPrefixLength));
       if (gs.isInactiveTopology(topologyName) && (response.getStatus() == 
HttpServletResponse.SC_NOT_FOUND)) {
-        request.setAttribute("javax.servlet.error.message", "Service 
Unavailable"); // The default ErrorHandler references this attribute
+        request.setAttribute(ErrorHandler.ERROR_MESSAGE, "Service 
Unavailable"); // The default ErrorHandler references this attribute
         response.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
       }
-      super.doError(target, baseRequest, request, response);
+      super.handle(request, response, callback);
     }
   }
 

Reply via email to