summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2018-10-30 11:41:06 +0100
committerGitHub <noreply@github.com>2018-10-30 11:41:06 +0100
commit1a7f9bc556a6a74c2a66065af0f0b9489b5aca1e (patch)
tree6809b16a661365b1bc1cc2935dc36495d2438f7a
parentacb085452d4199c5eec36ee0f8f2a3d968f73016 (diff)
parente6499d3d089f100cb9eb859bf6e3bc3334fc369a (diff)
downloadATCD-1a7f9bc556a6a74c2a66065af0f0b9489b5aca1e.tar.gz
Merge pull request #731 from jwillemsen/milan-mpathix-bug_4213-uiop_corbaloc_key
Added new unit test and fix for uiop problem
-rw-r--r--TAO/bin/tao_orb_tests.lst1
-rw-r--r--TAO/docs/ORBEndpoint.html9
-rw-r--r--TAO/docs/Options.html2
-rw-r--r--TAO/docs/pluggable_messaging.html7
-rw-r--r--TAO/docs/pluggable_protocols/index.html4
-rw-r--r--TAO/tao/CORBALOC_Parser.cpp11
-rw-r--r--TAO/tao/Strategies/SHMIOP_Profile.cpp2
-rw-r--r--TAO/tao/Strategies/UIOP_Connection_Handler.cpp2
-rw-r--r--TAO/tao/Strategies/UIOP_Connector.cpp2
-rw-r--r--TAO/tests/Bug_4213_Regression/Bug_4213_Regression.mpc35
-rw-r--r--TAO/tests/Bug_4213_Regression/Hello.cpp18
-rw-r--r--TAO/tests/Bug_4213_Regression/Hello.h28
-rw-r--r--TAO/tests/Bug_4213_Regression/Test.idl17
-rw-r--r--TAO/tests/Bug_4213_Regression/client.cpp71
-rwxr-xr-xTAO/tests/Bug_4213_Regression/run_test.pl83
-rw-r--r--TAO/tests/Bug_4213_Regression/server.cpp113
-rw-r--r--TAO/tests/Connection_Purging/README2
-rw-r--r--TAO/tests/Connection_Purging/test.idl2
18 files changed, 380 insertions, 29 deletions
diff --git a/TAO/bin/tao_orb_tests.lst b/TAO/bin/tao_orb_tests.lst
index 6e087048ee9..7908e0ef5e7 100644
--- a/TAO/bin/tao_orb_tests.lst
+++ b/TAO/bin/tao_orb_tests.lst
@@ -209,6 +209,7 @@ TAO/tests/Bug_4010_Regression/run_test.pl:
TAO/tests/Bug_4059_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
TAO/tests/Bug_4082_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
TAO/tests/Bug_4097_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRRO
+TAO/tests/Bug_4213_Regression/run_test.pl: !Win32
TAO/tests/DIOP/run_test.pl: !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO
TAO/tests/DIOP/run_test_ipv6.pl: IPV6 !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO
TAO/tests/RTCORBA/Activate_Object_Multiple_ORBs/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
diff --git a/TAO/docs/ORBEndpoint.html b/TAO/docs/ORBEndpoint.html
index 44b3aed365a..eecd1c81cc5 100644
--- a/TAO/docs/ORBEndpoint.html
+++ b/TAO/docs/ORBEndpoint.html
@@ -29,7 +29,7 @@
<blockquote><CODE>
protocol://V.v@addr1,...,W.w@addrN
</CODE></blockquote>
- where <CODE>V.v</CODE> and <CODE>W.w</CODE> are optional protcol
+ where <CODE>V.v</CODE> and <CODE>W.w</CODE> are optional protocol
versions for each address. An example of an IIOP endpoint is:
<blockquote><CODE>
iiop://<I><EM>hostname</EM></I>:<I><EM>port</EM></I>
@@ -488,7 +488,7 @@
<P>
Options are separated from the addresses by a vertical bar
- '<CODE>|</CODE>'. For instance, if an IIOP endpoint should have
+ '<CODE>|</CODE>'. For instance, if an UIOP endpoint should have
a property foobar of 50 associated with it, then the following
endpoint specification could be used
<BLOCKQUOTE>
@@ -638,11 +638,6 @@
SSLIOP pluggable protocol is used.
<hr>
-
<address><a href="mailto:ossama@dre.vanderbilt.edu">Ossama Othman</a></address>
-<!-- Created: Thu May 18 08:37:25 PDT 2000 -->
-<!-- hhmts start -->
-Last modified: Fri Jun 11 16:51:59 PDT 2004
-<!-- hhmts end -->
</body>
</html>
diff --git a/TAO/docs/Options.html b/TAO/docs/Options.html
index 88f1d914e10..fe7b40b8814 100644
--- a/TAO/docs/Options.html
+++ b/TAO/docs/Options.html
@@ -667,7 +667,7 @@ is <code>0</code>. This option is disabled (<code>0</code>) by default.</td>
<td><code>-ORBListenEndpoints</code> <em>endpoint</em></td>
<td><a name="-ORBListenEndpoints"></a> This option was
introduced with the CORBA <a
- href="http://www.omg.org/docs/orbos/01-01-04.pdf">Object
+ href="https://www.omg.org/cgi-bin/doc?orbos/01-01-04">Object
Reference Template</A> (ORT) specification. It instructs a
server ORB to listen for requests on the interface specified
by <code>endpoint</code>. When used with Real-time CORBA, the option
diff --git a/TAO/docs/pluggable_messaging.html b/TAO/docs/pluggable_messaging.html
index 64c41600b20..82c8d6efc04 100644
--- a/TAO/docs/pluggable_messaging.html
+++ b/TAO/docs/pluggable_messaging.html
@@ -84,7 +84,7 @@
<P>The GIOP_Message_Connector and the derived classes
implements the different types of messages that can
originate from the client. In GIOP 1.2, with the
- specification of Bi-Directional GIOP, this disticntion
+ specification of Bi-Directional GIOP, this distinction
between the client and server would decrease. But, this
would be applicable only for GIOP 1.2. The present
inheritance model, allows us to implement some of the roles
@@ -131,11 +131,6 @@
<body>
<h1></h1>
-
-
<hr>
<address></address>
-<!-- hhmts start -->
-Last modified: Thu Mar 16 11:23:03 CST 2000
-<!-- hhmts end -->
</body> </html>
diff --git a/TAO/docs/pluggable_protocols/index.html b/TAO/docs/pluggable_protocols/index.html
index cbcea09369a..7f3da9d177b 100644
--- a/TAO/docs/pluggable_protocols/index.html
+++ b/TAO/docs/pluggable_protocols/index.html
@@ -1317,7 +1317,7 @@ as follows:
<DD>uioploc:///tmp/foobar/some_other_object_key</DD>
</DL>
<P>
-it then becomes impossible to tell if the rendezous point is ``<TT>/tmp</TT>''
+it then becomes impossible to tell if the rendezvous point is ``<TT>/tmp</TT>''
or ``<TT>/tmp/foobar</TT>,'' and similarly for the object key, hence the need
for an object key delimiter other than `<TT>/</TT>.'
@@ -1329,7 +1329,7 @@ that contains the object key delimiter appropriate for the given pluggable proto
</DD>
<DT><STRONG><TT>create_profile</TT>.</STRONG></DT>
<DD>This method creates and initializes a profile using
-the provided CDR stream. Most of this code is also ``boilerblate.'' As such,
+the provided CDR stream. Most of this code is also ``boilerplate.'' As such,
it may be factored out in future TAO releases.</DD>
<P>
<DT><STRONG><TT>make_profile</TT>.</STRONG></DT>
diff --git a/TAO/tao/CORBALOC_Parser.cpp b/TAO/tao/CORBALOC_Parser.cpp
index 63cd20f81ae..fd98b445944 100644
--- a/TAO/tao/CORBALOC_Parser.cpp
+++ b/TAO/tao/CORBALOC_Parser.cpp
@@ -136,7 +136,7 @@ TAO_CORBALOC_Parser::parse_string (const char * ior, CORBA::ORB_ptr orb)
size_t len = 0;
size_t ndx = endpoints.size();
endpoints.size(ndx+1);
- int uiop_compatible = 0;
+ bool uiop_compatible = false;
TAO_ConnectorSetIterator conn_iter = 0;
for (conn_iter = conn_reg->begin();
conn_iter != conn_reg->end() &&
@@ -148,8 +148,7 @@ TAO_CORBALOC_Parser::parse_string (const char * ior, CORBA::ORB_ptr orb)
if (endpoints[ndx].profile_)
{
- endpoints[ndx].obj_key_sep_ =
- (*conn_iter)->object_key_delimiter();
+ endpoints[ndx].obj_key_sep_ = (*conn_iter)->object_key_delimiter();
uiop_compatible = (endpoints[ndx].obj_key_sep_ == '|');
this->make_canonical (ior,len,endpoints[ndx].prot_addr_);
ior += len;
@@ -172,7 +171,7 @@ TAO_CORBALOC_Parser::parse_string (const char * ior, CORBA::ORB_ptr orb)
continue;
}
- if (*ior == '/') // found key separator
+ if (*ior == endpoints[ndx].obj_key_sep_) // found key separator
{
++ior;
break;
@@ -192,7 +191,7 @@ TAO_CORBALOC_Parser::parse_string (const char * ior, CORBA::ORB_ptr orb)
if (TAO_debug_level)
TAOLIB_ERROR ((LM_ERROR,
ACE_TEXT("TAO (%P|%t) - TAO_CORBALOC_Parser::parse_string ")
- ACE_TEXT("could not parse from %C\n"),
+ ACE_TEXT("could not parse from <%C>\n"),
ior));
throw ::CORBA::BAD_PARAM (CORBA::OMGVMCID | 10, CORBA::COMPLETED_NO);
} // end of while
@@ -211,7 +210,7 @@ TAO_CORBALOC_Parser::parse_string (const char * ior, CORBA::ORB_ptr orb)
obj_key;
const char * str = full_ep.c_str();
endpoints[i].profile_->parse_string (str);
- int share = orb->orb_core()->orb_params()->shared_profile();
+ int const share = orb->orb_core()->orb_params()->shared_profile();
if (mprofile.give_profile(endpoints[i].profile_, share) != -1)
endpoints[i].profile_ = 0;
else
diff --git a/TAO/tao/Strategies/SHMIOP_Profile.cpp b/TAO/tao/Strategies/SHMIOP_Profile.cpp
index 94c29e1ff66..17a3b19add8 100644
--- a/TAO/tao/Strategies/SHMIOP_Profile.cpp
+++ b/TAO/tao/Strategies/SHMIOP_Profile.cpp
@@ -386,7 +386,7 @@ TAO_SHMIOP_Profile::create_profile_body (TAO_OutputCDR &encap) const
else
{
TAOLIB_ERROR ((LM_ERROR,
- "(%P|%t) TAO - UIOP_Profile::create_profile_body "
+ "(%P|%t) TAO - SHMIOP_Profile::create_profile_body "
"no object key marshalled\n"));
}
diff --git a/TAO/tao/Strategies/UIOP_Connection_Handler.cpp b/TAO/tao/Strategies/UIOP_Connection_Handler.cpp
index 92ee31f5679..e6638ac8f3f 100644
--- a/TAO/tao/Strategies/UIOP_Connection_Handler.cpp
+++ b/TAO/tao/Strategies/UIOP_Connection_Handler.cpp
@@ -120,7 +120,7 @@ TAO_UIOP_Connection_Handler::open (void*)
if (TAO_debug_level > 0)
TAOLIB_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) UIOP connection to server ")
+ ACE_TEXT ("TAO (%P|%t) - UIOP_Connection_Handler::open, connection to server ")
ACE_TEXT ("<%C> on %d\n"),
addr.get_path_name (), this->peer ().get_handle ()));
diff --git a/TAO/tao/Strategies/UIOP_Connector.cpp b/TAO/tao/Strategies/UIOP_Connector.cpp
index 1d739ccd8c8..c4abd8dd420 100644
--- a/TAO/tao/Strategies/UIOP_Connector.cpp
+++ b/TAO/tao/Strategies/UIOP_Connector.cpp
@@ -86,7 +86,7 @@ TAO_UIOP_Connector::corbaloc_scan (const char *str, size_t &len)
str));
return 0;
}
- len = (separator - str) + 1;
+ len = separator - str;
return this->make_profile ();
}
diff --git a/TAO/tests/Bug_4213_Regression/Bug_4213_Regression.mpc b/TAO/tests/Bug_4213_Regression/Bug_4213_Regression.mpc
new file mode 100644
index 00000000000..370086e5f73
--- /dev/null
+++ b/TAO/tests/Bug_4213_Regression/Bug_4213_Regression.mpc
@@ -0,0 +1,35 @@
+// -*- MPC -*-
+project(*idl): taoidldefaults {
+ idlflags += -Sp
+ IDL_Files {
+ Test.idl
+ }
+ custom_only = 1
+}
+
+project(*Server): strategies, taoserver, iortable {
+ after += *idl
+ Source_Files {
+ Hello.cpp
+ server.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ TestS.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Client): strategies, taoclient {
+ after += *idl
+ Source_Files {
+ client.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ }
+ IDL_Files {
+ }
+}
+
diff --git a/TAO/tests/Bug_4213_Regression/Hello.cpp b/TAO/tests/Bug_4213_Regression/Hello.cpp
new file mode 100644
index 00000000000..733fe2bfcaf
--- /dev/null
+++ b/TAO/tests/Bug_4213_Regression/Hello.cpp
@@ -0,0 +1,18 @@
+#include "Hello.h"
+
+Hello::Hello (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+char *
+Hello::get_string (void)
+{
+ return CORBA::string_dup ("Hello there!");
+}
+
+void
+Hello::shutdown (void)
+{
+ this->orb_->shutdown (0);
+}
diff --git a/TAO/tests/Bug_4213_Regression/Hello.h b/TAO/tests/Bug_4213_Regression/Hello.h
new file mode 100644
index 00000000000..8b2124d9fe5
--- /dev/null
+++ b/TAO/tests/Bug_4213_Regression/Hello.h
@@ -0,0 +1,28 @@
+
+#ifndef HELLO_H
+#define HELLO_H
+#include /**/ "ace/pre.h"
+
+#include "TestS.h"
+
+/// Implement the Test::Hello interface
+class Hello
+ : public virtual POA_Test::Hello
+{
+public:
+ /// Constructor
+ Hello (CORBA::ORB_ptr orb);
+
+ // = The skeleton methods
+ virtual char * get_string (void);
+
+ virtual void shutdown (void);
+
+private:
+ /// Use an ORB reference to convert strings to objects and shutdown
+ /// the application.
+ CORBA::ORB_var orb_;
+};
+
+#include /**/ "ace/post.h"
+#endif /* HELLO_H */
diff --git a/TAO/tests/Bug_4213_Regression/Test.idl b/TAO/tests/Bug_4213_Regression/Test.idl
new file mode 100644
index 00000000000..6cd2805ea74
--- /dev/null
+++ b/TAO/tests/Bug_4213_Regression/Test.idl
@@ -0,0 +1,17 @@
+
+/// Put the interfaces in a module, to avoid global namespace pollution
+module Test
+{
+ /// A very simple interface
+ interface Hello
+ {
+ /// Return a simple string
+ string get_string ();
+
+ /// A method to shutdown the ORB
+ /**
+ * This method is used to simplify the test shutdown process
+ */
+ oneway void shutdown ();
+ };
+};
diff --git a/TAO/tests/Bug_4213_Regression/client.cpp b/TAO/tests/Bug_4213_Regression/client.cpp
new file mode 100644
index 00000000000..0c84ecddb37
--- /dev/null
+++ b/TAO/tests/Bug_4213_Regression/client.cpp
@@ -0,0 +1,71 @@
+#include "TestC.h"
+#include "ace/Get_Opt.h"
+#include "tao/Strategies/advanced_resource.h"
+
+const ACE_TCHAR *ior = ACE_TEXT ("file://test.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates successful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var tmp = orb->string_to_object(ior);
+
+ Test::Hello_var hello = Test::Hello::_narrow(tmp.in ());
+
+ if (CORBA::is_nil (hello.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Nil Test::Hello reference <%s>\n",
+ ior),
+ 1);
+ }
+
+ CORBA::String_var the_string = hello->get_string ();
+
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%C>\n",
+ the_string.in ()));
+
+ hello->shutdown ();
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_4213_Regression/run_test.pl b/TAO/tests/Bug_4213_Regression/run_test.pl
new file mode 100755
index 00000000000..4e8dc670d68
--- /dev/null
+++ b/TAO/tests/Bug_4213_Regression/run_test.pl
@@ -0,0 +1,83 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$debug_level = '0';
+$cdebug_level = '0';
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+ if ($i eq '-cdebug') {
+ $cdebug_level = '10';
+ }
+}
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+
+my $iorbase = "server.ior";
+my $socket_name = "/tmp/endpoint";
+my $server_iorfile = $server->LocalFile ($iorbase);
+my $server_socket = $server->LocalFile ($socket_name);
+my $client_iorfile = $client->LocalFile ($iorbase);
+my $client_socket = $client->LocalFile ($socket_name);
+
+$server->DeleteFile($iorbase);
+$server->DeleteFile($socket_name);
+$client->DeleteFile($iorbase);
+$client->DeleteFile($socket_name);
+
+$SV = $server->CreateProcess ("server", "-ORBdebuglevel $debug_level -o $server_iorfile -ORBEndpoint uiop://$server_socket");
+$CL = $client->CreateProcess ("client", "-ORBdebuglevel $cdebug_level -k corbaloc:uiop:$server_socket|Hello");
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
+
+if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+if ($server->GetFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+if ($client->PutFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot set file <$client_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval());
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+$server->DeleteFile($iorbase);
+$server->DeleteFile($socket_name);
+$client->DeleteFile($iorbase);
+$client->DeleteFile($socket_name);
+
+exit $status;
diff --git a/TAO/tests/Bug_4213_Regression/server.cpp b/TAO/tests/Bug_4213_Regression/server.cpp
new file mode 100644
index 00000000000..8a476508f3e
--- /dev/null
+++ b/TAO/tests/Bug_4213_Regression/server.cpp
@@ -0,0 +1,113 @@
+#include "Hello.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+#include "tao/Strategies/advanced_resource.h"
+#include "tao/IORTable/IORTable.h"
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT ("test.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates successful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ if (CORBA::is_nil (root_poa.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Panic: nil RootPOA\n"),
+ 1);
+
+ PortableServer::POAManager_var poa_manager = root_poa->the_POAManager ();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ Hello *hello_impl = 0;
+ ACE_NEW_RETURN (hello_impl,
+ Hello (orb.in ()),
+ 1);
+ PortableServer::ServantBase_var owner_transfer(hello_impl);
+
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (hello_impl);
+
+ CORBA::Object_var object = root_poa->id_to_reference (id.in ());
+
+ Test::Hello_var hello = Test::Hello::_narrow (object.in ());
+
+ CORBA::String_var ior = orb->object_to_string (hello.in ());
+
+ CORBA::Object_var table_object = orb->resolve_initial_references ("IORTable");
+
+ IORTable::Table_var adapter = IORTable::Table::_narrow (table_object.in ());
+ if (CORBA::is_nil (adapter.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Nil IORTable\n"));
+ }
+ else
+ {
+ adapter->bind ("Hello", ior.in ());
+ }
+
+ // Output the IOR to the <ior_output_file>
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: <%s>\n",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n"));
+
+ root_poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Connection_Purging/README b/TAO/tests/Connection_Purging/README
index 95524a2116d..d4b9df91f89 100644
--- a/TAO/tests/Connection_Purging/README
+++ b/TAO/tests/Connection_Purging/README
@@ -1,5 +1,3 @@
-
-
Connection Purging
------------------
diff --git a/TAO/tests/Connection_Purging/test.idl b/TAO/tests/Connection_Purging/test.idl
index 7c5dec9cd92..5713764cb2a 100644
--- a/TAO/tests/Connection_Purging/test.idl
+++ b/TAO/tests/Connection_Purging/test.idl
@@ -1,6 +1,4 @@
interface test
{
void send_stuff(in string foo);
-
-// oneway void shutdown ();
};