diff --git a/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java b/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java index 1b712f788e..7367757f48 100644 --- a/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java +++ b/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java @@ -68,13 +68,10 @@ public class RecordsStresser { // a test-case to test this locally without executing the full TestAllFiles @Test public void test() throws Exception { - InputStream stream = new FileInputStream("test-data/spreadsheet/15556.xls"); - try { + try (InputStream stream = new FileInputStream("test-data/spreadsheet/15556.xls")) { HSSFWorkbook wb = new HSSFWorkbook(stream); handleWorkbook(wb); wb.close(); - } finally { - stream.close(); } } } diff --git a/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java b/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java index 13e198d169..59f34870c6 100644 --- a/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java +++ b/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java @@ -21,9 +21,12 @@ import static org.junit.Assert.assertNotNull; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; +import java.util.List; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor; +import org.apache.poi.hwpf.model.PicturesTable; +import org.apache.poi.hwpf.usermodel.Picture; import org.junit.Test; public class HWPFFileHandler extends POIFSFileHandler { @@ -33,7 +36,11 @@ public class HWPFFileHandler extends POIFSFileHandler { assertNotNull(doc.getBookmarks()); assertNotNull(doc.getCharacterTable()); assertNotNull(doc.getEndnotes()); - + + PicturesTable picturesTable = doc.getPicturesTable(); + List pictures = picturesTable.getAllPictures(); + assertNotNull(pictures); + handlePOIDocument(doc); } @@ -54,11 +61,8 @@ public class HWPFFileHandler extends POIFSFileHandler { stream = new FileInputStream(file); try { - WordExtractor extractor = new WordExtractor(stream); - try { + try (WordExtractor extractor = new WordExtractor(stream)) { assertNotNull(extractor.getText()); - } finally { - extractor.close(); } } finally { stream.close(); diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java b/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java index 4f057fb3aa..8811bfb1f0 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java @@ -304,6 +304,10 @@ public final class StyleSheet { return NIL_CHP; } + if (styleIndex == -1) { + return NIL_CHP; + } + return (_styleDescriptions[styleIndex] != null ? _styleDescriptions[styleIndex] .getCHP() : NIL_CHP); } @@ -318,6 +322,10 @@ public final class StyleSheet { return NIL_PAP; } + if (styleIndex == -1) { + return NIL_PAP; + } + if (_styleDescriptions[styleIndex] == null) { return NIL_PAP; } @@ -338,6 +346,10 @@ public final class StyleSheet { return NIL_CHPX; } + if (styleIndex == -1) { + return NIL_CHPX; + } + if (_styleDescriptions[styleIndex] == null) { return NIL_CHPX; } @@ -358,6 +370,10 @@ public final class StyleSheet { return NIL_PAPX; } + if (styleIndex == -1) { + return NIL_PAPX; + } + if (_styleDescriptions[styleIndex] == null) { return NIL_PAPX; } diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java index 4ba83bb767..4bced587d4 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java @@ -38,10 +38,7 @@ import org.apache.poi.hwpf.converter.AbstractWordUtils; import org.apache.poi.hwpf.converter.WordToTextConverter; import org.apache.poi.hwpf.extractor.Word6Extractor; import org.apache.poi.hwpf.extractor.WordExtractor; -import org.apache.poi.hwpf.model.FieldsDocumentPart; -import org.apache.poi.hwpf.model.FileInformationBlock; -import org.apache.poi.hwpf.model.PlexOfField; -import org.apache.poi.hwpf.model.SubdocumentType; +import org.apache.poi.hwpf.model.*; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.util.IOUtils; @@ -903,4 +900,17 @@ public class TestBugs{ HWPFDocument document = HWPFTestDataSamples.openSampleFile("ca.kwsymphony.www_education_School_Concert_Seat_Booking_Form_2011-12.doc"); document.close(); } + + @Test + public void test61911() throws IOException { + HWPFDocument document = HWPFTestDataSamples.openSampleFile("61911.doc"); + + PicturesTable picturesTable = document.getPicturesTable(); + List pictures = picturesTable.getAllPictures(); + assertNotNull(pictures); + assertEquals(0, pictures.size()); + + document.close(); + + } } diff --git a/test-data/document/61911.doc b/test-data/document/61911.doc new file mode 100644 index 0000000000..5d38dbe760 Binary files /dev/null and b/test-data/document/61911.doc differ