diff options
author | mcorino <mcorino@users.noreply.github.com> | 2009-12-10 12:42:52 +0000 |
---|---|---|
committer | mcorino <mcorino@users.noreply.github.com> | 2009-12-10 12:42:52 +0000 |
commit | 942f7b79bb9db897ad4ce1fc12684ba11573910a (patch) | |
tree | d8bf0eaf4f99908466547645d667ae3beb306dff | |
parent | 70a295d96bc88ff442615a71a600582d500af449 (diff) | |
download | ATCD-942f7b79bb9db897ad4ce1fc12684ba11573910a.tar.gz |
Thu Dec 10 12:42:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
* tests/BiDirectional_DelayedUpcall/client.cpp:
* tests/BiDirectional_DelayedUpcall/test_i.cpp:
* tests/BiDirectional_DelayedUpcall/test_i.inl:
* tests/BiDirectional_DelayedUpcall/test_i.h:
Fixed problem with illegal send of request after ORB shutdown.
See Bugzilla 2068.
-rw-r--r-- | TAO/ChangeLog | 9 | ||||
-rw-r--r-- | TAO/tests/BiDirectional_DelayedUpcall/client.cpp | 6 | ||||
-rw-r--r-- | TAO/tests/BiDirectional_DelayedUpcall/test_i.cpp | 3 | ||||
-rw-r--r-- | TAO/tests/BiDirectional_DelayedUpcall/test_i.h | 4 | ||||
-rw-r--r-- | TAO/tests/BiDirectional_DelayedUpcall/test_i.inl | 5 |
5 files changed, 19 insertions, 8 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index fbf524ba1b9..e712ad33912 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,12 @@ +Thu Dec 10 12:42:00 UTC 2009 Martin Corino <mcorino@remedy.nl> + + * tests/BiDirectional_DelayedUpcall/client.cpp: + * tests/BiDirectional_DelayedUpcall/test_i.cpp: + * tests/BiDirectional_DelayedUpcall/test_i.inl: + * tests/BiDirectional_DelayedUpcall/test_i.h: + Fixed problem with illegal send of request after ORB shutdown. + See Bugzilla 2068. + Thu Dec 10 11:57:58 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl> * tao/String_Manager_T.h diff --git a/TAO/tests/BiDirectional_DelayedUpcall/client.cpp b/TAO/tests/BiDirectional_DelayedUpcall/client.cpp index 438b5e31be5..b93c837c726 100644 --- a/TAO/tests/BiDirectional_DelayedUpcall/client.cpp +++ b/TAO/tests/BiDirectional_DelayedUpcall/client.cpp @@ -109,7 +109,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) Callback_i *callback_impl = 0; ACE_NEW_THROW_EX (callback_impl, - Callback_i (orb.in ()), + Callback_i (orb.in (), server.in ()), CORBA::NO_MEMORY ()); PortableServer::ServantBase_var owner_transfer(callback_impl); @@ -141,11 +141,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) ACE_Time_Value run_time (5); orb->run (run_time); - // Shutdown the server - server->shutdown (); - root_poa->destroy (1, 1); - } catch (const CORBA::Exception& ex) { diff --git a/TAO/tests/BiDirectional_DelayedUpcall/test_i.cpp b/TAO/tests/BiDirectional_DelayedUpcall/test_i.cpp index 5e87948297e..c591ab2b419 100644 --- a/TAO/tests/BiDirectional_DelayedUpcall/test_i.cpp +++ b/TAO/tests/BiDirectional_DelayedUpcall/test_i.cpp @@ -17,6 +17,9 @@ void Callback_i::shutdown (void) { ACE_DEBUG ((LM_DEBUG, "Performing clean shutdown\n")); + // Shutdown the server before we shutdown our own ORB + this->server_->shutdown (); + // now we shut down this->orb_->shutdown (0); } diff --git a/TAO/tests/BiDirectional_DelayedUpcall/test_i.h b/TAO/tests/BiDirectional_DelayedUpcall/test_i.h index 42f9036aee2..ba1f46f4764 100644 --- a/TAO/tests/BiDirectional_DelayedUpcall/test_i.h +++ b/TAO/tests/BiDirectional_DelayedUpcall/test_i.h @@ -29,7 +29,7 @@ class Callback_i : public virtual POA_Callback // connection that was established by the client // public: - Callback_i (CORBA::ORB_ptr orb); + Callback_i (CORBA::ORB_ptr orb, Simple_Server_ptr srv); // ctor void shutdown (void); @@ -41,6 +41,8 @@ public: private: CORBA::ORB_var orb_; // The orb + Simple_Server_var server_; + // The server }; class Simple_Server_i : public virtual POA_Simple_Server, public virtual ACE_Event_Handler diff --git a/TAO/tests/BiDirectional_DelayedUpcall/test_i.inl b/TAO/tests/BiDirectional_DelayedUpcall/test_i.inl index 799be9fdcbe..afb7011812e 100644 --- a/TAO/tests/BiDirectional_DelayedUpcall/test_i.inl +++ b/TAO/tests/BiDirectional_DelayedUpcall/test_i.inl @@ -1,8 +1,9 @@ // $Id$ ACE_INLINE -Callback_i::Callback_i (CORBA::ORB_ptr orb) - : orb_ (CORBA::ORB::_duplicate (orb)) +Callback_i::Callback_i (CORBA::ORB_ptr orb, Simple_Server_ptr srv) + : orb_ (CORBA::ORB::_duplicate (orb)), + server_ (Simple_Server::_duplicate (srv)) { } |