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

Best Answer

  • Jirapongse
    Jirapongse admin
    Answer ✓

    @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);


Answers