(В Spark-Java) Во время загрузки всех маршрутов в main, если приходит запрос, мы получаем исключение ConcurrentModificationException в списке маршрутов. - PullRequest
0 голосов
/ 10 мая 2019

Я заметил, что фреймворк spark-java автоматически начинает отвечать на запросы, когда мы добавляем первый маршрут (он сразу зажигает причал при добавлении первого маршрута).

Но у нас много маршрутов, и при загрузке всех маршрутов, если приходит запрос, мы получаем исключение ConcurrentModificationException в списке маршрутов.

Можно ли дождаться загрузки всех маршрутов, прежде чем отвечать на какой-либо запрос?

ERROR 2019-04-08T10:18:32,243 spark.http.matching.GeneralError [qtp-1060778345-25] 
java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) ~[?:1.8.0_202]
    at java.util.ArrayList$Itr.next(ArrayList.java:859) ~[?:1.8.0_202]
    at spark.route.Routes.findTargetsForRequestedRoute(Routes.java:201) ~[spark-core-2.7.2.jar:?]
    at spark.route.Routes.find(Routes.java:84) ~[spark-core-2.7.2.jar:?]
    at spark.http.matching.Routes.execute(Routes.java:34) ~[spark-core-2.7.2.jar:?]
    at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:130) [spark-core-2.7.2.jar:?]
    at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50) [spark-core-2.7.2.jar:?]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1568) [jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.server.Server.handle(Server.java:530) [jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347) [jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256) [jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) [jetty-io-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) [jetty-io-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) [jetty-io-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247) [jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140) [jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121]
    at org.eclipse.jetty.util.thread.
...