Мы решили эту проблему, создав класс BeanProxy, который переопределяет setValue и getValue. Там мы возвращаем NaN на сторону flex, если значением является Number и null, и мы возвращаем null на сторону Java, если это Double и NaN. Работа сделана:
@Override
public void setValue(Object instance, String propertyName, Object value) {
if ((value instanceof Double)) {
Double doubleValue = (Double) value;
if (doubleValue != null && doubleValue.isNaN()) {
super.setValue(instance, propertyName, null);
}
}else{
super.setValue(instance, propertyName, value);
}
}
@Override
public Object getValue(Object obj, String propertyName) {
final Class classType = super.getType(obj, propertyName);
if (isNumber(classType) && super.getValue(obj, propertyName) == null) {
return Double.NaN;
}
return super.getValue(obj, propertyName);
}