Обратный отсчет зависает или завершается без исключения - PullRequest
0 голосов
/ 10 апреля 2019

Я работаю над java fxml, где я беру 2 входа и использую их для запуска скрипта. Я делаю паузу в точках выполнения скрипта

Моя проблема в том, что когда я предоставляю только 1 вход (например, 1 2 добавляют 3 равных), код работает нормально но когда я предоставляю 2 входа (например, 1 2 add и 3 равных), код останавливается на countDownLatch.await () на самом последнем шаге и не печатает вывод скрипта.

Я начинаю с нажатия кнопки fxml, как показано ниже

Executors.newSingleThreadExecutor().submit(()-> {
method(ui_inputs1);
method(ui_inputs2)
}):

Я пытаюсь добиться паузы в пользовательском интерфейсе FXML, то есть до тех пор, пока пользователь не нажмет на что-то вроде отладки, где пользователь выберет точки пользовательского интерфейса для паузы.

так как то так

public void onExcecute(
if (debugMode) {

//check is breakpoint the do Platform.runLater(() + UI updates//
countDownLatch.await();
countDownLatch = new CountDownLatch(1);

}
}

когда пользователь нажимает кнопку «Воспроизвести следующую», он переходит к следующему шагу, пока не достигнет точки исполнения

   public void onHitBreakpoint() {
    Platform.runLater(()->{
        addStackDebug(listener,false);});
}

 playToNextExecPoint() {
 countDownLatch.countDown();
 }

 public void onfinish{
// script success or failed
}

Журнал консоли для правильного выполнения:

Давайте разберем 1 2 ДОБАВИТЬ 3 РАВНО

Выполнение операции OP_CODE: [1]

Давайте разберем 1 2 ДОБАВИТЬ 3 РАВНО

------- Нажмите «Play» для продолжения --------

Выполнение операции OP_CODE: [2]

Давайте разберем 2 ДОБАВИТЬ 3 РАВНО

------- Нажмите «Play» для продолжения --------

Выполнение операции OP_CODE: [ADD]

Давайте разберем ADD 3 EQUAL

------- Нажмите «Play» для продолжения --------

Выполнение операции OP_CODE: [3]

Давайте разберем 3 РАВНО

------- Нажмите «Play» для продолжения --------

Выполнение операции OP_CODE: [EQUAL]

Давайте разберем EQUAL ------- Нажмите «Play» для продолжения -------- Сценарий успеха. Сценарий успешен.

Когда я предоставляю 2 ввода, отпечатки, выделенные жирным шрифтом и курсивом, отсутствуют

...