jmisb icon indicating copy to clipboard operation
jmisb copied to clipboard

Invalid OID field exception

Open dbussert opened this issue 5 years ago • 8 comments

Describe the bug This file is thought to have valid metadata is and used often for testing

java.lang.IllegalArgumentException: Invalid OID field at org.jmisb.api.klv.UniversalLabel.testValidity(UniversalLabel.java:71) at org.jmisb.api.klv.UniversalLabel.(UniversalLabel.java:21) at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:48) at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102) [MetadataDecodeThread - ] ERROR org.jmisb.api.video.MetadataDecodeThread - KLV parse exception org.jmisb.api.common.KlvParseException: Invalid OID field at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:85) at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102) [MetadataDecodeThread - ] ERROR org.jmisb.api.klv.KlvParser - Exception thrown by parser java.lang.IllegalArgumentException: Invalid OID field at org.jmisb.api.klv.UniversalLabel.testValidity(UniversalLabel.java:71) at org.jmisb.api.klv.UniversalLabel.(UniversalLabel.java:21) at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:48) at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102) [MetadataDecodeThread - ] ERROR org.jmisb.api.video.MetadataDecodeThread - KLV parse exception org.jmisb.api.common.KlvParseException: Invalid OID field at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:85) at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102) [MetadataDecodeThread - ] ERROR org.jmisb.api.video.MetadataDecodeThread - KLV parse exception org.jmisb.api.common.KlvParseException: Length exceeds available bytes at org.jmisb.api.klv.KlvParser.getNextMessage(KlvParser.java:137) at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:41) at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102) Exception in thread "MetadataDecodeThread - " java.lang.ArrayIndexOutOfBoundsException: Index 16 out of bounds for length 16 at org.jmisb.api.klv.KlvParser.getNextMessage(KlvParser.java:110) at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:41) at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102)

dbussert avatar Sep 02 '20 21:09 dbussert

Can you show the parser inputs? The problem actually looks like it might be further "down", given the Index 16 out of bounds for length 16 part. That looks like we may be going wrong earlier.

Can you make the file available, or provide the name?

bradh avatar Sep 02 '20 22:09 bradh

I cannot share the whole file, but I might be able to take 1 0601 block and share it. Where do you think the issue is? Would that suffice?

dbussert avatar Sep 03 '20 00:09 dbussert

Remote debugging is pretty hard - I'm not 100% sure what the problem is.

If you can dump out the byte array at KlvParser.java:41 that might help.

bradh avatar Sep 03 '20 00:09 bradh

is this what you wanted?

[MetadataDecodeThread - <filename>] ERROR org.jmisb.api.klv.KlvParser - Exception thrown by parser
java.lang.IllegalArgumentException: Invalid OID field
        at org.jmisb.api.klv.UniversalLabel.testValidity(UniversalLabel.java:71)
        at org.jmisb.api.klv.UniversalLabel.<init>(UniversalLabel.java:21)
        at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:51)
        at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102)
[MetadataDecodeThread - <filename>] ERROR org.jmisb.api.video.MetadataDecodeThread - KLV parse exception
org.jmisb.api.common.KlvParseException: Invalid OID field
        at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:88)
        at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102)
Next Message bytes[]: 0x01, 0x01, 0x01, 0x0f, 0x0f, 0x52, 0x41, 0x59, 0x01, 0x00, 0x00, 0x81, 0xc8, 0x01, 0x40, 0xdc,
0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x69, 0x37, 0x34, 0xaf, 0xc0,
0x00, 0x19, 0x58, 0xaf, 0x11, 0xac, 0x52, 0xe6, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x67, 0x16,
0x4f, 0x01, 0x33, 0x00, 0x00, 0xac, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x3f, 0x7f, 0xfd, 0x0a, 0xa8, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x21, 0x31, 0x7d, 0x7d, 0x18,
0x2c, 0x00, 0x08, 0x53, 0x40, 0x00, 0x00, 0x92, 0x00, 0x90, 0x0a, 0x90, 0x0a, 0x91, 0xa6, 0x00,
0x00, 0xdc, 0x00, 0x6d, 0x74, 0x00, 0x00, 0xc2, 0xac, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
[MetadataDecodeThread - <filename>] ERROR org.jmisb.api.klv.KlvParser - Exception thrown by parser
java.lang.IllegalArgumentException: Invalid OID field
        at org.jmisb.api.klv.UniversalLabel.testValidity(UniversalLabel.java:71)
        at org.jmisb.api.klv.UniversalLabel.<init>(UniversalLabel.java:21)
        at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:51)
        at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102)
[MetadataDecodeThread - <filename>] ERROR org.jmisb.api.video.MetadataDecodeThread - KLV parse exception
org.jmisb.api.common.KlvParseException: Invalid OID field
        at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:88)
        at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102)
[MetadataDecodeThread - <filename>] ERROR org.jmisb.api.video.MetadataDecodeThread - KLV parse exception
org.jmisb.api.common.KlvParseException: Length exceeds available bytes
        at org.jmisb.api.klv.KlvParser.getNextMessage(KlvParser.java:140)
        at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:42)
        at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102)
Exception in thread "MetadataDecodeThread - <filename>" java.lang.ArrayIndexOutOfBoundsException: Index 16 out of bounds for length 16
        at org.jmisb.api.klv.KlvParser.getNextMessage(KlvParser.java:113)
        at org.jmisb.api.klv.KlvParser.parseBytes(KlvParser.java:42)
        at org.jmisb.api.video.MetadataDecodeThread.run(MetadataDecodeThread.java:102)

dbussert avatar Sep 03 '20 13:09 dbussert

Is that the start of the first packet? Looks more like something from mid-stream.

bradh avatar Sep 07 '20 00:09 bradh

I rechecked, and this is the very first packet that's printed out and the parser errors out immediately after that one

dbussert avatar Sep 09 '20 19:09 dbussert

Then I have no real idea what is happening. That doesn't look like KLV Universal Label I can recognise.

bradh avatar Sep 09 '20 19:09 bradh

Any chance you can at least tell me the name of the file (even privately: [email protected])

bradh avatar Sep 09 '20 22:09 bradh