Java Jinput: volver a escanear / recargar los controladores

Estoy usando javajinput biblioteca para leer datos de joypad, y tengo problemas para recargarControllers, Lo uso para cargarlos:

public Controller[] findStickControllers() {
    ControllerEnvironment ce =
            ControllerEnvironment.getDefaultEnvironment();

    Controller[] cs = ce.getControllers();

    System.out.println(cs.length); //test

    ArrayList<Controller> sel = new ArrayList<>();

    for (Controller c: cs) {
        if(c.getType() == Type.STICK) {
            sel.add(c);
        }
    }

    return sel.toArray(new Controller[]{});
}

Esto funciona bien, pero si desconecto mi controlador, al llamar a este lo encontrará nuevamente y viceversa (conectarlo después de la primera verificación no lo encontrará en absoluto).

He tratado de poner el sueño antes de la búsqueda de puño, con estos resultados:

Los controladores se escanean de manera efectiva cuando se llama a este método por primera vez (no al inicio del programa)Cuando se vuelve a llamar, esto siempre devuelve los mismos controladores que devolvió por primera vez.La primera llamada también escribirá advertencia abajoIncluso cuando el controlador está conectado (y funciona), luego se desconecta (aún lo encontrará) y se vuelve a conectar, no funcionará

Advertencia desde el punto 3: (no se formateó bien en la lista)

WARNING: Found unknown Windows version: Windows 8
Attempting to use default windows plug-in.
Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin

Estoy usando Win 8 y tuve el mismo problema en Win 7. También probé con el mouse, los mismos resultados.

¿Cómo puedo recargar de forma activa los controladores para el segundo, tercer y así sucesivamente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta