mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

neil_a_wilson
13.16.2007 17bff7f202a911ac8f0f73c047c86e1a5d662ec9
Update the DirectoryServer class so that it resets the JDK logger whenever the
server shuts down. This is necessary to prevent an exception when performing
an in-core restart (as described in issue #1289) or potentially other cases in
which the server may need to be started multiple times in the same JVM (e.g.,
as in issue #1495).

Note that this has the potential to interfere with applications which embed
OpenDS and also use the JDK logger. If they ever shut down OpenDS, then it
could deregister the parent application's loggers as well. The only way for us
to fix this is to rewrite our loggers so they don't use the JDK logging
framework at all.
1 files modified
13 ■■■■■ changed files
opends/src/server/org/opends/server/core/DirectoryServer.java 13 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -7893,6 +7893,19 @@
    }
    // The JDK logger doesn't allow you to deregister things, so we have to
    // reset it.  This is necessary to avoid exceptions if you perform an
    // in-core restart or stop the server and start a new instance in the same
    // JVM (which currently isn't possible through any means other than an
    // in-core restart but might be exposed at some point).
    //
    // FIXME -- This could cause problems with an application that's embedding
    //          OpenDS and also using the JDK logger.  The solution for this
    //          will come once we have rewritten the loggers so that we no
    //          longer use the JDK logging framework.
    java.util.logging.LogManager.getLogManager().reset();
    // Just in case there's something that isn't shut down properly, wait for
    // the monitor to give the OK to stop.
    shutdownMonitor.waitForMonitor();