6162636465666768697071
StreamParser parser = factory.createParser(new FileInputStream(file)); assertTrue(file.length() > 30); assertEquals(0, parser.currentOffset()); List<Object> t = parser.nextRecord(); assertEquals(2, t.size()); assertEquals("test", t.get(0)); assertEquals("1", t.get(1));
6768697071727374757677
assertEquals(2, t.size()); assertEquals("test", t.get(0)); assertEquals("1", t.get(1)); t = parser.nextRecord(); assertEquals(2, t.size()); assertEquals("test", t.get(0)); assertEquals("2", t.get(1));
7677787980818283848586
assertEquals("2", t.get(1)); // time critical section starts here ... delay > 50ms can cause failure // first read doesn't see a full record and thus returns null t = parser.nextRecord(); assertNull(t); // write the remainder now out.write(bytes, 6, bytes.length - 6);
8384858687888990919293
// write the remainder now out.write(bytes, 6, bytes.length - 6); // so that the repeated read succeeds t = parser.nextRecord(); // end of time critical section assertEquals(2, t.size()); assertEquals("test", t.get(0)); assertEquals("3", t.get(1));
90919293949596979899100
assertEquals(2, t.size()); assertEquals("test", t.get(0)); assertEquals("3", t.get(1)); assertNull(parser.nextRecord()); out.close(); } @Test