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

Matthew Swift
19.51.2012 9e64ce25287ad023bfa47b17cddd870f990d1eb8
Initial cleanup for OPENDJ-506: NoSuchElementException thrown during replication in java.util.TreeMap.key(TreeMap.java:1221)

Remove dead code which depends on MsgQueue.
4 files modified
121 ■■■■■ changed files
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java 6 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/MessageHandler.java 62 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/MsgQueue.java 14 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ServerHandler.java 39 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -23,7 +23,7 @@
 *
 *
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2010-2011 ForgeRock AS
 *      Portions Copyright 2010-2012 ForgeRock AS
 */
package org.opends.server.replication.server;
@@ -232,7 +232,7 @@
          // non blocking
          UpdateMsg newMsg;
          do {
            newMsg = mh.getnextMessage(false);
            newMsg = mh.getNextMessage(false);
            // when the replication changelog is trimmed, the last (latest) chg
            // is left in the db (whatever its age), and we don't want this chg
            // to be returned in the external changelog.
@@ -1232,7 +1232,7 @@
   * @return the next message
   */
  @Override
  protected UpdateMsg getnextMessage(boolean synchronous)
  protected UpdateMsg getNextMessage(boolean synchronous)
  {
    UpdateMsg msg = null;
    try
opends/src/server/org/opends/server/replication/server/MessageHandler.java
@@ -23,7 +23,7 @@
 *
 *
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 *      Portions copyright 2011 ForgeRock AS
 *      Portions copyright 2011-2012 ForgeRock AS
 */
package org.opends.server.replication.server;
@@ -49,7 +49,6 @@
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.opends.server.types.ResultCode;
import org.opends.server.util.TimeThread;
/**
 * This class implements a buffering/producer/consumer mechanism of
@@ -75,7 +74,7 @@
  /**
   * Late queue.
   */
  protected MsgQueue lateQueue = new MsgQueue();
  private final MsgQueue lateQueue = new MsgQueue();
  /**
   * Local hosting RS.
   */
@@ -195,49 +194,6 @@
  }
  /**
   * Get an approximation of the delay by looking at the age of the oldest
   * message that has not been sent to this server.
   * This is an approximation because the age is calculated using the
   * clock of the server where the replicationServer is currently running
   * while it should be calculated using the clock of the server
   * that originally processed the change.
   *
   * The approximation error is therefore the time difference between
   *
   * @return the approximate delay for the connected server.
   */
  public long getApproxDelay()
  {
    long olderUpdateTime = getOlderUpdateTime();
    if (olderUpdateTime == 0)
      return 0;
    long currentTime = TimeThread.getTime();
    return ((currentTime - olderUpdateTime) / 1000);
  }
  /**
   * Get the age of the older change that has not yet been replicated
   * to the server handled by this ServerHandler.
   * @return The age if the older change has not yet been replicated
   *         to the server handled by this ServerHandler.
   */
  public Long getApproxFirstMissingDate()
  {
    Long result = (long) 0;
    // Get the older CN received
    ChangeNumber olderUpdateCN = getOlderUpdateCN();
    if (olderUpdateCN != null)
    {
      // If not present in the local RS db,
      // then approximate with the older update time
      result = olderUpdateCN.getTime();
    }
    return result;
  }
  /**
   * Returns the Replication Server Domain to which belongs this handler.
   *
   * @param createIfNotExist    Creates the domain if it does not exist.
@@ -311,7 +267,7 @@
   * @return The next update that must be sent to the consumer.
   *         null when synchronous is false and queue is empty.
   */
  protected UpdateMsg getnextMessage(boolean synchronous)
  protected UpdateMsg getNextMessage(boolean synchronous)
  {
    UpdateMsg msg;
    while (activeConsumer == true)
@@ -577,18 +533,6 @@
  }
  /**
   * Get the older update time for that server.
   * @return The older update time.
   */
  public long getOlderUpdateTime()
  {
    ChangeNumber olderUpdateCN = getOlderUpdateCN();
    if (olderUpdateCN == null)
      return 0;
    return olderUpdateCN.getTime();
  }
  /**
   * Get the count of updates sent to this server.
   * @return  The count of update sent to this server.
   */
opends/src/server/org/opends/server/replication/server/MsgQueue.java
@@ -23,6 +23,7 @@
 *
 *
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions copyright 2012 ForgeRock AS.
 */
package org.opends.server.replication.server;
@@ -64,19 +65,6 @@
  }
  /**
   * Return the last UpdateMsg in the MsgQueue.
   *
   * @return The last UpdateMsg in the MsgQueue.
   */
  public UpdateMsg last()
  {
    synchronized (lock)
    {
      return map.get(map.lastKey());
    }
  }
  /**
   * Returns the number of elements in this MsgQueue.
   *
   * @return The number of elements in this MsgQueue.
opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -23,7 +23,7 @@
 *
 *
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions copyright 2011 ForgeRock AS
 *      Portions copyright 2011-2012 ForgeRock AS
 */
package org.opends.server.replication.server;
@@ -72,7 +72,6 @@
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.opends.server.types.ResultCode;
import org.opends.server.util.TimeThread;
/**
 * This class defines a server handler  :
@@ -410,28 +409,6 @@
  }
  /**
   * Get an approximation of the delay by looking at the age of the oldest
   * message that has not been sent to this server.
   * This is an approximation because the age is calculated using the
   * clock of the server where the replicationServer is currently running
   * while it should be calculated using the clock of the server
   * that originally processed the change.
   *
   * The approximation error is therefore the time difference between
   *
   * @return the approximate delay for the connected server.
   */
  public long getApproxDelay()
  {
    long olderUpdateTime = getOlderUpdateTime();
    if (olderUpdateTime == 0)
      return 0;
    long currentTime = TimeThread.getTime();
    return ((currentTime - olderUpdateTime) / 1000);
  }
  /**
   * Get the age of the older change that has not yet been replicated
   * to the server handled by this ServerHandler.
   * @return The age if the older change has not yet been replicated
@@ -661,18 +638,6 @@
  public abstract String getMonitorInstanceName();
  /**
   * Get the older update time for that server.
   * @return The older update time.
   */
  public long getOlderUpdateTime()
  {
    ChangeNumber olderUpdateCN = getOlderUpdateCN();
    if (olderUpdateCN == null)
      return 0;
    return olderUpdateCN.getTime();
  }
  /**
   * Get the count of updates sent to this server.
   * @return  The count of update sent to this server.
   */
@@ -1144,7 +1109,7 @@
  public UpdateMsg take()
  {
    boolean interrupted = true;
    UpdateMsg msg = getnextMessage(true); // synchronous:block until msg
    UpdateMsg msg = getNextMessage(true); // synchronous:block until msg
    boolean acquired = false;
    do