[FAST-49] Fields without operator write to global dictionary Created: 27/May/14 Updated: 13/Oct/16 |
|
Status: | Open |
Project: | OpenFAST |
Component/s: | Operators |
Affects Version/s: | 1.1.2 |
Fix Version/s: | None |
Type: | Bug | Priority: | Default |
Reporter: | Felix Krull | Assignee: | Jacob Northey |
Resolution: | Unresolved | Votes: | 0 |
Labels: | dictionary, operator | ||
Environment: |
RHEL 5.10, JDK 1.6.0_30, 64 BIT |
Attachments: | eurex-rdd.fast |
Description |
I can be argued whether this is a bug or feature request, since the FAST specification is not 100% clear on this issue***. However, because the other Opensource implementation Quickfast is handing this as suggested, I decided to file this as a bug. The Eurex T7 EMDI feed defines e.g the field TransactTime with different/without operators: template TransactTime-Operator ProductStateChange none Now, in case you have a message order where (a) the field without operator precedes (b) a field with operator before the next reset, the decoded value for the operator field is wrong (contains now value a+b, whereas only b would be correct) Suggested change: fields without operator should not write into a dictionary, or in other words: only operators should update the dictionary.
|
Comments |
Comment by Felix Krull [ 28/May/14 ] |
Actually it's definitely a bug. In Scalar.java inside the "Public FieldValue decode" the check for "shouldStoreValue" is missing, i.e. instead if (!((getOperator() == Operator.DELTA) && (value == null))) it should be if (!((getOperator() == Operator.DELTA) && (value == null)) && (operator.shouldStoreValue(value))) { --> then Operator.NONE is (correctly) not updating the dictionary .... It may also fix other lingering bugs. rgds |
Comment by Felix Krull [ 20/Jun/14 ] |
Is there any update fro this issue? Looking further into the source code it seems that the overall operator-handling may be inconsistent. Thanks! |
Comment by Michael Kötter [ 30/Sep/16 ] |
Just signed on to say Thank You! |
Comment by Alexander Piskarev [ 13/Oct/16 ] |
My thanks to you Felix! Eurex T7 4.0.2 RDI data is decoded well with your patch. |