]> source.dussan.org Git - poi.git/commitdiff
ignore PAPX references zero-length text pieces
authorSergey Vladimirov <sergey@apache.org>
Mon, 11 Jul 2011 18:39:18 +0000 (18:39 +0000)
committerSergey Vladimirov <sergey@apache.org>
Mon, 11 Jul 2011 18:39:18 +0000 (18:39 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1145281 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/model/PAPFormattedDiskPage.java

index 1035698b8e672e43c8c054ef59c5a760a67e80ca..4e357b38f40880119ff074375f23701d2eed8655 100644 (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;