From dd7a4be77a36ec0f1ecb66c0b54e39bdd072abce Mon Sep 17 00:00:00 2001 From: ZHANG Dapeng Date: Wed, 28 Oct 2020 17:23:57 -0700 Subject: [PATCH] core: fix floating-point number formatting Locale (#7473) --- context/src/main/java/io/grpc/Deadline.java | 3 ++- core/src/main/java/io/grpc/internal/ClientCallImpl.java | 3 ++- core/src/main/java/io/grpc/internal/DelayedClientCall.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/context/src/main/java/io/grpc/Deadline.java b/context/src/main/java/io/grpc/Deadline.java index c7b50e0929a2..73c876059538 100644 --- a/context/src/main/java/io/grpc/Deadline.java +++ b/context/src/main/java/io/grpc/Deadline.java @@ -17,6 +17,7 @@ package io.grpc; import java.util.Arrays; +import java.util.Locale; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -206,7 +207,7 @@ public String toString() { } buf.append(seconds); if (nanos > 0) { - buf.append(String.format(".%09d", nanos)); + buf.append(String.format(Locale.US, ".%09d", nanos)); } buf.append("s from now"); if (ticker != SYSTEM_TICKER) { diff --git a/core/src/main/java/io/grpc/internal/ClientCallImpl.java b/core/src/main/java/io/grpc/internal/ClientCallImpl.java index 3c3a2227780a..86ec0575adfe 100644 --- a/core/src/main/java/io/grpc/internal/ClientCallImpl.java +++ b/core/src/main/java/io/grpc/internal/ClientCallImpl.java @@ -54,6 +54,7 @@ import io.perfmark.Tag; import java.io.InputStream; import java.nio.charset.Charset; +import java.util.Locale; import java.util.concurrent.CancellationException; import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; @@ -441,7 +442,7 @@ public void run() { buf.append('-'); } buf.append(seconds); - buf.append(String.format(".%09d", nanos)); + buf.append(String.format(Locale.US, ".%09d", nanos)); buf.append("s. "); buf.append(insight); stream.cancel(DEADLINE_EXCEEDED.augmentDescription(buf.toString())); diff --git a/core/src/main/java/io/grpc/internal/DelayedClientCall.java b/core/src/main/java/io/grpc/internal/DelayedClientCall.java index c3d3823ed11c..41f672af347e 100644 --- a/core/src/main/java/io/grpc/internal/DelayedClientCall.java +++ b/core/src/main/java/io/grpc/internal/DelayedClientCall.java @@ -30,6 +30,7 @@ import io.grpc.Status; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; @@ -117,7 +118,7 @@ private ScheduledFuture scheduleDeadlineIfNeeded( buf.append("Deadline exceeded after "); } buf.append(seconds); - buf.append(String.format(".%09d", nanos)); + buf.append(String.format(Locale.US, ".%09d", nanos)); buf.append("s. "); /** Cancels the call if deadline exceeded prior to the real call being set. */ class DeadlineExceededRunnable implements Runnable {