/** * Silently swallow unexpected contents in InterfaceEndRecord. Although it violates the spec, * Excel silently converts this data to an {@link InterfaceHdrRecord}. */ public void testUnexpectedBytes_bug47251() { String hex = "" + "09 08 10 00 00 06 05 00 EC 15 CD 07 C1 C0 00 00 06 03 00 00 " + // BOF "E2 00 02 00 B0 04 " + // INTERFACEEND with extra two bytes "0A 00 00 00"; // EOF byte[] data = HexRead.readFromString(hex); List<Record> records = RecordFactory.createRecords(new ByteArrayInputStream(data)); assertEquals(3, records.size()); Record rec1 = records.get(1); assertEquals(InterfaceHdrRecord.class, rec1.getClass()); InterfaceHdrRecord r = (InterfaceHdrRecord) rec1; assertEquals("[E1, 00, 02, 00, B0, 04]", HexDump.toHex(r.serialize())); }