From 0c9d5c57e6478c6ea7200bbad405810e804e30ea Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Tue, 7 Feb 2012 09:48:22 +0000 Subject: [PATCH] Bugzilla 52570: misc fixes in XWPFDocument git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1241398 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xwpf/usermodel/XWPFDocument.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) 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); -- 2.39.5