You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sz...@apache.org on 2021/12/08 10:49:40 UTC

[ratis] branch master updated: RATIS-1462. RaftServer started failed when rpc timeout use different unit (#556)

This is an automated email from the ASF dual-hosted git repository.

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new 87e2d96  RATIS-1462. RaftServer started failed when rpc timeout use different unit (#556)
87e2d96 is described below

commit 87e2d96bbbc426ba33f68353961abd4cfb8518f8
Author: Liu Jinghao <12...@qq.com>
AuthorDate: Wed Dec 8 18:49:36 2021 +0800

    RATIS-1462. RaftServer started failed when rpc timeout use different unit (#556)
---
 .../src/main/java/org/apache/ratis/util/TimeDuration.java   |  2 +-
 .../test/java/org/apache/ratis/util/TestTimeDuration.java   | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java b/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java
index a7d2e41..0a9523c 100644
--- a/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java
+++ b/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java
@@ -338,7 +338,7 @@ public final class TimeDuration implements Comparable<TimeDuration> {
   @Override
   public int compareTo(TimeDuration that) {
     if (this.unit.compareTo(that.unit) > 0) {
-      return that.compareTo(this);
+      return Integer.compare(0, that.compareTo(this));
     }
     if (this.unit == that.unit) {
       return Long.compare(this.duration, that.duration);
diff --git a/ratis-test/src/test/java/org/apache/ratis/util/TestTimeDuration.java b/ratis-test/src/test/java/org/apache/ratis/util/TestTimeDuration.java
index 946ae21..edb0ad8 100644
--- a/ratis-test/src/test/java/org/apache/ratis/util/TestTimeDuration.java
+++ b/ratis-test/src/test/java/org/apache/ratis/util/TestTimeDuration.java
@@ -30,6 +30,7 @@ import static org.apache.ratis.util.TimeDuration.Abbreviation;
 import static org.apache.ratis.util.TimeDuration.parse;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 public class TestTimeDuration {
   {
@@ -244,6 +245,18 @@ public class TestTimeDuration {
     Assert.assertSame(TimeUnit.DAYS, TimeDuration.higherUnit(TimeUnit.DAYS));
   }
 
+  @Test(timeout = 1000)
+  public void testCompareTo() {
+    assertTrue(TimeDuration.ONE_SECOND.compareTo(TimeDuration.ONE_MINUTE) < 0);
+    assertTrue(TimeDuration.ONE_MINUTE.compareTo(TimeDuration.ONE_SECOND) > 0);
+
+    assertTrue(TimeDuration.valueOf(15, TimeUnit.SECONDS).compareTo(TimeDuration.ONE_MINUTE) < 0);
+    assertTrue(TimeDuration.ONE_MINUTE.compareTo(TimeDuration.valueOf(15, TimeUnit.SECONDS)) > 0);
+
+    assertEquals(0, TimeDuration.valueOf(60, TimeUnit.SECONDS).compareTo(TimeDuration.ONE_MINUTE));
+    assertEquals(0, TimeDuration.ONE_MINUTE.compareTo(TimeDuration.valueOf(60, TimeUnit.SECONDS)));
+  }
+
   private static void assertHigherLower(TimeUnit lower, TimeUnit higher) {
     Assert.assertSame(lower, TimeDuration.lowerUnit(higher));
     Assert.assertSame(higher, TimeDuration.higherUnit(lower));