From f2e967d7d3df9d1b712650a6c321741ad3c827a3 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Thu, 16 Aug 2007 21:31:57 +0000
Subject: [PATCH] Fix a problem in the network group design that prevented the server from restarting correctly when performing an in-core restart.  Also, eliminate a potential null pointer exception if an admin alert was generated early in the server startup process.

---
 opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java       |    4 ++++
 opendj-sdk/opends/src/server/org/opends/server/core/NetworkGroup.java          |   13 +++++++++++++
 opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java |    7 +++++--
 3 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
index f44cf36..dd50131 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -8343,6 +8343,10 @@
     }
 
 
+    // Deregister all network group configuration.
+    NetworkGroup.deregisterAll();
+
+
     // Log a final message indicating that the server is stopped (which should
     // be true for all practical purposes), and then shut down all the error
     // loggers.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/NetworkGroup.java b/opendj-sdk/opends/src/server/org/opends/server/core/NetworkGroup.java
index 3cda3de..37d63ec 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/NetworkGroup.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/NetworkGroup.java
@@ -579,4 +579,17 @@
     return sb;
   }
 
+
+  /**
+   * Deregisters all network groups that have been registered.  This should be
+   * called when the server is shutting down.
+   */
+  public static void deregisterAll()
+  {
+    synchronized (registeredNetworkGroupsLock)
+    {
+      registeredNetworkGroups = new TreeMap<String,NetworkGroup>();
+      defaultNetworkGroup = new NetworkGroup ("default");
+    }
+  }
 }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java
index d1b42b5..bee4e4a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java
@@ -166,8 +166,11 @@
       }
     }
 
-    configuration.addChangeListener(this);
-    currentConfig = configuration;
+    if (configuration != null)
+    {
+      configuration.addChangeListener(this);
+      currentConfig = configuration;
+    }
   }
 
 

--
Gitblit v1.10.0