mirror of https://github.com/apache/poi.git
remove use of some calls to deprecated cursor dispose()
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1902065 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
96079c05b7
commit
b24d8ca779
|
@ -72,8 +72,7 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
}
|
||||
|
||||
protected void init() {
|
||||
XmlCursor cursor = ctFtnEdn.newCursor();
|
||||
try {
|
||||
try (XmlCursor cursor = ctFtnEdn.newCursor()) {
|
||||
//copied from XWPFDocument...should centralize this code
|
||||
//to avoid duplication
|
||||
cursor.selectPath("./*");
|
||||
|
@ -93,8 +92,6 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
}
|
||||
|
||||
}
|
||||
} finally {
|
||||
cursor.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -251,8 +248,7 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
public XWPFTableCell getTableCell(CTTc cell) {
|
||||
XmlObject o;
|
||||
CTRow row;
|
||||
final XmlCursor cursor = cell.newCursor();
|
||||
try {
|
||||
try (final XmlCursor cursor = cell.newCursor()) {
|
||||
cursor.toParent();
|
||||
o = cursor.getObject();
|
||||
if (!(o instanceof CTRow)) {
|
||||
|
@ -261,8 +257,6 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
row = (CTRow) o;
|
||||
cursor.toParent();
|
||||
o = cursor.getObject();
|
||||
} finally {
|
||||
cursor.dispose();
|
||||
}
|
||||
if (!(o instanceof CTTbl)) {
|
||||
return null;
|
||||
|
@ -285,13 +279,9 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
* @return true if the cursor is within a CTFtnEdn element.
|
||||
*/
|
||||
private boolean isCursorInFtn(XmlCursor cursor) {
|
||||
XmlCursor verify = cursor.newCursor();
|
||||
try {
|
||||
try (XmlCursor verify = cursor.newCursor()) {
|
||||
verify.toParent();
|
||||
return (verify.getObject() == this.ctFtnEdn);
|
||||
} finally {
|
||||
verify.dispose();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -329,19 +319,17 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
tables.add(pos, newT);
|
||||
}
|
||||
int i = 0;
|
||||
cursor = t.newCursor();
|
||||
while (cursor.toPrevSibling()) {
|
||||
o = cursor.getObject();
|
||||
try (XmlCursor cursor1 = t.newCursor()) {
|
||||
while (cursor1.toPrevSibling()) {
|
||||
o = cursor1.getObject();
|
||||
if (o instanceof CTP || o instanceof CTTbl)
|
||||
i++;
|
||||
}
|
||||
bodyElements.add(i, newT);
|
||||
XmlCursor c2 = t.newCursor();
|
||||
try {
|
||||
}
|
||||
try (XmlCursor c2 = t.newCursor()) {
|
||||
cursor.toCursor(c2);
|
||||
cursor.toEndToken();
|
||||
} finally {
|
||||
c2.dispose();
|
||||
}
|
||||
return newT;
|
||||
}
|
||||
|
@ -373,11 +361,8 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
paragraphs.add(pos, newP);
|
||||
}
|
||||
int i = 0;
|
||||
XmlCursor p2 = p.newCursor();
|
||||
try {
|
||||
try (XmlCursor p2 = p.newCursor()) {
|
||||
cursor.toCursor(p2);
|
||||
} finally {
|
||||
p2.dispose();
|
||||
}
|
||||
while (cursor.toPrevSibling()) {
|
||||
o = cursor.getObject();
|
||||
|
@ -385,10 +370,10 @@ public abstract class XWPFAbstractFootnoteEndnote implements Iterable<XWPFParag
|
|||
i++;
|
||||
}
|
||||
bodyElements.add(i, newP);
|
||||
p2 = p.newCursor();
|
||||
try (XmlCursor p2 = p.newCursor()) {
|
||||
cursor.toCursor(p2);
|
||||
cursor.toEndToken();
|
||||
p2.dispose();
|
||||
}
|
||||
return newP;
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -201,18 +201,17 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
|
||||
// parse the document with cursor and add
|
||||
// the XmlObject to its lists
|
||||
XmlCursor docCursor = ctDocument.newCursor();
|
||||
try (XmlCursor docCursor = ctDocument.newCursor()) {
|
||||
docCursor.selectPath("./*");
|
||||
while (docCursor.toNextSelection()) {
|
||||
XmlObject o = docCursor.getObject();
|
||||
if (o instanceof CTBody) {
|
||||
XmlCursor bodyCursor = o.newCursor();
|
||||
try (XmlCursor bodyCursor = o.newCursor()) {
|
||||
bodyCursor.selectPath("./*");
|
||||
while (bodyCursor.toNextSelection()) {
|
||||
XmlObject bodyObj = bodyCursor.getObject();
|
||||
if (bodyObj instanceof CTP) {
|
||||
XWPFParagraph p = new XWPFParagraph((CTP) bodyObj,
|
||||
this);
|
||||
XWPFParagraph p = new XWPFParagraph((CTP) bodyObj, this);
|
||||
bodyElements.add(p);
|
||||
paragraphs.add(p);
|
||||
} else if (bodyObj instanceof CTTbl) {
|
||||
|
@ -225,10 +224,10 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
contentControls.add(c);
|
||||
}
|
||||
}
|
||||
bodyCursor.dispose();
|
||||
}
|
||||
}
|
||||
docCursor.dispose();
|
||||
}
|
||||
}
|
||||
// Sort out headers and footers
|
||||
if (doc.getDocument().getBody().getSectPr() != null) {
|
||||
headerFooterPolicy = new XWPFHeaderFooterPolicy(this);
|
||||
|
@ -724,8 +723,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
* create a new cursor, that points to the START token of the just
|
||||
* inserted paragraph
|
||||
*/
|
||||
XmlCursor newParaPos = p.newCursor();
|
||||
try {
|
||||
try (XmlCursor newParaPos = p.newCursor()) {
|
||||
/*
|
||||
* Calculate the paragraphs index in the list of all body
|
||||
* elements
|
||||
|
@ -742,8 +740,6 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
cursor.toCursor(newParaPos);
|
||||
cursor.toEndToken();
|
||||
return newP;
|
||||
} finally {
|
||||
newParaPos.dispose();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -769,8 +765,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
tables.add(pos, newT);
|
||||
}
|
||||
int i = 0;
|
||||
XmlCursor tableCursor = t.newCursor();
|
||||
try {
|
||||
try (XmlCursor tableCursor = t.newCursor()) {
|
||||
cursor.toCursor(tableCursor);
|
||||
while (cursor.toPrevSibling()) {
|
||||
o = cursor.getObject();
|
||||
|
@ -782,8 +777,6 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
cursor.toCursor(tableCursor);
|
||||
cursor.toEndToken();
|
||||
return newT;
|
||||
} finally {
|
||||
tableCursor.dispose();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -793,11 +786,10 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
* verifies that cursor is on the right position
|
||||
*/
|
||||
private boolean isCursorInBody(XmlCursor cursor) {
|
||||
XmlCursor verify = cursor.newCursor();
|
||||
try (XmlCursor verify = cursor.newCursor()) {
|
||||
verify.toParent();
|
||||
boolean result = (verify.getObject() == this.ctDocument.getBody());
|
||||
verify.dispose();
|
||||
return result;
|
||||
return (verify.getObject() == this.ctDocument.getBody());
|
||||
}
|
||||
}
|
||||
|
||||
private int getPosOfBodyElement(IBodyElement needle) {
|
||||
|
@ -1661,8 +1653,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
public XWPFTableCell getTableCell(CTTc cell) {
|
||||
XmlObject o;
|
||||
CTRow row;
|
||||
final XmlCursor cursor = cell.newCursor();
|
||||
try {
|
||||
try (final XmlCursor cursor = cell.newCursor()) {
|
||||
cursor.toParent();
|
||||
o = cursor.getObject();
|
||||
if (!(o instanceof CTRow)) {
|
||||
|
@ -1671,8 +1662,6 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
row = (CTRow) o;
|
||||
cursor.toParent();
|
||||
o = cursor.getObject();
|
||||
} finally {
|
||||
cursor.dispose();
|
||||
}
|
||||
if (!(o instanceof CTTbl)) {
|
||||
return null;
|
||||
|
|
|
@ -55,8 +55,7 @@ public class XWPFHeader extends XWPFHeaderFooter {
|
|||
|
||||
public XWPFHeader(XWPFDocument doc, CTHdrFtr hdrFtr) {
|
||||
super(doc, hdrFtr);
|
||||
XmlCursor cursor = headerFooter.newCursor();
|
||||
try {
|
||||
try (XmlCursor cursor = headerFooter.newCursor()) {
|
||||
cursor.selectPath("./*");
|
||||
while (cursor.toNextSelection()) {
|
||||
XmlObject o = cursor.getObject();
|
||||
|
@ -69,8 +68,6 @@ public class XWPFHeader extends XWPFHeaderFooter {
|
|||
tables.add(t);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
cursor.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,7 +96,7 @@ public class XWPFHeader extends XWPFHeaderFooter {
|
|||
headerFooter = hdrDocument.getHdr();
|
||||
// parse the document with cursor and add
|
||||
// the XmlObject to its lists
|
||||
XmlCursor cursor = headerFooter.newCursor();
|
||||
try (XmlCursor cursor = headerFooter.newCursor()) {
|
||||
cursor.selectPath("./*");
|
||||
while (cursor.toNextSelection()) {
|
||||
XmlObject o = cursor.getObject();
|
||||
|
@ -118,7 +115,7 @@ public class XWPFHeader extends XWPFHeaderFooter {
|
|||
bodyElements.add(c);
|
||||
}
|
||||
}
|
||||
cursor.dispose();
|
||||
}
|
||||
} catch (XmlException e) {
|
||||
throw new POIXMLException(e);
|
||||
}
|
||||
|
|
|
@ -330,11 +330,8 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
public void removeParagraph(XWPFParagraph paragraph) {
|
||||
if (paragraphs.contains(paragraph)) {
|
||||
CTP ctP = paragraph.getCTP();
|
||||
XmlCursor c = ctP.newCursor();
|
||||
try {
|
||||
try (XmlCursor c = ctP.newCursor()) {
|
||||
c.removeXml();
|
||||
} finally {
|
||||
c.dispose();
|
||||
}
|
||||
paragraphs.remove(paragraph);
|
||||
bodyElements.remove(paragraph);
|
||||
|
@ -349,11 +346,8 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
public void removeTable(XWPFTable table) {
|
||||
if (tables.contains(table)) {
|
||||
CTTbl ctTbl = table.getCTTbl();
|
||||
XmlCursor c = ctTbl.newCursor();
|
||||
try {
|
||||
try (XmlCursor c = ctTbl.newCursor()) {
|
||||
c.removeXml();
|
||||
} finally {
|
||||
c.dispose();
|
||||
}
|
||||
tables.remove(table);
|
||||
bodyElements.remove(table);
|
||||
|
@ -364,11 +358,8 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
* Clears all paragraphs and tables from this header / footer
|
||||
*/
|
||||
public void clearHeaderFooter() {
|
||||
XmlCursor c = headerFooter.newCursor();
|
||||
try {
|
||||
try (XmlCursor c = headerFooter.newCursor()) {
|
||||
c.removeXmlContents();
|
||||
} finally {
|
||||
c.dispose();
|
||||
}
|
||||
paragraphs.clear();
|
||||
tables.clear();
|
||||
|
@ -400,11 +391,8 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
paragraphs.add(pos, newP);
|
||||
}
|
||||
int i = 0;
|
||||
final XmlCursor p2 = p.newCursor();
|
||||
try {
|
||||
try (final XmlCursor p2 = p.newCursor()) {
|
||||
cursor.toCursor(p2);
|
||||
} finally {
|
||||
p2.dispose();
|
||||
}
|
||||
while (cursor.toPrevSibling()) {
|
||||
o = cursor.getObject();
|
||||
|
@ -412,12 +400,9 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
i++;
|
||||
}
|
||||
bodyElements.add(i, newP);
|
||||
final XmlCursor p3 = p.newCursor();
|
||||
try {
|
||||
try(final XmlCursor p3 = p.newCursor()) {
|
||||
cursor.toCursor(p3);
|
||||
cursor.toEndToken();
|
||||
} finally {
|
||||
p3.dispose();
|
||||
}
|
||||
return newP;
|
||||
}
|
||||
|
@ -449,24 +434,18 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
tables.add(pos, newT);
|
||||
}
|
||||
int i = 0;
|
||||
final XmlCursor cursor2 = t.newCursor();
|
||||
try {
|
||||
try (final XmlCursor cursor2 = t.newCursor()) {
|
||||
while (cursor2.toPrevSibling()) {
|
||||
o = cursor2.getObject();
|
||||
if (o instanceof CTP || o instanceof CTTbl) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
cursor2.dispose();
|
||||
}
|
||||
bodyElements.add(i, newT);
|
||||
final XmlCursor cursor3 = t.newCursor();
|
||||
try {
|
||||
try(final XmlCursor cursor3 = t.newCursor()) {
|
||||
cursor.toCursor(cursor3);
|
||||
cursor.toEndToken();
|
||||
} finally {
|
||||
cursor3.dispose();
|
||||
}
|
||||
return newT;
|
||||
}
|
||||
|
@ -477,13 +456,10 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
* verifies that cursor is on the right position
|
||||
*/
|
||||
private boolean isCursorInHdrF(XmlCursor cursor) {
|
||||
XmlCursor verify = cursor.newCursor();
|
||||
try {
|
||||
try (XmlCursor verify = cursor.newCursor()) {
|
||||
verify.toParent();
|
||||
boolean result = (verify.getObject() == this.headerFooter);
|
||||
return result;
|
||||
} finally {
|
||||
verify.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -526,8 +502,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
tables = new ArrayList<>();
|
||||
// parse the document with cursor and add
|
||||
// the XmlObject to its lists
|
||||
XmlCursor cursor = headerFooter.newCursor();
|
||||
try {
|
||||
try (XmlCursor cursor = headerFooter.newCursor()) {
|
||||
cursor.selectPath("./*");
|
||||
while (cursor.toNextSelection()) {
|
||||
XmlObject o = cursor.getObject();
|
||||
|
@ -542,8 +517,6 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
|||
bodyElements.add(t);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
cursor.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue