I am running Vaadin 7.4.7 on Tomcat 8.0.23 on Java 8.0u45 on Linux with automatic pushmode. We noted several ongoing exceptions like the following, most likely relatedto a heartbeat or other request:
[font=courier new]
May 27, 2015 11:05:13 PM org.atmosphere.cpr.AsynchronousProcessor action
SEVERE: Invalid request state. AsyncContext#startAsync not supported. Make sure async-supported is set to true in web.xml https://example.com/example/ui/PUSH/
May 27, 2015 11:05:19 PM org.atmosphere.cpr.AsynchronousProcessor action
SEVERE: Invalid request state. AsyncContext#startAsync not supported. Make sure async-supported is set to true in web.xml https://example.com/example/ui/PUSH/
May 27, 2015 11:05:25 PM org.atmosphere.cpr.AsynchronousProcessor action
SEVERE: Invalid request state. AsyncContext#startAsync not supported. Make sure async-supported is set to true in web.xml https://example.com/example/ui/PUSH/
[/font]
The corresponding access log shows these were the requests made, all return HTTP STATUS 501:
[font=courier new]
99.123.45.678 - - [27/May/2015:23:05:13 -0700]
“GET /example/ui/PUSH/?v-uiId=3&v-csrfToken=a19e37eb-bb1b-494a-be0a-eb1377cf548c&X-Atmosphere-tracking-id=08e2c407-eded-4704-91cc-a91f4dc6a8c5&X-Atmosphere-Framework=2.2.6.vaadin4-jquery&X-Atmosphere-Transport=long-polling&X-Atmosphere-TrackMessageSize=true&Content-Type=application%2Fjson%3B%20charset%3DUTF-8&X-atmo-protocol=true&_=1432793114129 HTTP/1.1” 501 5 1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
99.123.45.678 - - [27/May/2015:23:05:19 -0700]
“GET /example/ui/PUSH/?v-uiId=3&v-csrfToken=a19e37eb-bb1b-494a-be0a-eb1377cf548c&X-Atmosphere-tracking-id=08e2c407-eded-4704-91cc-a91f4dc6a8c5&X-Atmosphere-Framework=2.2.6.vaadin4-jquery&X-Atmosphere-Transport=long-polling&X-Atmosphere-TrackMessageSize=true&Content-Type=application%2Fjson%3B%20charset%3DUTF-8&X-atmo-protocol=true&_=1432793120129 HTTP/1.1” 501 5 2 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
99.123.45.678 - - [27/May/2015:23:05:25 -0700]
“GET /example/ui/PUSH/?v-uiId=3&v-csrfToken=a19e37eb-bb1b-494a-be0a-eb1377cf548c&X-Atmosphere-tracking-id=08e2c407-eded-4704-91cc-a91f4dc6a8c5&X-Atmosphere-Framework=2.2.6.vaadin4-jquery&X-Atmosphere-Transport=long-polling&X-Atmosphere-TrackMessageSize=true&Content-Type=application%2Fjson%3B%20charset%3DUTF-8&X-atmo-protocol=true&_=1432793126108 HTTP/1.1” 501 5 2 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
[/font]
It may be related to this issue I found via Google:
https://github.com/Atmosphere/atmosphere/issues/1973
My vaadin app servlet does have the async supported entry:
[font=courier new]
OpenESignFormsVaadinApplication
com.esignforms.open.vaadin.EsfVaadinServlet
Vaadin UI class to start with
UI
com.esignforms.open.vaadin.EsfVaadinUI
Application widgetset
widgetset
com.esignforms.open.vaadin.widgetset.Open_esignformsvaadinWidgetset
Want idle sessions to expire, after 3 missed heartbeats, since heartbeat will otherwise keep alive as long as the browser is open
closeIdleSessions
true
pushmode
automatic
true
Is there any additional servlet-mapping I may need since my root / path serves up JSPs, images, javascripts, css, and JSP error pages for several http status codes.
I am guessing that these are heartbeat requests or the like, perhaps when no session or the like is present with a valid UI and/or the user is not logged in, etc. Unfortunately, those requests appear to keep on coming and don’t stop, as if all those error 501s are not stopping the client from trying yet again. I am not positive, but I put an IP address block on the offending client’s IP (from the access logs) and noted the errors stop, but if I unblock after 10-15 minutes, they start right back up. I blocked it for an hour and when I unblocked the IP, the errors did not return, so I presume somehow the vaadin client finally gave up (or the offending browser was closed, but since it was late at night, I doubt a user was involved).
Any thoughts on how to resolve this? Thanks!