From 567f2046f3a15ccd5b9f5e74ec43c103471219a7 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Thu, 28 May 2009 06:38:25 +0000
Subject: [PATCH] Fix for 4015 : wrong error messages when replication heart-beat fails
---
opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java | 21 ++++++++++++---------
opendj-sdk/opends/src/server/org/opends/server/replication/protocol/ProtocolSession.java | 11 ++++++++++-
opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java | 13 ++++++++++++-
opendj-sdk/opends/src/server/org/opends/server/replication/protocol/SocketSession.java | 14 +++++++++++++-
4 files changed, 47 insertions(+), 12 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/ProtocolSession.java b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/ProtocolSession.java
index 0bc3382..6aace54 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/ProtocolSession.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/ProtocolSession.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.server.replication.protocol;
@@ -147,4 +147,13 @@
* @return The timestamp in milliseconds of the last message received.
*/
public abstract long getLastReceiveTime();
+
+ /**
+ * This methods allows to determine if the session close was initiated
+ * on this ProtocolSession.
+ *
+ * @return A boolean allowing to determine if the session close was initiated
+ * on this ProtocolSession.
+ */
+ public abstract boolean closeInitiated();
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/SocketSession.java b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/SocketSession.java
index dbe3893..e20bffa 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/SocketSession.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/SocketSession.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.server.replication.protocol;
@@ -67,6 +67,8 @@
*/
private long lastReceiveTime = 0;
+ private boolean closeInitiated = false;
+
/**
* Creates a new SocketSession based on the provided socket.
@@ -90,6 +92,8 @@
*/
public void close() throws IOException
{
+ closeInitiated = true;
+
if (debugEnabled())
{
TRACER.debugInfo("Closing SocketSession."
@@ -231,4 +235,12 @@
{
socket.setSoTimeout(timeout);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean closeInitiated()
+ {
+ return closeInitiated;
+ }
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java
index 60bddea..4eda8e5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TLSSocketSession.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.server.replication.protocol;
@@ -69,6 +69,8 @@
*/
private long lastReceiveTime = 0;
+ private boolean closeInitiated = false;
+
/**
* Creates a new TLSSocketSession.
@@ -96,6 +98,7 @@
*/
public void close() throws IOException
{
+ closeInitiated = true;
if (debugEnabled())
{
TRACER.debugInfo("Closing SocketSession." +
@@ -243,4 +246,12 @@
{
plainSocket.setSoTimeout(timeout);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean closeInitiated()
+ {
+ return closeInitiated;
+ }
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java b/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
index 78a036e..c20eced 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
@@ -1392,14 +1392,17 @@
{
if (shutdown == false)
{
- Message message =
- NOTE_DISCONNECTED_FROM_CHANGELOG.get(replicationServer,
- Short.toString(rsServerId), baseDn.toString(),
- Short.toString(serverId));
- logError(message);
-
- debugInfo("ReplicationBroker.receive() " + baseDn +
- " Exception raised: " + e.getLocalizedMessage());
+ if (!session.closeInitiated())
+ {
+ /*
+ * If we did not initiate the close on our side, log a message.
+ */
+ Message message =
+ NOTE_DISCONNECTED_FROM_CHANGELOG.get(replicationServer,
+ Short.toString(rsServerId), baseDn.toString(),
+ Short.toString(serverId));
+ logError(message);
+ }
this.reStart(failingSession);
}
}
@@ -1613,7 +1616,7 @@
private boolean debugEnabled()
{
- return true;
+ return false;
}
private static final void debugInfo(String s)
--
Gitblit v1.10.0