fix 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1195079 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-10-30 00:04:38 +00:00
parent 0cf37b664b
commit 9883b370e2
5 changed files with 19 additions and 17 deletions

View File

@ -34,6 +34,7 @@
<changes> <changes>
<release version="3.8-beta5" date="2011-??-??"> <release version="3.8-beta5" date="2011-??-??">
<action dev="poi-developers" type="fix">51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds</action>
<action dev="poi-developers" type="fix">52032 - HWPF - ArrayIndexOutofBoundsException with no stack trace (broken after revision 1178063)</action> <action dev="poi-developers" type="fix">52032 - HWPF - ArrayIndexOutofBoundsException with no stack trace (broken after revision 1178063)</action>
<action dev="poi-developers" type="add">support for converting pptx files into images with a PPTX2PNG tool</action> <action dev="poi-developers" type="add">support for converting pptx files into images with a PPTX2PNG tool</action>
<action dev="poi-developers" type="add">52050 - Support for the Excel RATE function</action> <action dev="poi-developers" type="add">52050 - Support for the Excel RATE function</action>

View File

@ -59,14 +59,11 @@ public final class OldCHPBinTable extends CHPBinTable
CHPFormattedDiskPage cfkp = new CHPFormattedDiskPage(documentStream, CHPFormattedDiskPage cfkp = new CHPFormattedDiskPage(documentStream,
pageOffset, tpt); pageOffset, tpt);
int fkpSize = cfkp.size(); for ( CHPX chpx : cfkp.getCHPXs() )
{
for (int y = 0; y < fkpSize; y++) if ( chpx != null )
{ _textRuns.add( chpx );
CHPX chpx = cfkp.getCHPX(y); }
if (chpx != null)
_textRuns.add(chpx);
}
} }
Collections.sort( _textRuns, PropertyNode.StartComparator.instance ); Collections.sort( _textRuns, PropertyNode.StartComparator.instance );
} }

View File

@ -51,15 +51,11 @@ public final class OldPAPBinTable extends PAPBinTable
PAPFormattedDiskPage pfkp = new PAPFormattedDiskPage(documentStream, PAPFormattedDiskPage pfkp = new PAPFormattedDiskPage(documentStream,
documentStream, pageOffset, tpt); documentStream, pageOffset, tpt);
int fkpSize = pfkp.size(); for ( PAPX papx : pfkp.getPAPXs() )
{
for (int y = 0; y < fkpSize; y++) if ( papx != null )
{ _paragraphs.add( papx );
PAPX papx = pfkp.getPAPX(y); }
if (papx != null) {
_paragraphs.add(papx);
}
}
} }
Collections.sort( _paragraphs, PropertyNode.StartComparator.instance ); Collections.sort( _paragraphs, PropertyNode.StartComparator.instance );
} }

View File

@ -720,6 +720,14 @@ public class TestBugs extends TestCase
.openSampleFile( "Bug51834.doc" ) ); .openSampleFile( "Bug51834.doc" ) );
} }
/**
* Bug 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds
*/
public void testBug51944() throws Exception
{
HWPFTestDataSamples.openOldSampleFile( "Bug51944.doc" );
}
/** /**
* Bug 52032 - [BUG] & [partial-PATCH] HWPF - ArrayIndexOutofBoundsException * Bug 52032 - [BUG] & [partial-PATCH] HWPF - ArrayIndexOutofBoundsException
* with no stack trace (broken after revision 1178063) * with no stack trace (broken after revision 1178063)

Binary file not shown.