Uploaded image for project: 'HttpComponents HttpAsyncClient'
  1. HttpComponents HttpAsyncClient
  2. HTTPASYNC-70

Shuting down the underlying channel [ioctrl.shutdown()] doesn't mark contentdecoder as completed

Agile BoardAttach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.0.1
    • 4.0.2

    Description

      If in AsyncByteConsumer close underlying channel

      protected void onByteReceived(ByteBuffer buf, IOControl ioctrl) throws IOException {
      if( <some_condition> )

      { ioctrl.shutdown(); }

      }
      later in HttpAsyncRequestExecutor.inputReady(...) there is just one check agains content decoder to verify if consuming completed

      if (decoder.isCompleted())

      { processResponse(conn, state, handler); }

      so the decoder goes into indefinite waiting.

      Seems like setting decoder.completed into true solves problem.

      Thoughts?

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Issue deployment