From 1ae102817c1753ec82aee2cac88f6aba5b454ed7 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Mon, 31 May 2010 13:13:36 +0000
Subject: [PATCH] Add try / catch block to better scope exception caught in monitoring publisher thread.
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java | 65 +++++++++++++++++++-------------
1 files changed, 39 insertions(+), 26 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java
index 71c652a..d74a43c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java
@@ -27,8 +27,14 @@
package org.opends.server.replication.server;
import java.io.IOException;
+import java.util.NoSuchElementException;
+import org.opends.messages.Category;
+import org.opends.messages.Message;
+import org.opends.messages.Severity;
import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
import static org.opends.server.loggers.debug.DebugLogger.getTracer;
+import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
import org.opends.server.api.DirectoryThread;
import org.opends.server.loggers.debug.DebugTracer;
@@ -96,39 +102,46 @@
{
try
{
- synchronized (sleeper)
+ try
{
- sleeper.wait(period);
+ synchronized (sleeper)
+ {
+ sleeper.wait(period);
+ }
+ } catch (InterruptedException ex)
+ {
+ TRACER.debugInfo("Monitoring publisher for dn " +
+ replicationServerDomain.getBaseDn().toString() + " in RS " +
+ replicationServerDomain.getReplicationServer().getServerId() +
+ " has been interrupted while sleeping.");
}
- } catch (InterruptedException ex)
- {
- TRACER.debugInfo("Monitoring publisher for dn " +
- replicationServerDomain.getBaseDn().toString() + " in RS " +
- replicationServerDomain.getReplicationServer().getServerId() +
- " has been interrupted while sleeping.");
- }
- // Send global topology information to peer DSs
- MonitorMsg monitorMsg =
- replicationServerDomain.createGlobalTopologyMonitorMsg(0, 0, true);
- int localServerId =
- replicationServerDomain.getReplicationServer().getServerId();
- if (monitorMsg != null)
- {
- for (ServerHandler serverHandler :
- replicationServerDomain.getConnectedDSs().values())
+ // Send global topology information to peer DSs
+ MonitorMsg monitorMsg =
+ replicationServerDomain.createGlobalTopologyMonitorMsg(0, 0, true);
+ int localServerId =
+ replicationServerDomain.getReplicationServer().getServerId();
+ if (monitorMsg != null)
{
- // Set the right sender and destination ids
- monitorMsg.setSenderID(localServerId);
- monitorMsg.setDestination(serverHandler.getServerId());
- try
+ for (ServerHandler serverHandler :
+ replicationServerDomain.getConnectedDSs().values())
{
- serverHandler.send(monitorMsg);
- } catch (IOException e)
- {
- // Server is disconnecting ? Forget it
+ // Set the right sender and destination ids
+ monitorMsg.setSenderID(localServerId);
+ monitorMsg.setDestination(serverHandler.getServerId());
+ try
+ {
+ serverHandler.send(monitorMsg);
+ } catch (IOException e)
+ {
+ // Server is disconnecting ? Forget it
+ }
}
}
+ } catch (NoSuchElementException e)
+ {
+ logError(Message.raw(Category.SYNC, Severity.SEVERE_ERROR,
+ stackTraceToSingleLineString(e)));
}
}
--
Gitblit v1.10.0