diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/OldSectionTable.java b/src/scratchpad/src/org/apache/poi/hwpf/model/OldSectionTable.java index 87218b35e..18819c32c 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/OldSectionTable.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/OldSectionTable.java @@ -60,8 +60,8 @@ public final class OldSectionTable extends SectionTable // section properties, and we're trying to decode them as if they // were the new ones, we sometimes "need" more data than we have. // As a workaround, have a few extra 0 bytes on the end! - byte[] buf = new byte[sepxSize+2]; - fileOffset += LittleEndian.SHORT_SIZE; + byte[] buf = new byte[sepxSize+4]; + fileOffset += 4; System.arraycopy(documentStream, fileOffset, buf, 0, buf.length); _sections.add(new SEPX(sed, startAt, endAt, charConv, buf)); } diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/extractor/TestWordExtractor.java b/src/scratchpad/testcases/org/apache/poi/hwpf/extractor/TestWordExtractor.java index 1ef21db3a..690345322 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/extractor/TestWordExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/extractor/TestWordExtractor.java @@ -273,7 +273,17 @@ public final class TestWordExtractor extends TestCase { assertEquals("\r\n", tp[5]); assertEquals("Last (4th) paragraph.\r\n", tp[6]); } - + + public void testWord95err() throws Exception { + // Can work with the special one + Word6Extractor w6e = new Word6Extractor( + POIDataSamples.getDocumentInstance().openResourceAsStream("word95err.doc") + ); + String text = w6e.getText(); + + assertTrue(text.contains("subject")); + } + public void testWord6() throws Exception { // Too old for the default try { diff --git a/test-data/document/word95err.doc b/test-data/document/word95err.doc new file mode 100644 index 000000000..7db961b63 Binary files /dev/null and b/test-data/document/word95err.doc differ