From 16e0eb720faae6548b0903a4ceef18c3f333592a Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Tue, 03 Oct 2006 06:59:43 +0000
Subject: [PATCH] In the previous implementation, each time we had a configuration change, the JMX connector **AND** the RMI registry was closed.
---
opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java | 32 ++++++++++++++++++--------------
opends/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java | 10 +++++++---
2 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/opends/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java b/opends/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java
index 3fd9e68..3bfda41 100644
--- a/opends/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java
+++ b/opends/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java
@@ -505,7 +505,9 @@
String finalizeReason, boolean closeConnections)
{
assert debugEnter(CLASS_NAME, "finalizeConnectionHandler");
- rmiConnector.finalizeConnectionHandler(closeConnections);
+
+ // We should also close the RMI registry.
+ rmiConnector.finalizeConnectionHandler(closeConnections, true);
}
/**
@@ -552,7 +554,8 @@
public void processServerShutdown(String reason)
{
assert debugEnter(CLASS_NAME, "processServerShutdown");
- rmiConnector.finalizeConnectionHandler(true);
+ // We should also close the RMI registry.
+ rmiConnector.finalizeConnectionHandler(true, true);
}
@@ -795,7 +798,8 @@
//
// Stop the current connector
// TODO Set Msg
- this.finalizeConnectionHandler("new config", true);
+ this.rmiConnector.finalizeConnectionHandler(true,
+ (listenPort != newListenPort));
//
// set new params and update JMX attributes
diff --git a/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java b/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java
index f635fb4..9d359e4 100644
--- a/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java
+++ b/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java
@@ -30,7 +30,6 @@
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
-import java.rmi.server.RMISocketFactory;
import java.util.HashMap;
import javax.net.ssl.SSLSocketFactory;
@@ -225,8 +224,7 @@
if (registry == null)
{
rmiSsf = new OpendsRmiServerSocketFactory();
- registry = LocateRegistry.createRegistry(registryPort,
- RMISocketFactory.getDefaultSocketFactory(), rmiSsf);
+ registry = LocateRegistry.createRegistry(registryPort, null, rmiSsf);
}
}
catch (RemoteException re)
@@ -421,8 +419,10 @@
* Indicates whether any established client connections
* associated with the connection handler should also be
* closed.
+ * @param stopRegistry Indicates if the RMI registry should be stopped
*/
- public void finalizeConnectionHandler(boolean closeConnections)
+ public void finalizeConnectionHandler(
+ boolean closeConnections, boolean stopRegistry)
{
if (closeConnections)
{
@@ -476,17 +476,21 @@
assert debugException(CLASS_NAME, "finalizeConnectionHandler", e);
}
- //
- // Close the socket
- try
+ if (stopRegistry)
{
- rmiSsf.close();
+ //
+ // Close the socket
+ try
+ {
+ rmiSsf.close();
+ }
+ catch (IOException e)
+ {
+ // TODO Log an error message
+ assert debugException(CLASS_NAME, "finalizeConnectionHandler", e);
+ }
+ registry = null;
}
- catch (IOException e)
- {
- // TODO Log an error message
- assert debugException(CLASS_NAME, "finalizeConnectionHandler", e);
- }
- registry = null;
+
}
}
--
Gitblit v1.10.0