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

gbellato
08.38.2007 cdab2377cddfa1bc62ea24292a124793350dc6ba
Fix a problem in org.opends.server.synchronization.common.ChangeNumberGenerator.adjust()
found by a code review where this method can fail because it only increment the time
by one unit even if the time difference is larger than this.

This bug has not visible impact yet because the synchronization operation dependencies
is not yet implemented.

Issue number 1134

This commit also add a unit test for this adjust method
1 files added
1 files modified
60 ■■■■■ changed files
opends/src/server/org/opends/server/synchronization/common/ChangeNumberGenerator.java 2 ●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/common/ChangeNumberGeneratorTest.java 58 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/common/ChangeNumberGenerator.java
@@ -121,7 +121,7 @@
      if (lastTime > rcvdTime)
        return;
      else
        lastTime = lastTime++;
        lastTime = rcvdTime++;
    }
  }
}
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/common/ChangeNumberGeneratorTest.java
New file
@@ -0,0 +1,58 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying * information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Portions Copyright 2006 Sun Microsystems, Inc.
 */
package org.opends.server.synchronization.common;
import static org.testng.Assert.*;
import org.opends.server.synchronization.SynchronizationTestCase;
import org.opends.server.util.TimeThread;
import org.testng.annotations.Test;
public class ChangeNumberGeneratorTest extends SynchronizationTestCase
{
  /**
   * Test the adjust method of ChangeNumberGenerator
   */
  @Test(dataProvider = "changeNumberData")
  public void adjustTest()
  {
    ChangeNumberGenerator generator =
      new ChangeNumberGenerator((short)5, TimeThread.getTime());
    ChangeNumber cn = generator.NewChangeNumber();
    ChangeNumber cn1 =
      new ChangeNumber(cn.getTime() + 5000, cn.getSeqnum(), (short) 6);
    generator.adjust(cn1);
    ChangeNumber cn2 = generator.NewChangeNumber();
    assertTrue((cn2.compareTo(cn1)>0),
        "ChangeNumberGenerator generated an earlier ChangeNumber "
        + " after calling the adjust method.");
  }
}