HttpResponseDecoder not finishing decode process before some content is received
--------------------------------------------------------------------------------

                 Key: ASYNCWEB-11
                 URL: https://issues.apache.org/jira/browse/ASYNCWEB-11
             Project: Asyncweb
          Issue Type: Bug
          Components: Common
         Environment: FCGIHttpService
            Reporter: Daniel Wirtz
            Priority: Trivial


Basically I transform FastCGI responses into HTTP responses using the 
HttpResponseDecoder in conjunction with AsyncFCGI (0.9.0 CVS):

public void onReceive(FCGIRequest request, FCGIResponse response) {
  HttpServiceContext context = (HttpServiceContext) request.getAttachment();
  HttpResponseDecoder decoder = new HttpResponseDecoder();
  DecoderOutput output = new DecoderOutput(context); // Custom output 
implementing a write() method
  decoder.decode(null, IoBuffer.wrap("HTTP/1.1 200 OK\r\n".getBytes()), output);
  decoder.decode(null, response.getStdout(), output);
  decoder.finishDecode(null, output); // HttpResonse is produced and sent to 
DecoderOutput
  decoder.dispose(null);
}

This works fine so far, but when an empty response (in this case produced by 
PHP is received), no write() to DecoderOutput occurs even though the 
finishDecode() method was called. The response looks like this:

Content-Type: text/html\r\n
\r\n

As a result of this, I'm not able to use the decoder in this particular case to 
produce HttpResponse objects for further asyncweb processing originating from a 
FastCGI backend. The connection just times out because no response is produced. 
However, if Content-Length: 0 is provided, it works fine (but PHP does not 
produce this header by default, it is added by the webserver, in this case this 
would be asyncweb).

The reason that I don't want to preparse the output by myself is that this 
results in unneccessary double checking (converting the IoBuffer to something 
parseable and checking headers twice).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to