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

Jean-Noel Rouvignac
03.04.2014 4b8038247ef707bb6b31df540318c3d20067af26
OPENDJ-1205 Remove network layer from External ChangeLog implementation

Removed duplicate code creating error messages for "badly disconnected" server handlers.
Reduced coupling by moving a call to ECLServerHandler.refreshEligibleCSN() directly inside ECLServerHandler.takeECLUpdate() + reduced refreshEligibleCSN() visibility to private.
4 files modified
97 ■■■■■ changed files
opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java 5 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerWriter.java 51 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java 18 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java 23 ●●●● patch | view | raw | blame | history
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);
  }
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();
      }
    }
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());
  }
}
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);
      }
    }