From b677ba1f966ac76de8a3dccd35c5a4186a03c18a Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Thu, 22 Oct 2009 15:21:59 +0000
Subject: [PATCH] Partial fix of #4312 Remove unnessary IOException messages when handler is stopping
---
opends/src/server/org/opends/server/replication/server/ServerHandler.java | 9 ++++
opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java | 72 ++++++++++++++++++++++++-----------
2 files changed, 58 insertions(+), 23 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 3531d5a..b60fee8 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -1812,24 +1812,37 @@
{
for (DataServerHandler handler : directoryServers.values())
{
- if (handler.getStatus() != ServerStatus.NOT_CONNECTED_STATUS)
- {
- if ((notThisOne == null) || // All DSs requested
+ if ((notThisOne == null) || // All DSs requested
((notThisOne != null) && (handler != notThisOne)))
// All except passed one
+ {
+ for (int i=1; i<2; i++)
{
- TopologyMsg topoMsg = createTopologyMsgForDS(handler.getServerId());
- try
+ if (handler.shuttingDown()==false)
{
- handler.sendTopoInfo(topoMsg);
- } catch (IOException e)
- {
- Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get(
- baseDn.toString(),
- "directory", Integer.toString(handler.getServerId()),
- e.getMessage());
- logError(message);
+ if (handler.getStatus() != ServerStatus.NOT_CONNECTED_STATUS)
+ {
+ TopologyMsg topoMsg=createTopologyMsgForDS(handler.getServerId());
+ try
+ {
+ handler.sendTopoInfo(topoMsg);
+ break;
+ }
+ catch (IOException e)
+ {
+ if (i==2)
+ {
+ Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get(
+ baseDn.toString(),
+ "directory",
+ Integer.toString(handler.getServerId()),
+ e.getMessage());
+ logError(message);
+ }
+ }
+ }
}
+ try { Thread.sleep(100); } catch(Exception e) {}
}
}
}
@@ -1844,19 +1857,32 @@
TopologyMsg topoMsg = createTopologyMsgForRS();
for (ReplicationServerHandler handler : replicationServers.values())
{
- if (handler.getStatus() != ServerStatus.NOT_CONNECTED_STATUS)
+ for (int i=1; i<2; i++)
{
- try
+ if (handler.shuttingDown()==false)
{
- handler.sendTopoInfo(topoMsg);
- } catch (IOException e)
- {
- Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get(
- baseDn.toString(),
- "replication", Integer.toString(handler.getServerId()),
- e.getMessage());
- logError(message);
+ if (handler.getStatus() != ServerStatus.NOT_CONNECTED_STATUS)
+ {
+ try
+ {
+ handler.sendTopoInfo(topoMsg);
+ break;
+ }
+ catch (IOException e)
+ {
+ if (i==2)
+ {
+ Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get(
+ baseDn.toString(),
+ "replication",
+ Integer.toString(handler.getServerId()),
+ e.getMessage());
+ logError(message);
+ }
+ }
+ }
}
+ try { Thread.sleep(100); } catch(Exception e) {}
}
}
}
diff --git a/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index 784f01b..22bb668 100644
--- a/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -342,6 +342,15 @@
}
/**
+ * Returns the shutdown flag.
+ * @return The shutdown flag value.
+ */
+ public boolean shuttingDown()
+ {
+ return shuttingDown.get();
+ }
+
+ /**
* Finalize the initialization, create reader, writer, heartbeat system
* and monitoring system.
* @throws DirectoryException When an exception is raised.
--
Gitblit v1.10.0