diff options
Diffstat (limited to 'indra/llmessage')
| -rw-r--r-- | indra/llmessage/llavatarnamecache.cpp | 11 | ||||
| -rw-r--r-- | indra/llmessage/llcoproceduremanager.cpp | 14 | ||||
| -rw-r--r-- | indra/llmessage/llhttpnode.cpp | 12 | ||||
| -rw-r--r-- | indra/llmessage/tests/commtest.h | 8 | ||||
| -rw-r--r-- | indra/llmessage/tests/networkio.h | 5 | 
5 files changed, 28 insertions, 22 deletions
| diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 1ca5f58ae2..004db546b7 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -43,6 +43,8 @@  #include "llcoros.h"  #include "lleventcoro.h"  #include "llcorehttputil.h" +#include "llexception.h" +#include "stringize.h"  #include <map>  #include <set> @@ -231,13 +233,12 @@ void LLAvatarNameCache::requestAvatarNameCache_(std::string url, std::vector<LLU          LLAvatarNameCache::handleAvNameCacheSuccess(results, httpResults);      } -    catch (std::exception e) -    { -        LL_WARNS() << "Caught exception '" << e.what() << "'" << LL_ENDL; -    }      catch (...)      { -        LL_WARNS() << "Caught unknown exception." << LL_ENDL; +        LOG_UNHANDLED_EXCEPTION(STRINGIZE("coroutine " << LLCoros::instance().getName() +                                          << "('" << url << "', " << agentIds.size() +                                          << " Agent Ids)")); +        throw;      }  } diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp index d4c0788b7d..74cdff2b00 100644 --- a/indra/llmessage/llcoproceduremanager.cpp +++ b/indra/llmessage/llcoproceduremanager.cpp @@ -27,6 +27,8 @@  #include "linden_common.h"   #include "llcoproceduremanager.h" +#include "llexception.h" +#include "stringize.h"  #include <boost/assign.hpp>  //========================================================================= @@ -388,14 +390,14 @@ void LLCoprocedurePool::coprocedureInvokerCoro(LLCoreHttpUtil::HttpCoroutineAdap              {                  coproc->mProc(httpAdapter, coproc->mId);              } -            catch (std::exception &e) -            { -                LL_WARNS() << "Coprocedure(" << coproc->mName << ") id=" << coproc->mId.asString() << -                    " threw an exception! Message=\"" << e.what() << "\"" << LL_ENDL; -            }              catch (...)              { -                LL_WARNS() << "A non std::exception was thrown from " << coproc->mName << " with id=" << coproc->mId << "." << " in pool \"" << mPoolName << "\"" << LL_ENDL; +                LOG_UNHANDLED_EXCEPTION(STRINGIZE("Coprocedure('" << coproc->mName +                                                  << "', id=" << coproc->mId.asString() +                                                  << ") in pool '" << mPoolName << "'")); +                // must NOT omit this or we deplete the pool +                mActiveCoprocs.erase(itActive); +                throw;              }              LL_INFOS() << "Finished coprocedure(" << coproc->mName << ")" << " in pool \"" << mPoolName << "\"" << LL_ENDL; diff --git a/indra/llmessage/llhttpnode.cpp b/indra/llmessage/llhttpnode.cpp index f235965879..04b34a296c 100644 --- a/indra/llmessage/llhttpnode.cpp +++ b/indra/llmessage/llhttpnode.cpp @@ -31,6 +31,7 @@  #include "llstl.h"  #include "llhttpconstants.h" +#include "llexception.h"  const std::string CONTEXT_HEADERS("headers");  const std::string CONTEXT_PATH("path"); @@ -92,27 +93,28 @@ LLHTTPNode::~LLHTTPNode()  namespace { -	class NotImplemented +	struct NotImplemented: public LLException  	{ +		NotImplemented(): LLException("LLHTTPNode::NotImplemented") {}  	};  }  // virtual  LLSD LLHTTPNode::simpleGet() const  { -	throw NotImplemented(); +	LLTHROW(NotImplemented());  }  // virtual  LLSD LLHTTPNode::simplePut(const LLSD& input) const  { -	throw NotImplemented(); +	LLTHROW(NotImplemented());  }  // virtual  LLSD LLHTTPNode::simplePost(const LLSD& input) const  { -	throw NotImplemented(); +	LLTHROW(NotImplemented());  } @@ -172,7 +174,7 @@ void LLHTTPNode::del(LLHTTPNode::ResponsePtr response, const LLSD& context) cons  // virtual  LLSD LLHTTPNode::simpleDel(const LLSD&) const  { -	throw NotImplemented(); +	LLTHROW(NotImplemented());  }  // virtual diff --git a/indra/llmessage/tests/commtest.h b/indra/llmessage/tests/commtest.h index 0d149b5258..7c8f27bbd2 100644 --- a/indra/llmessage/tests/commtest.h +++ b/indra/llmessage/tests/commtest.h @@ -33,15 +33,15 @@  #include "llevents.h"  #include "llsd.h"  #include "llhost.h" +#include "llexception.h"  #include "stringize.h"  #include <map>  #include <string> -#include <stdexcept>  #include <boost/lexical_cast.hpp> -struct CommtestError: public std::runtime_error +struct CommtestError: public LLException  { -    CommtestError(const std::string& what): std::runtime_error(what) {} +    CommtestError(const std::string& what): LLException(what) {}  };  static bool query_verbose() @@ -68,7 +68,7 @@ static int query_port(const std::string& var)      const char* cport = getenv(var.c_str());      if (! cport)      { -        throw CommtestError(STRINGIZE("missing environment variable" << var)); +        LLTHROW(CommtestError(STRINGIZE("missing environment variable" << var)));      }      // This will throw, too, if the value of PORT isn't numeric.      int port(boost::lexical_cast<int>(cport)); diff --git a/indra/llmessage/tests/networkio.h b/indra/llmessage/tests/networkio.h index 2aff90ca1e..5eb739393f 100644 --- a/indra/llmessage/tests/networkio.h +++ b/indra/llmessage/tests/networkio.h @@ -34,6 +34,7 @@  #include "llares.h"  #include "llpumpio.h"  #include "llhttpclient.h" +#include "llexception.h"  /*****************************************************************************  *   NetworkIO @@ -51,7 +52,7 @@ public:          ll_init_apr();          if (! gAPRPoolp)          { -            throw std::runtime_error("Can't initialize APR"); +            LLTHROW(LLException("Can't initialize APR"));          }          // Create IO Pump to use for HTTP Requests. @@ -59,7 +60,7 @@ public:          LLHTTPClient::setPump(*mServicePump);          if (ll_init_ares() == NULL || !gAres->isInitialized())          { -            throw std::runtime_error("Can't start DNS resolver"); +            LLTHROW(LLException("Can't start DNS resolver"));          }          // You can interrupt pump() without waiting the full timeout duration | 
