From: Sergey Vladimirov Date: Sun, 30 Oct 2011 00:04:38 +0000 (+0000) Subject: fix 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds X-Git-Tag: REL_3_8_BETA5~38 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2ac2e796527188f9b1773360fc4c3678026be2e4;p=poi.git fix 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1195079 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index bd1d4d8926..0ff1959b25 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ + 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds 52032 - HWPF - ArrayIndexOutofBoundsException with no stack trace (broken after revision 1178063) support for converting pptx files into images with a PPTX2PNG tool 52050 - Support for the Excel RATE function diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/OldCHPBinTable.java b/src/scratchpad/src/org/apache/poi/hwpf/model/OldCHPBinTable.java index 4b9038d4f7..bc3f4869bc 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/OldCHPBinTable.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/OldCHPBinTable.java @@ -59,14 +59,11 @@ public final class OldCHPBinTable extends CHPBinTable CHPFormattedDiskPage cfkp = new CHPFormattedDiskPage(documentStream, pageOffset, tpt); - int fkpSize = cfkp.size(); - - for (int y = 0; y < fkpSize; y++) - { - CHPX chpx = cfkp.getCHPX(y); - if (chpx != null) - _textRuns.add(chpx); - } + for ( CHPX chpx : cfkp.getCHPXs() ) + { + if ( chpx != null ) + _textRuns.add( chpx ); + } } Collections.sort( _textRuns, PropertyNode.StartComparator.instance ); } diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/OldPAPBinTable.java b/src/scratchpad/src/org/apache/poi/hwpf/model/OldPAPBinTable.java index 658e667156..0a4ae67ae8 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/OldPAPBinTable.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/OldPAPBinTable.java @@ -51,15 +51,11 @@ public final class OldPAPBinTable extends PAPBinTable PAPFormattedDiskPage pfkp = new PAPFormattedDiskPage(documentStream, documentStream, pageOffset, tpt); - int fkpSize = pfkp.size(); - - for (int y = 0; y < fkpSize; y++) - { - PAPX papx = pfkp.getPAPX(y); - if (papx != null) { - _paragraphs.add(papx); - } - } + for ( PAPX papx : pfkp.getPAPXs() ) + { + if ( papx != null ) + _paragraphs.add( papx ); + } } Collections.sort( _paragraphs, PropertyNode.StartComparator.instance ); } 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 bc243cdbb2..593bd8419d 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java @@ -720,6 +720,14 @@ public class TestBugs extends TestCase .openSampleFile( "Bug51834.doc" ) ); } + /** + * Bug 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds + */ + public void testBug51944() throws Exception + { + HWPFTestDataSamples.openOldSampleFile( "Bug51944.doc" ); + } + /** * Bug 52032 - [BUG] & [partial-PATCH] HWPF - ArrayIndexOutofBoundsException * with no stack trace (broken after revision 1178063) diff --git a/test-data/document/Bug51944.doc b/test-data/document/Bug51944.doc new file mode 100644 index 0000000000..2598dc10c0 Binary files /dev/null and b/test-data/document/Bug51944.doc differ