diff options
author | Mark Spruiell <mes@zeroc.com> | 2007-03-14 19:35:53 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2007-03-14 19:35:53 +0000 |
commit | 87ebb60a6afab1529f9cc15db78a5d1630b6e848 (patch) | |
tree | a4bcde4c57d14a490ffc6bc32339612da8d4edbd /cpp/src/IceBox/ServiceManagerI.cpp | |
parent | minor edits (diff) | |
download | ice-87ebb60a6afab1529f9cc15db78a5d1630b6e848.tar.bz2 ice-87ebb60a6afab1529f9cc15db78a5d1630b6e848.tar.xz ice-87ebb60a6afab1529f9cc15db78a5d1630b6e848.zip |
bug 1994: IceStorm service cannot be restarted
Diffstat (limited to 'cpp/src/IceBox/ServiceManagerI.cpp')
-rw-r--r-- | cpp/src/IceBox/ServiceManagerI.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/cpp/src/IceBox/ServiceManagerI.cpp b/cpp/src/IceBox/ServiceManagerI.cpp index d6f1cac0800..7664b0890ac 100644 --- a/cpp/src/IceBox/ServiceManagerI.cpp +++ b/cpp/src/IceBox/ServiceManagerI.cpp @@ -542,21 +542,24 @@ IceBox::ServiceManagerI::stopAll() for(p = _services.rbegin(); p != _services.rend(); ++p) { ServiceInfo& info = *p; - try - { - info.service->stop(); - info.active = false; - } - catch(const Ice::Exception& ex) - { - Warning out(_logger); - out << "ServiceManager: exception in stop for service " << info.name << ":\n"; - out << ex; - } - catch(...) + if(info.active) { - Warning out(_logger); - out << "ServiceManager: unknown exception in stop for service " << info.name; + try + { + info.service->stop(); + info.active = false; + } + catch(const Ice::Exception& ex) + { + Warning out(_logger); + out << "ServiceManager: exception in stop for service " << info.name << ":\n"; + out << ex; + } + catch(...) + { + Warning out(_logger); + out << "ServiceManager: unknown exception in stop for service " << info.name; + } } } |