Session Close Listener

Buenas

tengo un problema que quisiera saber su solucion estoy implementando en mi web.

estoy implementando la ultima session del usuario en base a su ultima desconexion del sistema estoy utilizando el siguiente codigo

public void logoutSessionUser()
{

VaadinSession.getCurrent().getService().addSessionDestroyListener(new SessionDestroyListener() {


@Override
public void sessionDestroy(SessionDestroyEvent event) 
{

System.out.println("Session finished");
}
});

}

con esto busco hacer un update en la tabla “Usuario” guardando la fecha y hora de la ultima conexion, pero al cerrar la session por primera vez y a modo de prueba, el mensaje “Session finished” aparece una vez(como deberia ser), pero al intentar abrir cession y cerrarla nuevamente esta se agrega una ves mas ocea que en la consola aparecen 2 mensajes de “Session Finished” (todo esto limpiando la consola previamente despues de cada prueba)

entonces esto quiere decir que si el usuario cierra session 10 veces, va a ejecutar 10 update a la BD y eso no me sirve. y pues eso, espero que mi problema se entienda y puedan brindarme alguna guia.

de ante mano muchisimas gracias.