Гарантируется ли swingWorker событие изменения свойства состояния по завершении?

У меня есть класс, который принимает рядSwingWorkers и запускает их по одному в определенном порядке. Я используюReentrantLock чтобы убедиться, что одновременно работает только один работник. Обычно я всегда разблокирую в пункте finally, но мне нужно, чтобы он оставался заблокированным до завершения рабочего процесса.

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

Если это не так, гарантированно вызывается метод done ()? Я бы предпочел не называть разблокировку таким образом, так как это в некоторой степени нарушит инкапсуляцию.

Из-за характера проекта вполне вероятно, что это появится в обзоре кода. В этом случае было бы полезно иметь проверяемый источник. До сих пор я не смог найти один.

Ответы на вопрос(1)

Ваш ответ на вопрос