Skip to content

Commit

Permalink
set grpc timeout only if existing timout is longer
Browse files Browse the repository at this point in the history
  • Loading branch information
mscheong01 committed Nov 29, 2022
1 parent e5e8610 commit 71aeac2
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -229,11 +229,12 @@ protected HttpResponse doPost(ServiceRequestContext ctx, HttpRequest req) throws
final String timeoutHeader = req.headers().get(GrpcHeaderNames.GRPC_TIMEOUT);
if (timeoutHeader != null) {
try {
final long timeout = TimeoutHeaderUtil.fromHeaderValue(timeoutHeader);
if (timeout == 0) {
final Duration timeout = Duration.ofNanos(TimeoutHeaderUtil.fromHeaderValue(timeoutHeader));
final long existingTimeoutMillis = ctx.requestTimeoutMillis();
if (timeout.isZero()) {
ctx.clearRequestTimeout();
} else {
ctx.setRequestTimeout(TimeoutMode.SET_FROM_NOW, Duration.ofNanos(timeout));
} else if (existingTimeoutMillis == 0 || existingTimeoutMillis > timeout.toMillis()) {
ctx.setRequestTimeout(TimeoutMode.SET_FROM_NOW, timeout);
}
} catch (IllegalArgumentException e) {
final Metadata metadata = new Metadata();
Expand Down

0 comments on commit 71aeac2

Please sign in to comment.