JavaFX Beans Binding repentinamente para de funcionar

Eu uso JavaFX NumberBindings para calcular certos valores. Inicialmente, tudo funciona como esperado. Após um período de tempo bastante pequeno, no entanto, a ligação para de funcionar. Também não recebo uma exceção.

Eu tentei várias ligações, bem como abordagens de alto e baixo nível. Até o próprio cálculo (quando substituído) simplesmente para e não é mais chamado. Também atualizei para o JDK mais recente (1.8.0_05) e reconstruí / reiniciei tudo.

O seguinte exemplo de trabalho mínimo ilustra o problema. Deve System.out.println a largura atual da janela principal para STDOUT. Após redimensionar a janela por cerca de 10 segundos, a saída simplesmente pára. Também tentei vincular a propriedade resultante a um controle JavaFX, a fim de garantir o uso continuado da propriedade, mas isso não serviu de nada. Acredito que estou perdendo algum comportamento muito básico da Propriedade / Ligações aqui, o Google parece não conhecer esse comportamento.

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);
}

}

questionAnswers(1)

yourAnswerToTheQuestion