summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/process
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/process')
-rw-r--r--src/main/java/com/c2kernel/process/Gateway.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/com/c2kernel/process/Gateway.java b/src/main/java/com/c2kernel/process/Gateway.java
index 2eee5a5..fddda5c 100644
--- a/src/main/java/com/c2kernel/process/Gateway.java
+++ b/src/main/java/com/c2kernel/process/Gateway.java
@@ -52,13 +52,13 @@ public class Gateway
static private Properties mC2KProps;
static private ModuleManager mModules;
static private org.omg.CORBA.ORB mORB;
+ static private boolean orbDestroyed = false;
static private LDAPLookup mLDAPLookup;
static private TransactionManager mStorage;
static private EntityProxyManager mProxyManager;
static private CorbaServer mCorbaServer;
static private CastorXMLUtility mMarshaller;
static private AgentProxy mCurrentUser = null;
- //static private SimpleTCPIPServer mHTTPServer;
@@ -323,7 +323,7 @@ public class Gateway
{
// run shutdown module scripts
mModules.runScripts("shutdown");
-
+
// shut down servers if running
if (mCorbaServer != null)
mCorbaServer.close();
@@ -349,11 +349,13 @@ public class Gateway
Logger.closeConsole();
// finally, destroy the ORB
+ orbDestroyed = true;
getORB().destroy();
}
static public org.omg.CORBA.ORB getORB()
{
+ if (orbDestroyed) throw new RuntimeException("Gateway has been closed. ORB is destroyed.");
if (mORB == null)
mORB = org.omg.CORBA.ORB.init(new String[0], null);
return mORB;