1

I'm trying to upgrade from Vaadin 23 to Vaadin 24.

Now, I very frequently see the following message in the console:

2023-03-09T16:32:14.882+02:00  WARN 4348 --- [sphere-Shared-0] org.atmosphere.cpr.DefaultBroadcaster    : This message Entry{message=com.vaadin.flow.server.communication.AtmospherePushConnection$PushMessage@428f5045, type=RESOURCE, future=org.atmosphere.cpr.BroadcasterFuture@ca43632} will be lost
2023-03-09T16:32:14.882+02:00  WARN 4348 --- [sphere-Shared-0] org.atmosphere.cpr.DefaultBroadcaster    : Failed to submit broadcast handler runnable to for Broadcaster/*

java.lang.IllegalStateException: The request object has been recycled and is no longer associated with this facade
    at org.apache.catalina.connector.RequestFacade.getHeader(RequestFacade.java:675) ~[tomcat-embed-core-10.1.5.jar:10.1.5]
    at jakarta.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:88) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:88) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at org.springframework.security.web.firewall.StrictHttpFirewall$StrictFirewalledRequest.getHeader(StrictHttpFirewall.java:714) ~[spring-security-web-6.0.2.jar:6.0.2]
    at jakarta.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:88) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:88) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:88) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:88) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at org.atmosphere.cpr.AtmosphereRequestImpl.getHeader(AtmosphereRequestImpl.java:353) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at org.atmosphere.cpr.AtmosphereRequestImpl.getHeader(AtmosphereRequestImpl.java:338) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at com.vaadin.flow.server.communication.LongPollingCacheFilter.filter(LongPollingCacheFilter.java:56) ~[flow-server-24.0.0.jar:24.0.0]
    at org.atmosphere.cpr.BroadcasterConfig.filter(BroadcasterConfig.java:452) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at org.atmosphere.cpr.DefaultBroadcaster.perRequestFilter(DefaultBroadcaster.java:822) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at org.atmosphere.cpr.DefaultBroadcaster.deliverPush(DefaultBroadcaster.java:695) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:572) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at org.atmosphere.cpr.DefaultBroadcaster$1.run(DefaultBroadcaster.java:423) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[na:na]

What could be causing this and how to fix it?

UPDATED

one more catch:

2023-03-09T16:32:14.881+02:00  WARN 4348 --- [phere-Shared-61] org.atmosphere.cpr.DefaultBroadcaster    : This message com.vaadin.flow.server.communication.AtmospherePushConnection$PushMessage@4ad4f0be will be lost for AtmosphereResource 48727133-d436-42aa-ab43-903ea948851d, adding it to the BroadcasterCache
2023-03-09T16:32:14.881+02:00  WARN 4348 --- [phere-Shared-61] org.atmosphere.cpr.DefaultBroadcaster    : Failed to execute a write operation for Broadcaster /*

java.lang.IllegalStateException: The request object has been recycled and is no longer associated with this facade
    at org.apache.catalina.connector.RequestFacade.removeAttribute(RequestFacade.java:549) ~[tomcat-embed-core-10.1.5.jar:10.1.5]
    at org.apache.catalina.core.ApplicationHttpRequest.removeAttribute(ApplicationHttpRequest.java:281) ~[tomcat-embed-core-10.1.5.jar:10.1.5]
    at jakarta.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:268) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:268) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:268) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:268) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at jakarta.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:268) ~[tomcat-embed-core-10.1.5.jar:6.0]
    at org.atmosphere.cpr.AtmosphereRequestImpl.removeAttribute(AtmosphereRequestImpl.java:681) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at org.atmosphere.cpr.DefaultBroadcaster.executeAsyncWrite(DefaultBroadcaster.java:915) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at org.atmosphere.cpr.DefaultBroadcaster$2.run(DefaultBroadcaster.java:477) ~[atmosphere-runtime-3.0.0.slf4jvaadin2.jar:3.0.0.slf4jvaadin2]
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

Should I be concerned about such warnings?

UPDATED 2

I switched to Undertow Embedded Server and do not see such issues anymore. Looks like this is somehow related to the Tomcat Server.

alexanoid
  • 24,051
  • 54
  • 210
  • 410
  • I recall you had quite custom implementation of login etc., so that could be the problem. This could an issue in Spring Security as well https://github.com/spring-projects/spring-security/issues – Tatu Lund Mar 10 '23 at 07:46
  • I moved to Undertow and works good so far – alexanoid Mar 10 '23 at 19:57
  • But this is still reproducible under Tomcat. This is only related to the views where PUSH is used. In my case - long polling – alexanoid May 09 '23 at 13:46
  • @alexanoid the only thing you did is move to undertow and the problem is gone? Unfortunately I still have this issue with undertow. – Klaus Jul 26 '23 at 18:16

0 Answers0