question

Upvotes
Accepted
11 1 1 4

Unknown MsgClass

What do these mean

Can you please suggest how to handle these? I am using version

<dependency>
    <groupId>reuters</groupId>
    <artifactId>upa</artifactId>
    <version>8.0.0.L1.all.rrg</version>
</dependency>

I see that this is called inside Decoders.java and there is a switch block

static int decodeMsg(DecodeIterator iterInt, Msg msg)
try
{
    decodeMsgHeader(iter, msg);
}
catch (Exception e)
{
    return CodecReturnCodes.INCOMPLETE_DATA;
}

and inside this decodeMsgHeader is where I think this Unknown Class is being printed in default switch case

default:
    System.out.println("Unknown msgClass: " + msg.msgClass());
    assert (false);

INFO 09-Apr-20 12:09:06,086 () com.thomsonreuters.upa.codec.D - Unknown msgClass: 4

INFO 09-Apr-20 12:09:06,180 () com.thomsonreuters.upa.codec.D - Unknown msgClass: 29

INFO 09-Apr-20 12:09:08,557 () com.thomsonreuters.upa.codec.D - Unknown msgClass: 12

INFO 09-Apr-20 12:09:17,645 () com.thomsonreuters.upa.codec.D - Unknown msgClass: 0

INFO 09-Apr-20 12:09:23,938 () com.thomsonreuters.upa.codec.D - Unknown msgClass: 0v

elektronrefinitiv-realtimeelektron-sdkjava
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvotes
Accepted
38.1k 69 35 53

@pratik.p.mehta

It seems that the UPA is unable to decode those buffers because those contain invalid message classes.

To verify this issue, you may need to print the hex strings of those buffers.

You can use the code from Stack Overflow to convert a byte array to a hex string.

int position = buffer.data().position();
byte[] b = new byte[buffer.data().remaining()];
buffer.data().get(b);
System.out.println(bytesToHex(b));
buffer.data().position(position);


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Sure, thank you, let me do that.

Click below to post an Idea Post Idea