diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/NettyRoutingFilter.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/NettyRoutingFilter.java index c0759e1f..d9acd324 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/NettyRoutingFilter.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/NettyRoutingFilter.java @@ -280,7 +280,7 @@ public class NettyRoutingFilter implements GlobalFilter, Ordered { static Long getLong(Object responseTimeoutAttr) { Long responseTimeout = null; if (responseTimeoutAttr instanceof Number) { - responseTimeout = ((Integer) responseTimeoutAttr).longValue(); + responseTimeout = ((Number) responseTimeoutAttr).longValue(); } else if (responseTimeoutAttr != null) { responseTimeout = Long.parseLong(responseTimeoutAttr.toString()); diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/NettyRoutingFilterCompatibleTests.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/NettyRoutingFilterCompatibleTests.java index 5c5f913c..c7883099 100644 --- a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/NettyRoutingFilterCompatibleTests.java +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/NettyRoutingFilterCompatibleTests.java @@ -56,6 +56,7 @@ class NettyRoutingFilterCompatibleTests extends BaseWebClientTests { void getLongHandlesStringAndNumber() { assertThat(NettyRoutingFilter.getLong("5")).isEqualTo(5); assertThat(NettyRoutingFilter.getLong(5)).isEqualTo(5); + assertThat(NettyRoutingFilter.getLong(50000L)).isEqualTo(50000); assertThat(NettyRoutingFilter.getLong(null)).isNull(); assertThatThrownBy(() -> NettyRoutingFilter.getLong("notanumber")).isInstanceOf(NumberFormatException.class); }