diff --git a/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java b/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java index cc8dc37..151ffc3 100644 --- a/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java +++ b/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java @@ -525,7 +525,9 @@ public void timeout(final NHttpServerConnection conn) throws IOException { final State state = getState(conn); if (state != null) { - closeHandlers(state, new SocketTimeoutException()); + final SocketTimeoutException cause = new SocketTimeoutException( + String.format("Timeout of %,d milliseconds for connection %s", conn.getSocketTimeout(), conn)); + exception(conn, cause); } if (conn.getStatus() == NHttpConnection.ACTIVE) { conn.close(); @@ -632,6 +634,8 @@ code = HttpStatus.SC_HTTP_VERSION_NOT_SUPPORTED; } else if (ex instanceof ProtocolException) { code = HttpStatus.SC_BAD_REQUEST; + } else if (ex instanceof SocketTimeoutException) { + code = HttpStatus.SC_GATEWAY_TIMEOUT; } else { code = HttpStatus.SC_INTERNAL_SERVER_ERROR; }