You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2007/12/14 12:23:35 UTC

svn commit: r604167 - /incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp

Author: gsim
Date: Fri Dec 14 03:22:56 2007
New Revision: 604167

URL: http://svn.apache.org/viewvc?rev=604167&view=rev
Log:
Handle exceptions while doing 'output' for the connection (i.e. message delivery)


Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp?rev=604167&r1=604166&r2=604167&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp Fri Dec 14 03:22:56 2007
@@ -99,7 +99,14 @@
 
 bool Connection::doOutput()
 {
-    return outputTasks.doOutput();
+    try{
+        return outputTasks.doOutput();
+    }catch(ConnectionException& e){
+        close(e.code, e.what(), 0, 0);
+    }catch(std::exception& e){
+        close(541/*internal error*/, e.what(), 0, 0);
+    }
+    return false;
 }
 
 void Connection::closeChannel(uint16_t id) {