From 1be20818a6db9c6d1a33e12d183421ffa054467e Mon Sep 17 00:00:00 2001 From: Knoobie Date: Tue, 3 Dec 2019 15:20:19 +0100 Subject: [PATCH] Make VaadinService.cleanupSession public (#11738) 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." --- .../src/main/java/com/vaadin/server/VaadinService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/vaadin/server/VaadinService.java b/server/src/main/java/com/vaadin/server/VaadinService.java index 9503db113f..f83441e1c3 100644 --- a/server/src/main/java/com/vaadin/server/VaadinService.java +++ b/server/src/main/java/com/vaadin/server/VaadinService.java @@ -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); -- 2.39.5