RichardWarburton/honest-profiler — pull request #49 by johnoliver (2014-08-09 15:00:09+00:00)
Title: Resolve exceptions being thrown when updating components when not on a FX app thread

I recieved frequent exceptions of the form:

```
java.lang.IllegalStateException: Not on FX application thread; currentThread = ProfileUpdateModerator
at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:210) ~[jfxrt.jar:na]
at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:393) ~[jfxrt.jar:na]
at javafx.scene.Parent$2.onProposedChange(Parent.java:372) ~[jfxrt.jar:na]
at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:115) ~[jfxrt.jar:na]
at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:110) ~[jfxrt.jar:na]
at com.sun.javafx.scene.control.skin.LabeledSkinBase.updateChildren(LabeledSkinBase.java:635) ~[jfxrt.jar:na]
at com.sun.javafx.scene.control.skin.LabeledSkinBase.handleControlPropertyChanged(LabeledSkinBase.java:207) ~[jfxrt.jar:na]
at com.sun.javafx.scene.control.skin.LabelSkin.handleControlPropertyChanged(LabelSkin.java:52) ~[jfxrt.jar:na]
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$2.call(BehaviorSkinBase.java:189) ~[jfxrt.jar:na]
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$2.call(BehaviorSkinBase.java:187) ~[jfxrt.jar:na]
at com.sun.javafx.scene.control.MultiplePropertyChangeListenerHandler$1.changed(MultiplePropertyChangeListenerHandler.java:55) ~[jfxrt.jar:na]
at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:89) ~[jfxrt.jar:na]
at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:176) ~[jfxrt.jar:na]
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80) ~[jfxrt.jar:na]
at javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:103) ~[jfxrt.jar:na]
at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:110) ~[jfxrt.jar:na]
at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:143) ~[jfxrt.jar:na]
at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:49) ~[jfxrt.jar:na]
at javafx.beans.property.StringProperty.setValue(StringProperty.java:65) ~[jfxrt.jar:na]
at javafx.scene.control.Labeled.setText(Labeled.java:151) ~[jfxrt.jar:na]
at com.insightfullogic.honest_profiler.delivery.javafx.profile.TraceCountViewModel.accept(TraceCountViewModel.java:16) ~[classes/:na]
at com.insightfullogic.honest_profiler.delivery.javafx.profile.CachingProfileListener.accept(CachingProfileListener.java:32) ~[classes/:na]
at com.insightfullogic.honest_profiler.core.ProfileUpdateModerator.run(ProfileUpdateModerator.java:29) ~[classes/:na]
```

From these componets updating.

This also seems to resolve #48