ignore PAPX references zero-length text pieces

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1145281 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-07-11 18:39:18 +00:00
parent 8371f13c4d
commit 984c180ade
1 changed files with 18 additions and 6 deletions

View File

@ -82,20 +82,32 @@ public final class PAPFormattedDiskPage extends FormattedDiskPage {
{
int startAt = getStart( x );
int endAt = getEnd( x );
if ( !ignorePapxWithoutTextPieces
|| tpt.isIndexInTable( startAt, endAt ) )
_papxList.add( new PAPX( startAt, endAt, tpt, getGrpprl( x ),
getParagraphHeight( x ), dataStream ) );
else
if ( ignorePapxWithoutTextPieces
&& !tpt.isIndexInTable( startAt, endAt ) )
{
logger.log( POILogger.WARN, "PAPX [",
Integer.valueOf( startAt ), "; ",
Integer.valueOf( endAt ),
") (bytes) doesn't have corresponding text pieces "
+ "and will be skipped" );
_papxList.add( null );
continue;
}
PAPX papx = new PAPX( startAt, endAt, tpt, getGrpprl( x ),
getParagraphHeight( x ), dataStream );
if ( ignorePapxWithoutTextPieces
&& papx.getStart() == papx.getEnd() )
{
logger.log( POILogger.WARN, papx
+ " references zero-length range and will be skipped" );
_papxList.add( null );
continue;
}
_papxList.add( papx );
}
_fkp = null;
_dataStream = dataStream;