[ https://issues.apache.org/jira/browse/QPID-5586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Stitcher reassigned QPID-5586: ------------------------------------- Assignee: Andrew Stitcher > qpid::messaging::Session::nextReceiver can throw exception not descended from > qpid::types::Exception > ---------------------------------------------------------------------------------------------------- > > Key: QPID-5586 > URL: https://issues.apache.org/jira/browse/QPID-5586 > Project: Qpid > Issue Type: Bug > Components: C++ Client > Affects Versions: 0.26, 0.27 > Reporter: Andrew Stitcher > Assignee: Andrew Stitcher > Fix For: 0.27 > > > If a qpid messaging connection or (I think) a session is closed in one thread > whilst another thread is in Session::nextReceiver(...) then > qpid::ClosedException will be thrown. > This is definitely wrong! (There is no way to catch this exception using only > the messaging library). > It seems that there needs to be a new qpid::messaging exception to cover the > case that you were waiting for a receiver and the whole session has gone > away. Certainly you need to know that you can't refer to the session any more. > It cannot be sufficient to assert that you must keep sessions around until > all the nextReceiver() calls using them are finished with the current API as > there is no way to preempt those calls externally. So a service loop waiting > to for a receiver to process will be stuck waiting until the session closes. > Even if you poll by using timeouts there is no way on return to tell that the > session you were just listening on is dead. -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org