Detecta los eventos Sleep Sleep y Wake Up en Java

¿Hay una manera para que un programa Java detecte cuando el sistema operativo está a punto de irse a dormir, o falla, al menos detectando un despertador?

El problema real es que en una aplicación particular se ejecutan varias operaciones de base de datos MySQL en segundo plano. En las pruebas en una máquina con Windows, estas transacciones de la base de datos se interrumpen después de un ciclo de suspensión / activación que causa una tonelada de condiciones de error en el programa. Estos errores suelen ser algo como esto:

java.net.SocketException
MESSAGE: Software caused connection abort: recv failed

Si pudiéramos reaccionar ante un evento de "dormiremos pronto", podríamos intentar pausar las operaciones en segundo plano para solucionar el problema. De manera menos ideal, si pudiéramos reaccionar ante un evento "recién despertado", al menos podríamos suprimir los mensajes de error.

Respuestas a la pregunta(3)

Su respuesta a la pregunta