Привязка JavaFX Beans внезапно перестает работать

Я использую JavaFX NumberBindings для вычисления определенных значений. Изначально все работает как положено. Однако через некоторое время привязка перестает работать. Я тоже не получаю исключения.

Я пробовал несколько привязок, а также подходы высокого и низкого уровня. Даже сам расчет (при переопределении) просто останавливается и больше не вызывается. Я также обновил до последней версии JDK (1.8.0_05) и перестроил / перезапустил все.

Следующий минимальный рабочий пример иллюстрирует проблему. Это должно System.out.println текущей ширины главного окна для STDOUT. После изменения размера окна в течение примерно 10 секунд вывод просто останавливается. Я также попытался привязать полученное свойство к элементу управления JavaFX, чтобы обеспечить его дальнейшее использование, но это не помогло. Я полагаю, что здесь отсутствует какое-то очень простое поведение свойства / привязок, похоже, что Google вообще не знает этого поведения.

import javafx.application.Application;
import javafx.beans.binding.NumberBinding;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class BindingsProblem extends Application {

@Override
public void start(Stage primaryStage) {
    // Initialization...
    StackPane root = new StackPane();
    Scene scene = new Scene(root, 300, 250);
    primaryStage.setScene(scene);
    primaryStage.show();


    // Binding - The problem occurrs here!
    NumberBinding currentWidthPlusTen = primaryStage.widthProperty().add(10);
    IntegerProperty boundNumberProperty = new SimpleIntegerProperty();
    boundNumberProperty.bind(currentWidthPlusTen);
    boundNumberProperty.addListener(new ChangeListener<Number>() {

        @Override
        public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
            System.out.println(newValue.toString());
        }

    });
}


public static void main(String[] args) {
    launch(args);
}

}

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

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