hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Franck Wolff (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HTTPASYNC-21) Callback not notified when a server crash in the middle of a request
Date Wed, 04 Jul 2012 16:52:35 GMT
Franck Wolff created HTTPASYNC-21:

             Summary: Callback not notified when a server crash in the middle of a request
                 Key: HTTPASYNC-21
                 URL: https://issues.apache.org/jira/browse/HTTPASYNC-21
             Project: HttpComponents HttpAsyncClient
          Issue Type: Bug
    Affects Versions: 4.0-beta1
         Environment: Mac OSX, Java 6
            Reporter: Franck Wolff

When a server crash in the middle of a request, the FutureCallback associated with the request
is never notified. The same issue occurs in blocking mode, when waiting for a future.get()

Here are simple steps to reproduce this issue:

package test;

import java.util.concurrent.Future;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.concurrent.FutureCallback;
import org.apache.http.impl.nio.client.DefaultHttpAsyncClient;

public class Client {

	public static void main(String[] args) throws Exception {
		DefaultHttpAsyncClient httpClient = new DefaultHttpAsyncClient();

		HttpPost request = new HttpPost("http://localhost:8080/webapp/servlet");
		request.setHeader("Content-Type", "text/plain");

		final Future<HttpResponse> future = httpClient.execute(request, new FutureCallback<HttpResponse>()
			public void completed(HttpResponse response) {
				System.out.println("completed: " + response);

			public void failed(Exception e) {

			public void cancelled() {
		System.out.println("get: " + future.get());

Start a server in debug mode, with a breakpoint at the beginning of the doPost method of the
targeted servlet. Start the client and, when your breakpoint is activated, kill the server.
The client application will never end...

Maybe I'm missing something but I would have thought that the failed handler would be called
in this case and that the get() call would throw an ExecutionException.


This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org

View raw message