Skip to content

Commit

Permalink
Revert "proxy httpclient does not release connection pool when fronte…
Browse files Browse the repository at this point in the history
…nd close chunked response (#90)"

This reverts commit 477ca41.
  • Loading branch information
tsegismont committed Sep 3, 2024
1 parent 477ca41 commit 5ec808d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
23 changes: 10 additions & 13 deletions src/main/java/io/vertx/httpproxy/impl/ProxiedRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,19 @@
*/
package io.vertx.httpproxy.impl;

import io.vertx.core.*;
import io.vertx.core.AsyncResult;
import io.vertx.core.Future;
import io.vertx.core.Handler;
import io.vertx.core.MultiMap;
import io.vertx.core.Promise;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.*;
import io.vertx.core.http.HttpClientRequest;
import io.vertx.core.http.HttpHeaders;
import io.vertx.core.http.HttpMethod;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.core.http.HttpVersion;
import io.vertx.core.http.impl.HttpServerRequestInternal;
import io.vertx.core.impl.ContextInternal;
import io.vertx.core.impl.logging.Logger;
import io.vertx.core.impl.logging.LoggerFactory;
import io.vertx.core.net.HostAndPort;
import io.vertx.core.streams.Pipe;
import io.vertx.httpproxy.Body;
Expand All @@ -27,7 +33,6 @@
import java.util.Objects;

public class ProxiedRequest implements ProxyRequest {
private final static Logger log = LoggerFactory.getLogger(ProxiedRequest.class);

private static final CharSequence X_FORWARDED_HOST = HttpHeaders.createOptimized("x-forwarded-host");

Expand Down Expand Up @@ -150,14 +155,6 @@ public ProxyResponse response() {
}

void sendRequest(Handler<AsyncResult<ProxyResponse>> responseHandler) {
proxiedRequest.connection().closeHandler(unused -> {
if (log.isTraceEnabled()) {
log.trace("Frontend connection closed,uri: " + proxiedRequest.uri());
}

request.reset();
proxiedRequest.response().reset();
});

request.response().<ProxyResponse>map(r -> {
r.pause(); // Pause it
Expand Down
11 changes: 7 additions & 4 deletions src/test/java/io/vertx/httpproxy/ProxyClientKeepAliveTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.vertx.core.streams.WriteStream;
import io.vertx.ext.unit.Async;
import io.vertx.ext.unit.TestContext;
import org.junit.Ignore;
import org.junit.Test;

import java.io.Closeable;
Expand Down Expand Up @@ -258,7 +259,7 @@ public void testFrontendCloseResponse(TestContext ctx) {

@Test
public void testFrontendCloseChunkedResponse(TestContext ctx) {
testFrontendCloseResponse(ctx, true);
testBackendCloseResponse(ctx, true);
}

private void testFrontendCloseResponse(TestContext ctx, boolean chunked) {
Expand All @@ -271,12 +272,14 @@ private void testFrontendCloseResponse(TestContext ctx, boolean chunked) {
resp.putHeader("content-length", "10000");
}
resp.write("part");
resp.closeHandler(unused -> async.complete());
resp.exceptionHandler(err -> {
async.complete();
});
});
startProxy(backend);
HttpClient client = vertx.createHttpClient();
client.request(GET, 8080, "localhost", "/").onComplete(ctx.asyncAssertSuccess(req -> {
req.send().onComplete(ctx.asyncAssertSuccess(resp -> {
client.request(GET, 8081, "localhost", "/", ctx.asyncAssertSuccess(req -> {
req.send(ctx.asyncAssertSuccess(resp -> {
resp.handler(buff -> {
resp.request().connection().close();
System.out.println("closing");
Expand Down

0 comments on commit 5ec808d

Please sign in to comment.