summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormcorino <mcorino@users.noreply.github.com>2009-12-10 12:42:52 +0000
committermcorino <mcorino@users.noreply.github.com>2009-12-10 12:42:52 +0000
commit942f7b79bb9db897ad4ce1fc12684ba11573910a (patch)
treed8bf0eaf4f99908466547645d667ae3beb306dff
parent70a295d96bc88ff442615a71a600582d500af449 (diff)
downloadATCD-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/ChangeLog9
-rw-r--r--TAO/tests/BiDirectional_DelayedUpcall/client.cpp6
-rw-r--r--TAO/tests/BiDirectional_DelayedUpcall/test_i.cpp3
-rw-r--r--TAO/tests/BiDirectional_DelayedUpcall/test_i.h4
-rw-r--r--TAO/tests/BiDirectional_DelayedUpcall/test_i.inl5
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))
{
}