From 9883b370e248427b76aa98108ea5264142a7a8fc Mon Sep 17 00:00:00 2001 From: Sergey Vladimirov Date: Sun, 30 Oct 2011 00:04:38 +0000 Subject: [PATCH] fix 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1195079 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/status.xml | 1 + .../apache/poi/hwpf/model/OldCHPBinTable.java | 13 +++++-------- .../apache/poi/hwpf/model/OldPAPBinTable.java | 14 +++++--------- .../org/apache/poi/hwpf/usermodel/TestBugs.java | 8 ++++++++ test-data/document/Bug51944.doc | Bin 0 -> 27648 bytes 5 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 test-data/document/Bug51944.doc diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index bd1d4d892..0ff1959b2 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 4b9038d4f..bc3f4869b 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 658e66715..0a4ae67ae 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 bc243cdbb..593bd8419 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 0000000000000000000000000000000000000000..2598dc10c028b69ce1b5abfef9c0b2fb8094c984 GIT binary patch literal 27648 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 literal 0 HcmV?d00001