Skip to content

Commit

Permalink
xds: fix wrong number type for generated raw config (grpc#7880)
Browse files Browse the repository at this point in the history
JsonUtil is expecting numbers in Map<String, ?> to be Double. The generated raw config (Ma<String, ?>) should use Double for numerical values put into it.
  • Loading branch information
voidzcy committed Feb 9, 2021
1 parent 30d5363 commit 7679d68
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
8 changes: 4 additions & 4 deletions xds/src/main/java/io/grpc/xds/XdsNameResolver.java
Expand Up @@ -310,10 +310,10 @@ public void onError(Status error) {
rawHeaderMatcherBuilder.put("regexMatch", regexMatch.pattern());
}
if (rangeMatch != null) {
rawHeaderMatcherBuilder
.put(
"rangeMatch",
ImmutableMap.of("start", rangeMatch.getStart(), "end", rangeMatch.getEnd()));
rawHeaderMatcherBuilder.put(
"rangeMatch",
ImmutableMap.of("start", Long.valueOf(rangeMatch.getStart()).doubleValue(),
"end", Long.valueOf(rangeMatch.getEnd()).doubleValue()));
}
if (presentMatch != null) {
rawHeaderMatcherBuilder.put("presentMatch", presentMatch);
Expand Down
3 changes: 2 additions & 1 deletion xds/src/test/java/io/grpc/xds/XdsNameResolverTest.java
Expand Up @@ -180,7 +180,8 @@ public void convertToRawRoute() throws IOException {
Map<String, ?> rawRoute3 = XdsNameResolver.convertToRawRoute(routeMatch3, "action_foo");
Map<String, ?> header =
(Map<String, ?>) Iterables.getOnlyElement((List<?>) rawRoute3.get("headers"));
assertThat((Map<String, ?>) header.get("rangeMatch")).containsExactly("start", 0L, "end", 10L);
assertThat((Map<String, ?>) header.get("rangeMatch")).containsExactly(
"start", (double) 0L, "end", (double) 10L);

RouteMatch routeMatch4 =
new RouteMatch(
Expand Down

0 comments on commit 7679d68

Please sign in to comment.