On the producer side (C++) a FieldTable::setDouble(..., double) is called, e.g. setDouble("CURRENT", 3.000000) 10/22 09:44:05 Limit: b; Current: 3.000000, Max: 3.000000 10/22 09:44:05 Limit: c; Current: 3.000000, Max: 3.000000 10/22 09:44:05 Limit: a; Current: 3.000000, Max: 3.000000 On the consumer side (python) the doubles appear to have been corrupted qpid: Call Result: GetLimits 0 (OK) {'Limits': {u'a': {u'CURRENT': 1.0434666440167127e-320, u'MAX': 1.0434666440167127e-320}, u'c': {u'CURRENT': 1.0434666440167127e-320, u'MAX': 1.0434666440167127e-320}, u'b': {u'CURRENT': 1.0434666440167127e-320, u'MAX': 1.0434666440167127e-320}}}
Fixed in r707604. Also added test: qpid/cpp/src/tests/run_header_test. This involves a c++ client sending a message with a float and a double in the header (header_test.cpp) and a python client reading that message and verifying the values of those two headers (header_test.py). Ideally want to expand this to be bi-directional and to cover a wider range of types.
RHTS test qpid_test_fieldtable_encoding_issue_bz468026 shows that double value is now correctly handled. There is apparently problem with int64_t type which is going to be filled as separate problem. ->VERIFIED