diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/Ice/PluginManagerI.cpp | 23 | ||||
-rw-r--r-- | cpp/src/IceDiscovery/PluginI.cpp | 6 | ||||
-rw-r--r-- | cpp/src/IceLocatorDiscovery/PluginI.cpp | 2 | ||||
-rw-r--r-- | cpp/test/Ice/plugin/Client.cpp | 8 |
4 files changed, 29 insertions, 10 deletions
diff --git a/cpp/src/Ice/PluginManagerI.cpp b/cpp/src/Ice/PluginManagerI.cpp index 33901a78cb7..e3186298a9c 100644 --- a/cpp/src/Ice/PluginManagerI.cpp +++ b/cpp/src/Ice/PluginManagerI.cpp @@ -86,7 +86,26 @@ Ice::PluginManagerI::initializePlugins() { for(PluginInfoList::iterator p = _plugins.begin(); p != _plugins.end(); ++p) { - p->plugin->initialize(); + try + { + p->plugin->initialize(); + } + catch(const Ice::PluginInitializationException&) + { + throw; + } + catch(const std::exception& ex) + { + ostringstream os; + os << "plugin `" << p->name << "' initialization failed:\n" << ex.what(); + throw PluginInitializationException(__FILE__, __LINE__, os.str()); + } + catch(...) + { + ostringstream os; + os << "plugin `" << p->name << "' initialization failed:\nunknown exception"; + throw PluginInitializationException(__FILE__, __LINE__, os.str()); + } initializedPlugins.push_back(p->plugin); } } @@ -420,7 +439,7 @@ Ice::PluginManagerI::loadPlugin(const string& name, const string& pluginSpec, St args = properties->parseCommandLineOptions(name, args); cmdArgs = properties->parseCommandLineOptions(name, cmdArgs); } - + PluginPtr plugin; PLUGIN_FACTORY factory = 0; DynamicLibraryPtr library; diff --git a/cpp/src/IceDiscovery/PluginI.cpp b/cpp/src/IceDiscovery/PluginI.cpp index 387fffd21fa..6873cec56b6 100644 --- a/cpp/src/IceDiscovery/PluginI.cpp +++ b/cpp/src/IceDiscovery/PluginI.cpp @@ -95,7 +95,7 @@ PluginI::initialize() // Setup locatory registry. // LocatorRegistryIPtr locatorRegistry = new LocatorRegistryI(_communicator); - Ice::LocatorRegistryPrx locatorRegistryPrx = + Ice::LocatorRegistryPrx locatorRegistryPrx = Ice::LocatorRegistryPrx::uncheckedCast(_locatorAdapter->addWithUUID(locatorRegistry)); string lookupEndpoints = properties->getProperty("IceDiscovery.Lookup"); @@ -125,7 +125,7 @@ PluginI::initialize() catch(const Ice::LocalException& ex) { ostringstream os; - os << "unable to establish multicast connection, IceDiscovery will be disabled:\n"; + os << "IceDiscovery is unable to establish a multicast connection:\n"; os << "proxy = " << lookupPrx << '\n'; os << ex; throw Ice::PluginInitializationException(__FILE__, __LINE__, os.str()); @@ -145,7 +145,7 @@ PluginI::initialize() // Ice::ObjectPrx loc = _locatorAdapter->addWithUUID(new LocatorI(_lookup, locatorRegistryPrx)); _communicator->setDefaultLocator(Ice::LocatorPrx::uncheckedCast(loc)); - + _multicastAdapter->activate(); _replyAdapter->activate(); _locatorAdapter->activate(); diff --git a/cpp/src/IceLocatorDiscovery/PluginI.cpp b/cpp/src/IceLocatorDiscovery/PluginI.cpp index fb79d4b8529..d364fa7157c 100644 --- a/cpp/src/IceLocatorDiscovery/PluginI.cpp +++ b/cpp/src/IceLocatorDiscovery/PluginI.cpp @@ -241,7 +241,7 @@ PluginI::initialize() catch(const Ice::LocalException& ex) { ostringstream os; - os << "unable to establish multicast connection, Ice locator discovery will be disabled:\n"; + os << "IceLocatorDiscovery is unable to establish a multicast connection:\n"; os << "proxy = " << lookupPrx << '\n'; os << ex; throw Ice::PluginInitializationException(__FILE__, __LINE__, os.str()); diff --git a/cpp/test/Ice/plugin/Client.cpp b/cpp/test/Ice/plugin/Client.cpp index add1d191002..d35ee1c53d9 100644 --- a/cpp/test/Ice/plugin/Client.cpp +++ b/cpp/test/Ice/plugin/Client.cpp @@ -223,9 +223,9 @@ main(int argc, char* argv[]) communicator = Ice::initialize(argc, argv, initData); test(false); } - catch(const std::exception& ex) + catch(const Ice::PluginInitializationException& ex) { - test(string(ex.what()) == "PluginInitializeFailExeption"); + test(ex.reason.find("PluginInitializeFailExeption") > 0); } test(!communicator); cout << "ok" << endl; @@ -298,9 +298,9 @@ main(int argc, char* argv[]) communicator = Ice::initialize(argc, argv, initData); test(false); } - catch(const std::exception& ex) + catch(const Ice::PluginInitializationException& ex) { - test(string(ex.what()) == "PluginInitializeFailExeption"); + test(ex.reason.find("PluginInitializeFailExeption") > 0); } test(!communicator); cout << "ok" << endl; |