ObservableValue Stacktrace

Kevin Rushforth kevin.rushforth at oracle.com
Thu Jun 6 09:31:24 PDT 2013


Perhaps using the logging system would be a better choice in the case 
than printing to stderr?

-- Kevin


Martin Sladecek wrote:
> On 06/06/2013 10:53 AM, John Hendrikx wrote:
>> Hm, ok -- it is correct that it doesn't fail, the code runs without 
>> any problem and everything works as expected.
>>
>> But, what would be the way to avoid these messages in my log then?  
>> Something like:
>>
>>   Bindings.select( Bindings.when(dataProperty().isNull()).then( ??? 
>> ).otherwise(dataProperty()), "castings") );
>>
>> ??
>>
>> I'd prefer to just turn these warnings off unless there is a really 
>> good reason to have them (ie, they indicate a logic error or other 
>> bug, something I can resolve...)
>
> This might indicate a logic error in many cases, esp. when the 
> property you bind is a primitive type. When the select fails in the 
> middle of computation, the only it can do is to set the property to 
> default value (which is 0). If the developer
> didn't expect this, it would be quite hard to find the actual cause of 
> the zero. If you really expect nulls along the way, it's much cleaner 
> to handle this explicitly as you do in the code above.
>
>>
>> In my case the dataProperty() is often bound to the selection of a 
>> ListView -- if you have something valid selected, then a Detail Pane 
>> is filled in with information about the selected item.  When nothing 
>> is selected (ie, it is null), then the Detail Pane should remain 
>> empty... I donot want to have to remove/recreate these bindings every 
>> time some property becomes null.
>>
>> Also, it seems rather wierd that JavaFX will complain about nulls in 
>> the first part of the Bindings.select(), but will happily traverse 
>> the graph (with or without nulls) for the other parts.
> This is a bug then, it should print the warning in any part of the 
> select expression.
>
> -Martin


More information about the openjfx-dev mailing list