]> source.dussan.org Git - vaadin-framework.git/commitdiff
Make VaadinService.cleanupSession public (#11738)
authorKnoobie <Knoobie@gmx.de>
Tue, 3 Dec 2019 14:20:19 +0000 (15:20 +0100)
committerAnna Koskinen <Ansku@users.noreply.github.com>
Tue, 3 Dec 2019 14:20:19 +0000 (16:20 +0200)
to allow for better integration of third party applications handling the destruction of the session.

Usage example (see https://vaadin.com/directory/component/cleanupservlet-add-on/overview)

"It's possible to close a browser window in such way that neither UI cleanup nor session cleanup will happen until the underlying http session timeouts. This can happen because the design idea for heartbeat is to keep the UI alive, not to ensure timely cleanup, and as such the default check is only performed at the end of each request."

server/src/main/java/com/vaadin/server/VaadinService.java

index 9503db113fb6ed3d7d935ac37dba22520b73e7cc..f83441e1c364aae796a36a528604a9544f006c01 100644 (file)
@@ -1226,13 +1226,14 @@ public abstract class VaadinService implements Serializable {
     }
 
     /**
-     * Called at the end of a request, after sending the response. Closes
-     * inactive UIs in the given session, removes closed UIs from the session,
-     * and closes the session if it is itself inactive.
+     * Closes inactive UIs in the given session, removes closed UIs from the
+     * session, and closes the session if it is itself inactive. This operation
+     * should not be performed without first acquiring the session lock. By
+     * default called at the end of each request, after sending the response.
      *
      * @param session
      */
-    void cleanupSession(VaadinSession session) {
+    public void cleanupSession(VaadinSession session) {
         if (isSessionActive(session)) {
             closeInactiveUIs(session);
             removeClosedUIs(session);