From: Yegor Kozlov Date: Tue, 7 Feb 2012 09:48:22 +0000 (+0000) Subject: Bugzilla 52570: misc fixes in XWPFDocument X-Git-Tag: REL_3_8_FINAL~61 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0c9d5c57e6478c6ea7200bbad405810e804e30ea;p=poi.git Bugzilla 52570: misc fixes in XWPFDocument git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1241398 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java index 4cb412931e..94b326811b 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java @@ -302,6 +302,10 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { return Collections.unmodifiableList(bodyElements); } + public Iterator getBodyElementsIterator() { + return bodyElements.iterator(); + } + /** * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphs() */ @@ -492,7 +496,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { } /** - * Look up the paragraph at the specified position in the body elemnts list + * Look up the paragraph at the specified position in the body elements list * and return this paragraphs position in the paragraphs list * * @param pos @@ -604,7 +608,6 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { cursor.toParent(); CTTbl t = (CTTbl) cursor.getObject(); XWPFTable newT = new XWPFTable(t, this); - cursor.removeXmlContents(); XmlObject o = null; while (!(o instanceof CTTbl) && (cursor.toPrevSibling())) { o = cursor.getObject(); @@ -616,16 +619,22 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { tables.add(pos, newT); } int i = 0; - cursor = t.newCursor(); + XmlCursor tableCursor = t.newCursor(); + try { + cursor.toCursor(tableCursor); while (cursor.toPrevSibling()) { o = cursor.getObject(); if (o instanceof CTP || o instanceof CTTbl) i++; } bodyElements.add(i, newT); - cursor = t.newCursor(); + cursor.toCursor(tableCursor); cursor.toEndToken(); return newT; + } + finally { + tableCursor.dispose(); + } } return null; } @@ -1317,7 +1326,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { return null; } XWPFTableRow tableRow = table.getRow(row); - if(row == null){ + if (tableRow == null) { return null; } return tableRow.getTableCell(cell);