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

neil_a_wilson
18.28.2007 c8909a96ccd351ebe0503d9924110716ddf73a2e
Fix a problem that could prevent monitor providers that support periodic
updates from being started. Also, add a layer of protection against uncaught
exceptions from the MonitorProvider.updateMonitorData() method.
2 files modified
24 ■■■■■ changed files
opendj-sdk/opends/src/server/org/opends/server/api/MonitorProvider.java 12 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java 12 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/api/MonitorProvider.java
@@ -275,7 +275,17 @@
    {
      long stopSleepTime =
           System.currentTimeMillis() + getUpdateInterval();
      updateMonitorData();
      try
      {
        updateMonitorData();
      }
      catch (Exception e)
      {
        if (debugEnabled())
        {
          TRACER.debugCaught(DebugLogLevel.ERROR, e);
        }
      }
      long remainingSleepTime =
           stopSleepTime - System.currentTimeMillis();
opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java
@@ -126,6 +126,10 @@
          MonitorProvider<? extends MonitorProviderCfg> monitor =
               loadMonitor(className, monitorConfig);
          monitors.put(monitorConfig.dn(), monitor);
          if (monitor.getUpdateInterval() > 0)
          {
            monitor.start();
          }
          DirectoryServer.registerMonitorProvider(monitor);
        }
        catch (InitializationException ie)
@@ -207,6 +211,10 @@
    if (resultCode == ResultCode.SUCCESS)
    {
      monitors.put(configuration.dn(), monitor);
      if (monitor.getUpdateInterval() > 0)
      {
        monitor.start();
      }
      DirectoryServer.registerMonitorProvider(monitor);
    }
@@ -350,6 +358,10 @@
    if (resultCode == ResultCode.SUCCESS)
    {
      monitors.put(configuration.dn(), monitor);
      if (monitor.getUpdateInterval() > 0)
      {
        monitor.start();
      }
      DirectoryServer.registerMonitorProvider(monitor);
    }