diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2007-02-21 12:35:00 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2007-02-21 12:35:00 +0000 |
commit | 669dd8807b7336d5bd4054c2af62fe1aee4599f5 (patch) | |
tree | 6cb8317e651febc39d828eb8db10cc9cd45d3f02 | |
parent | 04c822bbb81d23dc85a8417d8396b7a170876eb1 (diff) | |
download | ATCD-669dd8807b7336d5bd4054c2af62fe1aee4599f5.tar.gz |
Wed Feb 21 12:23:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r-- | TAO/ChangeLog | 13 | ||||
-rw-r--r-- | TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp | 10 | ||||
-rw-r--r-- | TAO/tests/POA/Bug_2511_Regression/server.cpp | 2 |
3 files changed, 19 insertions, 6 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index c1e40b30c97..65ec3476d52 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,16 @@ +Wed Feb 21 12:23:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/POA/Bug_2511_Regression/server.cpp: + Return the error count, in case of a failure then the test + framework will notice this + + * tao/PortableServer/RequestProcessingStrategyServantLocator.cpp: + Don't call postinvoke when we don't have a servant. Fixes bugzilla + bugs 2511 and 2658. Thanks to Martin Cornelius + <Martin dot Cornelius at smiths-heimann dot com> and Milan + Cvetkovic <milan dot cvetkovic at mpathix dot com> for reporting + this and providing a test case and a proposed fix. + Wed Feb 21 11:42:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl> * tests/Bug_1383_Regression/*: diff --git a/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp b/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp index 07b9b25853d..f51ac0a48e4 100644 --- a/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp +++ b/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp @@ -56,7 +56,7 @@ namespace TAO if (!CORBA::is_nil (this->servant_locator_.in ())) { throw ::CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 6, - CORBA::COMPLETED_NO); + CORBA::COMPLETED_NO); } this->servant_locator_ = PortableServer::ServantLocator::_narrow (imgr); @@ -69,9 +69,8 @@ namespace TAO const PortableServer::ObjectId &system_id, PortableServer::Servant &servant) { - TAO_SERVANT_LOCATION location = TAO_SERVANT_NOT_FOUND; - - location = this->poa_->servant_present (system_id, servant); + TAO_SERVANT_LOCATION location = + this->poa_->servant_present (system_id, servant); if (location == TAO_SERVANT_NOT_FOUND) { @@ -203,7 +202,8 @@ namespace TAO // exception the methods normal return is overrriden, the request completes // with the exception - if (!CORBA::is_nil (this->servant_locator_.in ())) + if (!CORBA::is_nil (this->servant_locator_.in ()) && + servant_upcall.servant()) { try { diff --git a/TAO/tests/POA/Bug_2511_Regression/server.cpp b/TAO/tests/POA/Bug_2511_Regression/server.cpp index 3fd6da6766f..6b199cbf575 100644 --- a/TAO/tests/POA/Bug_2511_Regression/server.cpp +++ b/TAO/tests/POA/Bug_2511_Regression/server.cpp @@ -241,5 +241,5 @@ main (int argc, char **argv) retval = -1; } - return retval; + return errorCount; } |