Uploaded image for project: 'HttpComponents HttpCore'
  1. HttpComponents HttpCore
  2. HTTPCORE-455

The client does not check if the IO thread is alive

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.4.7, 5.0-alpha3
    • None
    • None
    • Mac OSX, Java 8
    • Important

    Description

      When I developed with the latest HttpAsyncclient, it was hard for me to know whether the IO thread in BaseIOReactor was alive。 For example, if I throw an error in the callback,the IO thread will terminate,but the connecting thread will not check if the IO thread is alive,and will still add new channels to the dispatcher。

      The java code:

      CloseableHttpAsyncClient client = HttpAsyncClients.custom().build();
      client.start();
      HttpUriRequest getRequest = new HttpGet("www.google.com");
      client.execute(getRequest, new FutureCallback<HttpResponse>() {
      @Override
      public void completed(HttpResponse result)

      { throw new StackOverflowError(); }

      @Override
      public void failed(Exception ex) {

      }

      @Override
      public void cancelled() {

      }
      });
      for(int i = 0 ; i < 100 ; i++){
      client.execute(getRequest, new FutureCallback<HttpResponse>() {
      @Override
      public void completed(HttpResponse result) {

      }

      @Override
      public void failed(Exception ex) {

      }

      @Override
      public void cancelled() {

      }
      });
      }

      one of the IO threads is dead,but the java Error dose not be caught,and hte client will continue work and add new channels to the dispather, but the newChannel queue will be not be consumed, so I want to know is there any method to deal with this situation.
      Thanks

      Attachments

        Activity

          People

            Unassigned Unassigned
            feiying Allen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: