From 4b8038247ef707bb6b31df540318c3d20067af26 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 03 Jan 2014 10:04:04 +0000
Subject: [PATCH] OPENDJ-1205 Remove network layer from External ChangeLog implementation
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java | 18 ++++++++
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java | 23 ++---------
opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java | 5 +-
opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerWriter.java | 51 ++++++-------------------
4 files changed, 36 insertions(+), 61 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
index 05fdea5..b3cbf15 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2009-2010 Sun Microsystems, Inc.
- * Portions Copyright 2010-2013 ForgeRock AS
+ * Portions Copyright 2010-2014 ForgeRock AS
*/
package org.opends.server.replication.server;
@@ -1118,6 +1118,7 @@
*/
public ECLUpdateMsg takeECLUpdate() throws DirectoryException
{
+ refreshEligibleCSN();
ECLUpdateMsg msg = getNextECLUpdate();
// TODO:ECL We should refactor so that a SH always have a session
@@ -1509,7 +1510,7 @@
/**
* Refresh the eligibleCSN by requesting the replication server.
*/
- public void refreshEligibleCSN()
+ private void refreshEligibleCSN()
{
eligibleCSN = replicationServer.getEligibleCSN(excludedBaseDNs);
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerWriter.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerWriter.java
index a16fd78..eca578e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerWriter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerWriter.java
@@ -22,14 +22,13 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
- * Portions copyright 2011-2013 ForgeRock AS
+ * Portions copyright 2011-2014 ForgeRock AS
*/
package org.opends.server.replication.server;
import java.io.IOException;
import java.net.SocketException;
-import org.opends.messages.Message;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.PersistentSearch;
import org.opends.server.loggers.debug.DebugTracer;
@@ -59,11 +58,11 @@
*/
private static final DebugTracer TRACER = getTracer();
- private Session session;
- private ECLServerHandler handler;
- private ReplicationServerDomain replicationServerDomain;
+ private final Session session;
+ private final ECLServerHandler handler;
+ private final ReplicationServerDomain replicationServerDomain;
private boolean suspended;
- private boolean shutdown;
+ private volatile boolean shutdown;
private PersistentSearch mypsearch;
/**
@@ -111,10 +110,7 @@
*/
public synchronized void suspendWriter()
{
- synchronized(this)
- {
- suspended = true;
- }
+ suspended = true;
}
/**
@@ -122,10 +118,7 @@
*/
public synchronized void resumeWriter()
{
- synchronized(this)
- {
- suspended = false;
- }
+ suspended = false;
notify();
}
@@ -168,33 +161,15 @@
// session is always null if a socket exception has occurred.
if (session != null)
{
- final Message errMessage;
- if (handler.isDataServer())
- {
- errMessage = ERR_DS_BADLY_DISCONNECTED.get(
- handler.getReplicationServerId(),
- handler.getServerId(),
- session.getReadableRemoteAddress(),
- handler.getBaseDNString());
- }
- else
- {
- errMessage = ERR_RS_BADLY_DISCONNECTED.get(
- handler.getReplicationServerId(),
- handler.getServerId(),
- session.getReadableRemoteAddress(),
- handler.getBaseDNString());
- }
- logError(errMessage);
+ logError(handler.getBadlyDisconnectedErrorMessage());
}
}
catch (Exception e)
{
// An unexpected error happened.
// Log an error and close the connection.
- Message errMessage = ERR_WRITER_UNEXPECTED_EXCEPTION
- .get(handler + " " + stackTraceToSingleLineString(e));
- logError(errMessage);
+ logError(ERR_WRITER_UNEXPECTED_EXCEPTION.get(
+ handler + " " + stackTraceToSingleLineString(e)));
}
finally
{
@@ -225,7 +200,6 @@
ECLUpdateMsg update = null;
try
{
- handler.refreshEligibleCSN();
update = handler.takeECLUpdate();
}
catch(DirectoryException de)
@@ -292,9 +266,8 @@
}
catch (Exception e)
{
- Message errMessage = ERR_WRITER_UNEXPECTED_EXCEPTION.get(
- handler + " " + stackTraceToSingleLineString(e));
- logError(errMessage);
+ logError(ERR_WRITER_UNEXPECTED_EXCEPTION.get(
+ handler + " " + stackTraceToSingleLineString(e)));
mypsearch.cancel();
}
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index 774c0e9..c7efe83 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2006-2010 Sun Microsystems, Inc.
- * Portions copyright 2011-2013 ForgeRock AS
+ * Portions copyright 2011-2014 ForgeRock AS
*/
package org.opends.server.replication.server;
@@ -1240,4 +1240,20 @@
sslEncryption, getLocalGroupId(),
replicationServer.getDegradedStatusThreshold());
}
+
+ /**
+ * Returns a "badly disconnected" error message for this server handler.
+ *
+ * @return a "badly disconnected" error message for this server handler
+ */
+ public Message getBadlyDisconnectedErrorMessage()
+ {
+ if (isDataServer())
+ {
+ return ERR_DS_BADLY_DISCONNECTED.get(getReplicationServerId(),
+ getServerId(), session.getReadableRemoteAddress(), getBaseDNString());
+ }
+ return ERR_RS_BADLY_DISCONNECTED.get(getReplicationServerId(),
+ getServerId(), session.getReadableRemoteAddress(), getBaseDNString());
+ }
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java
index 9f31cd2..06a75cf 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java
@@ -22,11 +22,11 @@
*
*
* Copyright 2006-2010 Sun Microsystems, Inc.
- * Portions Copyright 2011-2013 ForgeRock AS
+ * Portions Copyright 2011-2014 ForgeRock AS
*/
package org.opends.server.replication.server;
-import java.io.IOException;
+import java.net.SocketException;
import org.opends.messages.Message;
import org.opends.server.api.DirectoryThread;
@@ -59,9 +59,6 @@
private static final DebugTracer TRACER = getTracer();
private final Session session;
private final ServerHandler handler;
- private final String remoteAddress;
-
-
/**
* Constructor for the LDAP server reader part of the replicationServer.
@@ -78,7 +75,6 @@
+ session.getReadableRemoteAddress());
this.session = session;
this.handler = handler;
- this.remoteAddress = session.getReadableRemoteAddress();
}
/**
@@ -247,7 +243,7 @@
}
}
}
- catch (IOException e)
+ catch (SocketException e)
{
/*
* The connection has been broken
@@ -257,18 +253,7 @@
logException(e);
if (!handler.shuttingDown())
{
- if (handler.isDataServer())
- {
- errMessage = ERR_DS_BADLY_DISCONNECTED.get(
- handler.getReplicationServerId(), handler.getServerId(),
- remoteAddress, handler.getBaseDNString());
- }
- else
- {
- errMessage = ERR_RS_BADLY_DISCONNECTED.get(
- handler.getReplicationServerId(), handler.getServerId(),
- remoteAddress, handler.getBaseDNString());
- }
+ errMessage = handler.getBadlyDisconnectedErrorMessage();
logError(errMessage);
}
}
--
Gitblit v1.10.0