synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "xuhongbo" <x...@tongtech.com>
Subject Re: http-transport-bug fixed
Date Sat, 08 Mar 2008 02:31:26 GMT
Hi, Oleg: 
    While using synapse-http-transport, I find out that there are two place of code will catched
the exception: 
1) SessionRequestCallback
2) ClientHandler( it implements NHttpClientHandler)
But some exception SessionRequestCallback will catched, for example( Connection Refuse), while
some others will be catched by ClientHandler for example: IO-Exception (after socket connected,
while sending or receiving data)

As synapse-http-transport original code process the SessionRequestCallback exception correctely.
but not correctly process ClientHandler yet. So cannot immediately notify the client some-thing
wrong with net-work.

And in the patch for synapse-http-transport, I add code in the ClientHandler's callback (exception,
closed, timeout, responseReceived...) to check if the request completed, or set the request
to complete status( "complete" means received response from server). 

the code looks like : 
    void exception(final NHttpClientConnection conn, final IOException e)
    {
        checkAxisRequestComplete(...);//check if completed,  if not send a failure message-context
back to synapse client
    }
    ....other callback

    void responseReceived(..)
    {
        //set Request to complete status ;
    }

The request status check code repeated too much.
So I think if http-core-nio provided one callback to detect and report http-request's status
will be better.

maybe SessionRequestCallback  will be a better choice for this, but I am not very sure if
SessionRequestCallback's design purpose (in http-core-nio) conflict with this;

xuhongbo



----- Original Message ----- 
From: "Oleg Kalnichevski" <olegk@apache.org>
To: <dev@synapse.apache.org>
Sent: Saturday, March 08, 2008 3:49 AM
Subject: Re: http-transport-bug fixed


> 
> On Fri, 2008-03-07 at 18:24 +0800, XuHongBo wrote:
>> Hi:
>>     I have just post a patch for 2 http-transport-bugs founded. but the patch code
style is just work outside the http-core-nio  to fixe problem. 
>> 
>> Oh.... some of the fixing code I think , should be the responsibility of http-core-nio
library, so the fixed code will look like more structurable. 
>> 
>> Is there anyone who are familiar with http-core-nio give some advise about if we
should waiting for http-core-nio library to be corrected to catch all  all network failed
in sessionCallback ( now only some exception catched by sessionCallback)?
>> 
> 
> Hi Xuhongbo
> 
> I guess I qualify as someone familiar. I am not sure I fully understand
> the problem. Could you please give me a little more details as to what
> kind of exceptions you think should be handled by HttpCore
> automatically? 
> 
> Oleg
> 
>> Or  just like the patch code, work outside http-core-nio library?
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
> For additional commands, e-mail: dev-help@synapse.apache.org
> 
> 
>
Mime
View raw message