You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2023/09/15 13:30:15 UTC
[httpcomponents-core] 04/09: HTTPCORE-754: Correct formatting of infinite deadline
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-core.git
commit 4695f251ca0f2bbb7fb40472ed5a769ebccb3c73
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Fri Jun 30 17:45:38 2023 +0200
HTTPCORE-754: Correct formatting of infinite deadline
---
.../src/main/java/org/apache/hc/core5/util/Deadline.java | 12 ++++++++++--
.../apache/hc/core5/util/TestDeadlineTimeoutException.java | 7 +++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/httpcore5/src/main/java/org/apache/hc/core5/util/Deadline.java b/httpcore5/src/main/java/org/apache/hc/core5/util/Deadline.java
index 851a9a8a1..fb9861420 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/util/Deadline.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/util/Deadline.java
@@ -181,7 +181,11 @@ public class Deadline {
* @return a formatted string.
*/
public String format(final TimeUnit overdueTimeUnit) {
- return String.format("Deadline: %s, %s overdue", formatTarget(), TimeValue.of(remaining(), overdueTimeUnit));
+ if (value == MAX_VALUE.value) {
+ return "No deadline (infinite)";
+ } else {
+ return String.format("Deadline: %s, %s overdue", formatTarget(), TimeValue.of(remaining(), overdueTimeUnit));
+ }
}
/**
@@ -190,7 +194,11 @@ public class Deadline {
* @return a formatted string in the format {@value #DATE_FORMAT}.
*/
public String formatTarget() {
- return DATE_TIME_FORMATTER.format(Instant.ofEpochMilli(value).atOffset(ZoneOffset.UTC));
+ if (value == MAX_VALUE.value) {
+ return "(infinite)";
+ } else {
+ return DATE_TIME_FORMATTER.format(Instant.ofEpochMilli(value).atOffset(ZoneOffset.UTC));
+ }
}
public Deadline freeze() {
diff --git a/httpcore5/src/test/java/org/apache/hc/core5/util/TestDeadlineTimeoutException.java b/httpcore5/src/test/java/org/apache/hc/core5/util/TestDeadlineTimeoutException.java
index 83f949ea2..401098b6a 100644
--- a/httpcore5/src/test/java/org/apache/hc/core5/util/TestDeadlineTimeoutException.java
+++ b/httpcore5/src/test/java/org/apache/hc/core5/util/TestDeadlineTimeoutException.java
@@ -42,4 +42,11 @@ public class TestDeadlineTimeoutException {
DeadlineTimeoutException.from(deadline).getMessage());
}
+ @Test
+ public void testInfiniteDeadlineMessage() {
+ final Deadline deadline = Deadline.calculate(Timeout.ZERO_MILLISECONDS);
+ Assertions.assertEquals("No deadline (infinite)",
+ DeadlineTimeoutException.from(deadline).getMessage());
+ }
+
}