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

ludovicp
25.47.2010 65cf071e6e7a15eb81c7d8f9fa2984c9de74b10e
opends/src/server/org/opends/server/replication/plugin/GenerationIdChecksum.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Copyright 2008-2010 Sun Microsystems, Inc.
 */
package org.opends.server.replication.plugin;
@@ -43,11 +43,24 @@
  private long checksum = 0L;
  /**
   * This is the generation id for an empty backend.
   */
  public static final long EMPTY_BACKEND_GENERATION_ID = 48L;
  /**
   * Update the checksum with one added byte.
   */
  private void updateWithOneByte(byte b)
  {
    checksum += (long) b;
    /**
     * The "end of line" code is CRLF under windows but LF on UNIX. So to get
     * the same checksum value on every platforms, we always exclude the CR and
     * LF characters from the computation.
     */
    if ((b != 0x0D) && (b != 0x0A)) // CR=0D and LF=0A
    {
      checksum += (long) b;
    }
  }
  /**
@@ -74,7 +87,18 @@
   */
  public long getValue()
  {
    return checksum;
    if (checksum != 0L)
    {
      return checksum;
    } else
    {
      // Computing an empty backend writes the number of entries (0) only, which
      // will not be added to the checksum as no entries will follow. To treat
      // this special case, and to keep consistency with old versions, in that
      // case we hardcode and return the generation id value for an empty
      // backend.
      return EMPTY_BACKEND_GENERATION_ID;
    }
  }
  /**