diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2009-09-04 16:27:54 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2009-09-04 16:27:54 +0000 |
| commit | 61f551d4782033e4ed40661f2cccc04502190925 (patch) | |
| tree | c3f8b5662679618ae6ea6ac6f62903aadf7939dd /cpp/src/qpid/Exception.cpp | |
| parent | 067053041000736b8c47469e4d6746551551d5ba (diff) | |
| download | qpid-python-61f551d4782033e4ed40661f2cccc04502190925.tar.gz | |
QPID-1809 - The incorrect expcetions were due to a race condition between the mina exception notification thread and the clients main thread blocking for a frame. Occasionally, the client will start blocking just after the notification and so will Timeout. This update ensures that blocking does not occur if the connection has been marked closing or is closed. The lastException set on the StateManager is thrown instead.
The connection close also needed to take into consideration this fact. The syncWrite on for ChannelClose and ConnectionClose are now only down if we are not in a closing situation. As the 0-10 code path does not use the StateManager the changes were applied to the 0-8 Session. Further testing may be needed to validate that the 0-10 client code path does not also have this race condition.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@811471 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/Exception.cpp')
0 files changed, 0 insertions, 0 deletions
