[
https://issues.apache.org/jira/browse/HTTPCORE-51?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oleg Kalnichevski updated HTTPCORE-51:
--------------------------------------
Fix Version/s: (was: 4.0-alpha5)
4.0-alpha4
Assignee: Oleg Kalnichevski
Affects Version/s: (was: 4.0-alpha5)
> My HttpRequestExecutionHandler.submitRequest is being called repeatedly
> -----------------------------------------------------------------------
>
> Key: HTTPCORE-51
> URL: https://issues.apache.org/jira/browse/HTTPCORE-51
> Project: HttpComponents Core
> Issue Type: Bug
> Components: HttpCore NIO
> Environment: Windows Vista
> Reporter: Anders Wallgren
> Assigned To: Oleg Kalnichevski
> Fix For: 4.0-alpha4
>
>
> In my test suite, I'm sending a single post, but I'm finding that my
> HttpRequestExecutionHandler.submitRequest handler is being called multiple
> times. I think I've tracked it down to
> DefaultNHttpClientConnection.productOutput:
> public void produceOutput(final NHttpClientHandler handler) {
> try {
> if (this.outbuf.hasData()) {
> this.outbuf.flush(this.session.channel()); <<--- this is
> called
> }
> if (!this.outbuf.hasData()) {
> if (this.closed) {
> this.session.close();
> resetOutput();
> return;
> } else {
> if (this.contentEncoder != null) {
> handler.outputReady(this, this.contentEncoder);
> if (this.contentEncoder.isCompleted()) {
> resetOutput(); <<<<----- then this
> }
> }
> }
> if (this.contentEncoder == null && !this.outbuf.hasData()) {
> this.session.clearEvent(EventMask.WRITE);
> }
> }
> } catch (IOException ex) {
> handler.exception(this, ex);
> } finally {
> // Finally set buffered output flag
> this.hasBufferedOutput = this.outbuf.hasData();
> }
> if (this.request == null && !this.closed) {
> handler.requestReady(this); <<<--- then this
> }
> }
> The sequence of events is that my submitRequest is called once, then when the
> channel becomes writable, produceOutput is called. It's a small request (3
> bytes of content), so the first branch is followed and outbuf is flushed.
> Then there is no more data, and the second branch is called, where
> resetOutput is called, but the method doesn't return. Then, at the bottom of
> produceOutput, handle.requestReady is called again, since resetOutput set
> request to null.
> Am I doing something wrong, or is there a bug here?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]