https://bz.apache.org/bugzilla/show_bug.cgi?id=58355

            Bug ID: 58355
           Summary: Paragraph not first in table exception when processing
                    first page footer
           Product: POI
           Version: unspecified
          Hardware: PC
            Status: NEW
          Severity: minor
          Priority: P2
         Component: HWPF
          Assignee: dev@poi.apache.org
          Reporter: talli...@mitre.org

On TIKA-1733, Christophe Lacroix reported this exception and attached a
triggering document.

I can reproduce this bug with POI's trunk.

When I iterate through the ranges in the overall range
(headerStories.getRange()), it looks like the paragraph for the first page
footer should be at 2044 to 2045...then with proper handling (is this in table?
yes, grab the table text), this shows that the full table offsets are 2044
through 2353.

P OFFSETS:2044 -> 2045
table text: > <
<ROW> Prosys - 23, rue du Capitaine Ferber - 92130 Issy-les-Moulineaux - Tel :
+33 (0)1 41 23 27 77 - Fax : +33 (0)1 41 23 27 99 - www.prosys.fr - Une société
du Groupe Moniteur</ROW>
<ROW>SAS au capital de 780 000 euros - SIRET : 344 894 985 000 52 RCS Nanterre
- APE : 6202 A - TVA intracommunautaire : FR 32 344 894 985</ROW>
table Offsets: 2044 -> 2353

When I run this same iteration through
headerStories.getFirstFooterSubrange(),the target range is 2045-> 2355.

RANGE: 2045 : 2355
P OFFSETS:2045 : 2217
table text: >Prosys - 23, rue du Capitaine Ferber - 92130 Issy-les-Moulineaux -
Tel : +33 (0)1 41 23 27 77 - Fax : +33 (0)1 41 23 27 99 - www.prosys.fr - Une
société du Groupe Moniteur<

java.lang.IllegalArgumentException: This paragraph is not the first one in the
table
    at org.apache.poi.hwpf.usermodel.Range.getTable(Range.java:927)
    at
org.apache.poi.hwpf.TestHWPFRangeParts.testTableInFirstPageFooter(TestHWPFRangeParts.java:214)


Is the file corrupt or is this an area for improvement within POI

Basic debugging code:
    public void testTableInFirstPageFooter() throws Exception {
        HWPFDocument d = HWPFTestDataSamples.openSampleFile("TIKA-1733.doc");
        HeaderStories headerStories = new HeaderStories(d);
//        Range r = headerStories.getFirstFooterSubrange();
        int i = 0;
        for (Range r : new Range[]{
              //  headerStories.getRange(),
                //headerStories.getFirstHeaderSubrange(),
                headerStories.getFirstFooterSubrange(),
                //headerStories.getOddFooterSubrange()
        }) {
            if (r != null) {
                System.out.println("RANGE: "+r.getStartOffset() + " :
"+r.getEndOffset());
                for (int j = 0; j < r.numParagraphs(); j++) {
                    Paragraph p = r.getParagraph(j);
                    System.out.println("P OFFSETS:" +
                            p.getStartOffset() + " : " +
                            p.getEndOffset());
                    if (p.isInTable()) {
                        System.out.println("table text: >" +
p.text().replaceAll("[\\r\\n]", " ")+"<");
                        Table t = r.getTable(p);
                        for (int rNum = 0; rNum < t.numRows(); rNum++) {
                            TableRow row = t.getRow(rNum);
                           
System.out.println("<ROW>"+row.text().replaceAll("[\\r\\n]", " ")
                                    +"</ROW>");
                        }
                        System.out.println("table Offsets: " +
t.getStartOffset() + " -> " + t.getEndOffset());
                        j += t.numParagraphs()-1;
                    }
                }
            }
            i++;
        }

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to