From 869aeffd3663e026f469ae373de3122bcc5ea7bb Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Tue, 10 Jul 2007 14:36:46 +0200 Subject: Fixed bug 2292 --- cpp/src/IceGrid/ServerCache.cpp | 126 +++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 60 deletions(-) (limited to 'cpp/src/IceGrid/ServerCache.cpp') diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp index 14030eea69b..fefd0ed7ebe 100644 --- a/cpp/src/IceGrid/ServerCache.cpp +++ b/cpp/src/IceGrid/ServerCache.cpp @@ -833,41 +833,44 @@ ServerEntry::allocated(const SessionIPtr& session) _load->sessionId = session->getId(); } - Glacier2::SessionControlPrx ctl = session->getSessionControl(); - if(ctl) + if(session->useFilters()) { - ServerHelperPtr helper = createHelper(desc); - multiset adapterIds; - multiset identities; - helper->getIds(adapterIds, identities); - try + Glacier2::SessionControlPrx ctl = session->getSessionControl(); + if(ctl) { - // - // SunCC won't accept the following: - // - // ctl->adapterIds()->add(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); - // ctl->identities()->add(Ice::IdentitySeq(identities.begin(), identities.end())); - // - Ice::StringSeq adapterIdSeq; - for(multiset::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + ServerHelperPtr helper = createHelper(desc); + multiset adapterIds; + multiset identities; + helper->getIds(adapterIds, identities); + try { - adapterIdSeq.push_back(*p); - } - Ice::IdentitySeq identitySeq; - for(multiset::iterator q = identities.begin(); q != identities.end(); ++q) - { - identitySeq.push_back(*q); + // + // SunCC won't accept the following: + // + // ctl->adapterIds()->add(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); + // ctl->identities()->add(Ice::IdentitySeq(identities.begin(), identities.end())); + // + Ice::StringSeq adapterIdSeq; + for(multiset::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + { + adapterIdSeq.push_back(*p); + } + Ice::IdentitySeq identitySeq; + for(multiset::iterator q = identities.begin(); q != identities.end(); ++q) + { + identitySeq.push_back(*q); + } + ctl->adapterIds()->add(adapterIdSeq); + ctl->identities()->add(identitySeq); } - ctl->adapterIds()->add(adapterIdSeq); - ctl->identities()->add(identitySeq); - } - catch(const Ice::LocalException& ex) - { - if(traceLevels && traceLevels->server > 0) + catch(const Ice::LocalException& ex) { - Ice::Trace out(traceLevels->logger, traceLevels->serverCat); - out << "couldn't add Glacier2 filters for server `" << _id << "' allocated by `" << session->getId(); - out << ":\n" << ex; + if(traceLevels && traceLevels->server > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->serverCat); + out << "couldn't add Glacier2 filters for server `" << _id << "' allocated by `" + << session->getId() << ":\n" << ex; + } } } } @@ -920,41 +923,44 @@ ServerEntry::released(const SessionIPtr& session) TraceLevelsPtr traceLevels = _cache.getTraceLevels(); - Glacier2::SessionControlPrx ctl = session->getSessionControl(); - if(ctl) + if(session->useFilters()) { - ServerHelperPtr helper = createHelper(desc); - multiset adapterIds; - multiset identities; - helper->getIds(adapterIds, identities); - try + Glacier2::SessionControlPrx ctl = session->getSessionControl(); + if(ctl) { - // - // SunCC won't accept the following: - // - // ctl->adapterIds()->remove(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); - // ctl->identities()->remove(Ice::IdentitySeq(identities.begin(), identities.end())); - // - Ice::StringSeq adapterIdSeq; - for(multiset::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + ServerHelperPtr helper = createHelper(desc); + multiset adapterIds; + multiset identities; + helper->getIds(adapterIds, identities); + try { - adapterIdSeq.push_back(*p); - } - Ice::IdentitySeq identitySeq; - for(multiset::iterator q = identities.begin(); q != identities.end(); ++q) - { - identitySeq.push_back(*q); + // + // SunCC won't accept the following: + // + // ctl->adapterIds()->remove(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); + // ctl->identities()->remove(Ice::IdentitySeq(identities.begin(), identities.end())); + // + Ice::StringSeq adapterIdSeq; + for(multiset::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + { + adapterIdSeq.push_back(*p); + } + Ice::IdentitySeq identitySeq; + for(multiset::iterator q = identities.begin(); q != identities.end(); ++q) + { + identitySeq.push_back(*q); + } + ctl->adapterIds()->remove(adapterIdSeq); + ctl->identities()->remove(identitySeq); } - ctl->adapterIds()->remove(adapterIdSeq); - ctl->identities()->remove(identitySeq); - } - catch(const Ice::LocalException& ex) - { - if(traceLevels && traceLevels->server > 0) + catch(const Ice::LocalException& ex) { - Ice::Trace out(traceLevels->logger, traceLevels->serverCat); - out << "couldn't remove Glacier2 filters for server `" << _id << "' allocated by `"; - out << session->getId() << ":\n" << ex; + if(traceLevels && traceLevels->server > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->serverCat); + out << "couldn't remove Glacier2 filters for server `" << _id << "' allocated by `"; + out << session->getId() << ":\n" << ex; + } } } } -- cgit v1.2.3