Se garantiza que un swingWorker lanzará un evento de cambio de propiedad estatal al finalizar?

Tengo una clase que abarca una cantidad deSwingWorkers y los ejecuta uno a la vez en un cierto orden. Uso unReentrantLock para asegurarse de que solo un trabajador se ejecute a la vez. Normalmente siempre desbloquearía una cláusula finalmente, pero necesito que permanezca bloqueada hasta que el trabajador complete.

        nextWorker.getPropertyChangeSupport().addPropertyChangeListener("state", 
        new PropertyChangeListener()
        {
           @Override
           public void propertyChange(PropertyChangeEvent evt)
           {
              if (evt.getNewValue().equals(SwingWorker.StateValue.DONE))
              {
                 executionLock.unlock();
              }
           }
        });

Si este no es el caso, ¿está garantizado que se llamará ()? Preferiría no llamar al desbloqueo de esta manera, ya que violaría la encapsulación en algún grado.

Debido a la naturaleza del proyecto, es probable que esto aparezca en una revisión de código. En ese caso, sería útil tener una fuente verificable. Hasta ahora no he podido encontrar uno.

Respuestas a la pregunta(1)

Su respuesta a la pregunta