[FAST-32] The presence map BitVector [byte sequence] has too many bits for the group MDEntries Created: 21/Dec/10  Updated: 07/Oct/11

Status: Open
Project: OpenFAST
Component/s: None
Affects Version/s: 0.9.8
Fix Version/s: None

Type: Bug Priority: Default
Reporter: Eduardo Kilhian Armelin Assignee: Jacob Northey
Resolution: Unresolved Votes: 0
Labels: None

Attachments: File FULL_MESSAGE_20_1292884971843.bin     XML File templates-UMDF.xml    

 Description   

All,

This is my first message and I'm using your solution OpenFAST 0.9.8.

In my tests I receive the message below (In more than one UDP package):

My question is: This is normal, becouse that is really BIG? Sometimes I can read many MDEntryTipes (73 is my record).

Find attached the file with this message: FULL_MESSAGE_20_1292884971843.bin
Find attached too the template using to parse this bytes.

If you need more information, be a pleasure send to you.

Thanks in advance,

Best Regards,
Eduardo Armelin


org.openfast.error.FastException: An error occurred while decoding MarketDataSnapshotFullRefresh_20
at org.openfast.template.MessageTemplate.decode(MessageTemplate.java:119) ~[openfast-0.9.8.jar:na]
at org.openfast.codec.FastDecoder.readMessage(FastDecoder.java:67) ~[openfast-0.9.8.jar:na]
at org.openfast.MessageInputStream.readMessage(MessageInputStream.java:69) ~[openfast-0.9.8.jar:na]
at br.fator.marketdata.umdf.processor.DataProcessor.processData(DataProcessor.java:50) ~[bin/:na]
at br.fator.marketdata.umdf.socket.SocketClient.parseDatagramAndCallProcessor(SocketClient.java:212) [bin/:na]
at br.fator.marketdata.umdf.socket.SocketClient.run(SocketClient.java:74) [bin/:na]
at java.lang.Thread.run(Thread.java:619) [na:1.6.0_17]
Caused by: org.openfast.error.FastException: Error occurred while decoding MDEntries
at org.openfast.template.Group.decode(Group.java:240) ~[openfast-0.9.8.jar:na]
at org.openfast.template.Sequence.decode(Sequence.java:194) ~[openfast-0.9.8.jar:na]
at org.openfast.template.Group.decodeFieldValues(Group.java:300) ~[openfast-0.9.8.jar:na]
at org.openfast.template.MessageTemplate.decode(MessageTemplate.java:112) ~[openfast-0.9.8.jar:na]
... 6 common frames omitted
Caused by: org.openfast.error.FastException: The presence map BitVector [00101000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 11111011] has too many bits for the group MDEntries
at org.openfast.error.ErrorCode.throwException(ErrorCode.java:50) ~[openfast-0.9.8.jar:na]
at org.openfast.error.ErrorHandler$1.error(ErrorHandler.java:28) ~[openfast-0.9.8.jar:na]
at org.openfast.Global.handleError(Global.java:19) ~[openfast-0.9.8.jar:na]
at org.openfast.template.Group.decodeFieldValues(Group.java:303) ~[openfast-0.9.8.jar:na]
at org.openfast.template.Group.decodeFieldValues(Group.java:266) ~[openfast-0.9.8.jar:na]
at org.openfast.template.Group.decode(Group.java:233) ~[openfast-0.9.8.jar:na]
... 9 common frames omitted



 Comments   
Comment by Eduardo Kilhian Armelin [ 21/Dec/10 ]

This file are related to FAST-32.

Thx.

Comment by Alexandre de Souza Vasconcelos [ 12/Jul/11 ]

hi Eduardo,

I have the same problem.
did you solve this problem? How?

Thx.

Comment by Glyn Walters [ 06/Oct/11 ]

I also have this issue. With MarketDataFullRefresh messages from EBSLive (working in other FAST implementation)

org.openfast.error.FastException: The presence map BitVector [01110101 11110100] has too many bits for the group MDEntries
at org.openfast.error.ErrorCode.throwException(ErrorCode.java:45)
at org.openfast.error.ErrorHandler$1.error(ErrorHandler.java:26)
at org.openfast.Global.handleError(Global.java:42)
at org.openfast.template.Group.decodeFieldValues(Group.java:296)
at org.openfast.template.Group.decodeFieldValues(Group.java:256)
at org.openfast.template.Group.decode(Group.java:223)

Comment by Glyn Walters [ 07/Oct/11 ]

After investigation it seems that decodeFieldValues in Group is working correctly when it detects the pmap reader has more bit sets. However it seems in some ECN implementations this may be a valid scenario. We will probably consume this error by creating a new ErrorHandler that ignores it. But it may be worth adding a mode to the decoding that allows more promiscuity if there are extraneous bits in the Group presence map.

Comment by Jacob Northey [ 07/Oct/11 ]

There are a couple of different reasons this could be happening.

  1. The templates used to decode the messages are incorrect.
  2. The FAST data provider is not conforming to the FAST specification.

As a workaround, you can set the global OpenFAST ErrorHandler by using Global.setErrorHandler(ErrorHandler handler). You can then ignore specific FAST error codes. The list of all error codes can be found in org.openfast.error.FastConstants.

Generated at Sun May 05 00:37:58 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.