首页 > 解决方案 > 基于 spring-cloud 的应用程序启动时出错:java.util.ConcurrentModificationException:null

问题描述

有时我们在启动时会出错,并且一些消息会丢失。有时它运作良好,因此错误似乎是随机的。

exception [Request processing failed; nested exception is java.util.ConcurrentModificationException] with root cause

java.util.ConcurrentModificationException: null
    at java.base/java.util.HashMap$KeySpliterator.tryAdvance(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.findFirst(Unknown Source) ~[na:na]
    at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.findFunctionInFunctionRegistrations(SimpleFunctionRegistry.java:258) ~[spring-cloud-function-context-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.compose(SimpleFunctionRegistry.java:274) ~[spring-cloud-function-context-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.doLookup(SimpleFunctionRegistry.java:187) ~[spring-cloud-function-context-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.context.catalog.BeanFactoryAwareFunctionRegistry.lookup(BeanFactoryAwareFunctionRegistry.java:156) ~[spring-cloud-function-context-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.context.FunctionCatalog.lookup(FunctionCatalog.java:87) ~[spring-cloud-function-context-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.web.util.FunctionWebUtils.doFindFunction(FunctionWebUtils.java:91) ~[spring-cloud-function-web-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.web.util.FunctionWebUtils.findFunction(FunctionWebUtils.java:49) ~[spring-cloud-function-web-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.web.mvc.FunctionHandlerMapping.getHandlerInternal(FunctionHandlerMapping.java:94) ~[spring-cloud-function-web-3.1.3.jar!/:3.1.3]
    at org.springframework.cloud.function.web.mvc.FunctionHandlerMapping.getHandlerInternal(FunctionHandlerMapping.java:41) ~[spring-cloud-function-web-3.1.3.jar!/:3.1.3]
    at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:498) ~[spring-webmvc-5.3.9.jar!/:5.3.9]

方法 :

  @Bean
  public Function<Claim, Claim> saveClaim() {
      return data -> injectionService.saveClaim(data);
  }

我们在 build.gradle 中的依赖

id 'org.springframework.boot' version '2.5.4'
org.springframework.cloud:spring-cloud-starter-function-web:3.1.3

我们可以做些什么来解决这个问题吗?

提前致谢

标签: javaspring-bootspring-cloudspring-cloud-function

解决方案


该问题已使用 3.1.4 版本修复 => 谢谢


推荐阅读