-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/10044/#review19386
-----------------------------------------------------------


The naming for the new exceptions doesn't quite make sense to me.  Do the 
existing exceptions indeed cause the connection to block?  I thought they 
instead caused subsequent api calls to error out.

- Justin Ross


On March 20, 2013, 2:04 p.m., Ernie Allen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/10044/
> -----------------------------------------------------------
> 
> (Updated March 20, 2013, 2:04 p.m.)
> 
> 
> Review request for qpid, Rafael Schloming and Justin Ross.
> 
> 
> Description
> -------
> 
> If there is an exception when encrypting or decrypting a message, the python 
> client will be in an unusable state. It will not be possible to send any 
> other messages or even close the connection.
> 
> The cause of this is that the connection class stores any exceptions that 
> occur and returns them to the application. Those exceptions are never cleared 
> and block any further activity. 
> 
> This proposed fix:
> - Creates a new exception type: NonBlockingError. 
> - Encode and decode exception are caught and converted to NonBlockingErrors.
> - When a NonBlockingError is encountered, it is returned to the application 
> and then cleared so future calls can continue. 
> 
> 
> This addresses bug qpid-2453.
>     https://issues.apache.org/jira/browse/qpid-2453
> 
> 
> Diffs
> -----
> 
>   trunk/qpid/python/qpid/messaging/driver.py 1457042 
>   trunk/qpid/python/qpid/messaging/endpoints.py 1457042 
>   trunk/qpid/python/qpid/messaging/exceptions.py 1457042 
> 
> Diff: https://reviews.apache.org/r/10044/diff/
> 
> 
> Testing
> -------
> 
> Attached test-nonblock.py will send and receive several messages. One of the 
> messages will cause an encode exception. 
> Before the patch, the exception will prevent further messages from being sent 
> and prevent the connection from being closed.
> After the patch, the bad message will raise an exception, further messages 
> can be sent and the connection can be closed. 
> 
> 
> Thanks,
> 
> Ernie Allen
> 
>

Reply via email to