]> source.dussan.org Git - poi.git/commitdiff
correctly hangle out-of-boundaries cases for bookmarks and fields in Word-to-* converters
authorSergey Vladimirov <sergey@apache.org>
Mon, 25 Jul 2011 10:40:02 +0000 (10:40 +0000)
committerSergey Vladimirov <sergey@apache.org>
Mon, 25 Jul 2011 10:40:02 +0000 (10:40 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1150622 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordConverter.java

index de3b6c75c8cb0aedeb1374211407540a1e009a34..013954241cf2a00af0a1116ae37fc7c695c28183 100644 (file)
@@ -318,15 +318,26 @@ public abstract class AbstractWordConverter
 
         if ( previous != range.getStartOffset() )
         {
-            Range subrange = new Range( previous, range.getEndOffset(), range )
+            if ( previous > range.getEndOffset() )
             {
-                @Override
-                public String toString()
+                logger.log( POILogger.WARN, "Latest structure in " + range
+                        + " ended after range (" + previous + ")" );
+                return true;
+            }
+
+            if ( previous < range.getEndOffset() )
+            {
+                Range subrange = new Range( previous, range.getEndOffset(),
+                        range )
                 {
-                    return "AfterStructureSubrange " + super.toString();
-                }
-            };
-            processCharacters( document, currentTableLevel, subrange, block );
+                    @Override
+                    public String toString()
+                    {
+                        return "AfterStructureSubrange " + super.toString();
+                    }
+                };
+                processCharacters( document, currentTableLevel, subrange, block );
+            }
             return true;
         }