summaryrefslogtreecommitdiff
path: root/TAO/tests/DLL_ORB/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/DLL_ORB/server.cpp')
-rw-r--r--TAO/tests/DLL_ORB/server.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/TAO/tests/DLL_ORB/server.cpp b/TAO/tests/DLL_ORB/server.cpp
index dcba4ca285c..745226d4c2d 100644
--- a/TAO/tests/DLL_ORB/server.cpp
+++ b/TAO/tests/DLL_ORB/server.cpp
@@ -27,12 +27,18 @@ main (int, char *[])
//
// In the process of doing this, the Test CORBA object will be
// activated, and the ORB will be run.
- if (ACE_Service_Config::process_directive ("dynamic Server_Module Service_Object * Test_Server_Module:_make_Test_Server_Module() \"\"") != 0)
+ //
+ // Note that the Resource_Factory is loaded before the test server
+ // module. This forces the Resource_Factory to exist long enough
+ // for the ORB to be properly destroyed. The ORB requires that the
+ // Resource_Factory exist during ORB destruction.
+ if (ACE_Service_Config::process_directive ("dynamic Resource_Factory Service_Object * TAO:_make_TAO_Default_Resource_Factory() \"\"") != 0
+ || ACE_Service_Config::process_directive ("dynamic Server_Module Service_Object * Test_Server_Module:_make_Test_Server_Module() \"\"") != 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
"%p\n",
"ERROR: Server unable to process the "
- "Service Configurator directive"),
+ "Service Configurator directive(s)"),
-1);
}