Cómo capturar el fin de una sesión para volver a forzar inmediatamente el p

Hola:

Estoy iniciando en esto y tengo un botón de “Finalizar sesión” que ejecuta:

VaadinSession.getCurrent().getSession().invalidate();
UI.getCurrent().getPage().reload();

Y todo va bien. Tengo un listener que verifica la existencia de los datos de logeo y de ser necesario llama a la vista del login, es decir, luego de ejecutar las sentencias mencionadas, vuelve la aplicación a mostrar la página de login y una nueva sesión es iniciada. Todo funciona bien.

Mi pregunta es: ¿Cómo reproducir el mismo comportamiento anterior, pero cuando la sesión es destruída por un sessionTimeOut?.

Al colocar el listener para el sessionDestroy y llamar a la misma rutina que muestro en la parte superior ya no funciona, arrojando ambas sentencias NullPointerException. Lo que creo que es comprensible ya que la sesión acaba de ser destruida.

¿Me podrían dar una ayuda con esto? … Desde el sessionDestroy quiero que se ejecute algo que me vuelva a mostrar la página de login. Cuando no ejecuto ningún código y la sesión es destruida, basta con que haga click sobre la página para que el proceso de recarga se vuelva a realizar sin problemas (pero hay que hacer click sobre la página).

Gracias.