【问题标题】:my springcloud gateway hava a bug java.lang.IndexOutOfBoundsException: Index: 0, Size: 0我的 spring 云网关有一个错误 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
【发布时间】:2022-06-13 18:50:23
【问题描述】:

春季云版本:Greenwich.SR3 网关版本:2.1.3.RELEASE

这是一个奇怪的错误,我的项目启动正常并测试成功,它会在某天运行,有一天它会出现这个错误。

我还检查了我的 CPU、内存、磁盘。只用了70%,我在本地测试,找不到这个bug。

2022-03-06 13:01:11.396 [reactor-http-epoll-5] ERROR o.s.b.a.w.r.error.AbstractErrorWebExceptionHandler.error:122 - [956eb507] 500 Server Error for HTTP POST "/recharge/mobile/order"
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:659)
    at java.util.ArrayList.get(ArrayList.java:435)
    at org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator.combinePredicates(RouteDefinitionRouteLocator.java:221)
    at org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator.convertToRoute(RouteDefinitionRouteLocator.java:143)
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:100)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:695)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:571)
    at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:955)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)
    at reactor.core.publisher.Flux.subscribe(Flux.java:7923)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:420)
    at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:243)
    at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:201)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:366)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)
    at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:97)
    at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:62)
    at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:62)
    at reactor.core.publisher.Flux.subscribe(Flux.java:7923)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:420)
    at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:243)
    at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:201)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:366)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)
    at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:97)
    at reactor.core.publisher.MonoCollectList.subscribe(MonoCollectList.java:40)
    at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:59)
    at reactor.core.publisher.MonoFlattenIterable.subscribe(MonoFlattenIterable.java:101)
    at reactor.core.publisher.FluxMaterialize.subscribe(FluxMaterialize.java:40)
    at reactor.core.publisher.MonoCollectList.subscribe(MonoCollectList.java:40)
    at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:74)
    at reactor.core.publisher.MonoFlattenIterable.subscribe(MonoFlattenIterable.java:101)
    at reactor.core.publisher.FluxDematerialize.subscribe(FluxDematerialize.java:39)
    at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54)
    at reactor.core.publisher.Flux.subscribe(Flux.java:7923)
    at reactor.core.publisher.Flux.subscribeWith(Flux.java:8087)
    at reactor.core.publisher.Flux.subscribe(Flux.java:7916)
    at reactor.core.publisher.Flux.subscribe(Flux.java:7880)
    at reactor.core.publisher.Flux.subscribe(Flux.java:7798)
    at org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter.lambda$onApplicationEvent$0(WeightCalculatorWebFilter.java:133)
    at org.springframework.beans.factory.ObjectProvider.ifAvailable(ObjectProvider.java:93)
    at org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter.onApplicationEvent(WeightCalculatorWebFilter.java:133)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359)
    at org.springframework.cloud.gateway.actuate.AbstractGatewayControllerEndpoint.refresh(AbstractGatewayControllerEndpoint.java:85)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    ...

这是我的配置

spring:
  cloud:
    gateway: 
      routes:
         - id: recharge-mobile
           uri: lb://recharge-mobile
           predicates:
             - Path=/recharge/mobile/**
           filters:
             - StripPrefix=1

【问题讨论】:

    标签: java spring-boot indexoutofboundsexception spring-cloud-gateway


    【解决方案1】:

    我也有同样的bug,spring cloud 版本:Greenwich.SR3 网关版本:2.2.1.RELEASE,我找不到这个bug

    【讨论】:

    • 请不要发布“我也是”作为答案。答案功能仅用于实际解决方案。
    【解决方案2】:

    刚刚找到解决办法,将spring cloud gateway版本更新到2.2.1.RELEASE。我不确定它是否有效,但您可以尝试一下。

    【讨论】:

      【解决方案3】:

      是spring cloud gateway的bug,请看这个:https://tanzu.vmware.com/security/cve-2022-22947

      【讨论】:

        猜你喜欢
        • 2019-12-10
        • 2018-04-07
        • 2018-08-01
        • 2020-02-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-30
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多