Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Jetty HttpClient redirect issue going from M5 to RC0 (and above)

Yup.

Release notes show it present in 9.0.0.v20130308
402341 Host with default port causes redirects loop.

And git logs confirm it too.

--
Joakim Erdfelt <joakim@xxxxxxxxxxx>
Developer advice, services and support
from the Jetty & CometD experts


On Fri, Mar 8, 2013 at 5:45 PM, Jay Wallingford <jhwallingford@xxxxxxxxx> wrote:
Simone,

Thanks for the quick fix. Do you know if this made it into the 9.0 release (9.0.0.v20130308)?

Jay


On Sun, Mar 3, 2013 at 3:13 PM, Jay Wallingford <jhwallingford@xxxxxxxxx> wrote:
Hi,

I recently upgraded from jetty-client M5 to RC2 and have a problem with too many redirects after the upgrade. I tried this in RC0 and RC1 and had the same issue. Here's a simple test that demonstrates the problem …

SslContextFactory sslContextFactory = new SslContextFactory(true);
sslContextFactory.setEndpointIdentificationAlgorithm(null);
HttpClient client = new HttpClient(sslContextFactory);
// client.setMaxRedirects(Integer.MAX_VALUE);
client.start();
Request request = client.newRequest("http://www.twitter.com/jwallingford");
request.method(HttpMethod.GET);
try {
ContentResponse response = request.send();
System.out.println(response.getContentAsString());
} catch (InterruptedException | TimeoutException | ExecutionException e) {
e.printStackTrace();
} finally {
client.destroy();
}

When I run this in M5 it runs fine and prints the HTML for my Twitter page but in RC0-RC2 it returns the following exception …

java.util.concurrent.ExecutionException: org.eclipse.jetty.client.HttpResponseException: Max redirects exceeded 8
at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118)
at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101)
at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:433)
at com.blogfrog.system.service.http.HttpClientServiceTest.main(HttpClientServiceTest.java:344)
Caused by: org.eclipse.jetty.client.HttpResponseException: Max redirects exceeded 8
at org.eclipse.jetty.client.RedirectProtocolHandler.redirect(RedirectProtocolHandler.java:140)
at org.eclipse.jetty.client.RedirectProtocolHandler.onComplete(RedirectProtocolHandler.java:76)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:199)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:191)
at org.eclipse.jetty.client.HttpReceiver.success(HttpReceiver.java:337)
at org.eclipse.jetty.client.HttpReceiver.messageComplete(HttpReceiver.java:305)
at org.eclipse.jetty.http.HttpParser.parseHeaders(HttpParser.java:775)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1087)
at org.eclipse.jetty.client.HttpReceiver.parse(HttpReceiver.java:111)
at org.eclipse.jetty.client.HttpReceiver.receive(HttpReceiver.java:78)
at org.eclipse.jetty.client.HttpConnection.receive(HttpConnection.java:308)
at org.eclipse.jetty.client.HttpExchange.receive(HttpExchange.java:104)
at org.eclipse.jetty.client.HttpConnection.onFillable(HttpConnection.java:296)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:240)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:278)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:78)
at org.eclipse.jetty.io.SelectChannelEndPoint.onSelected(SelectChannelEndPoint.java:109)
at org.eclipse.jetty.io.SelectorManager$ManagedSelector.processKey(SelectorManager.java:482)
at org.eclipse.jetty.io.SelectorManager$ManagedSelector.select(SelectorManager.java:439)
at org.eclipse.jetty.io.SelectorManager$ManagedSelector.run(SelectorManager.java:404)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:589)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:520)
at java.lang.Thread.run(Thread.java:722)

The exception is pretty obvious so I tried setting the client's max redirects to Integer.MAX_VALUE but after that change it runs forever. I've tried a number of different URLs and get the same problem. I've also tried it with and without the SSLContextFactor and still get the same problem. I feel like I must be doing SOMETHING wrong here but the test is so simple I'm not sure what else to try.

Jay






_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users



Back to the top