Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCopy.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCopy.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCopy.java (original) +++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCopy.java Thu Jan 6 17:54:30 2022 @@ -15,7 +15,6 @@ package org.apache.xmlbeans.impl.tool; -import org.apache.xmlbeans.XmlCursor; import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlOptions; import org.apache.xmlbeans.impl.common.IOUtil; @@ -164,8 +163,6 @@ public class SchemaCopy { try { URL sourceURL = source.toURL(); XmlObject xobj = XmlObject.Factory.parse(sourceURL, loadOptions); - XmlCursor xcur = xobj.newCursor(); - xcur.toFirstChild(); Map<URI,URI> result = new LinkedHashMap<>();
Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaResourceManager.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaResourceManager.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaResourceManager.java (original) +++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaResourceManager.java Thu Jan 6 17:54:30 2022 @@ -98,7 +98,7 @@ public class SchemaResourceManager exten System.exit(0); return; } - + args = cl.args(); boolean sync = (cl.getOpt("sync") != null); Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/NamespaceContext.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/NamespaceContext.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/NamespaceContext.java (original) +++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/NamespaceContext.java Thu Jan 6 17:54:30 2022 @@ -109,7 +109,7 @@ public class NamespaceContext implements { getNamespaceContextStack().push(next); } - + public static void pop() { NamespaceContextStack nsContextStack = getNamespaceContextStack(); @@ -128,7 +128,7 @@ public class NamespaceContext implements { if (prefix != null && prefix.equals("xml")) return "http://www.w3.org/XML/1998/namespace"; - + switch (_code) { case XML_OBJECT: @@ -141,28 +141,28 @@ public class NamespaceContext implements if (obj instanceof TypeStoreUser) return ((TypeStoreUser)obj).get_store().getNamespaceForPrefix(prefix); - XmlCursor cur = ((XmlObject)_obj).newCursor(); - if (cur != null) - { - if (cur.currentTokenType() == XmlCursor.TokenType.ATTR) - cur.toParent(); - try { return cur.namespaceForPrefix(prefix); } - finally { cur.dispose(); } + try (XmlCursor cur = ((XmlObject)_obj).newCursor()) { + if (cur != null) + { + if (cur.currentTokenType() == XmlCursor.TokenType.ATTR) + cur.toParent(); + return cur.namespaceForPrefix(prefix); + } } } - + case MAP: return (String)((Map)_obj).get(prefix); - + case TYPE_STORE: return ((TypeStore)_obj).getNamespaceForPrefix(prefix); - + case START_ELEMENT: return ((StartElement)_obj).getNamespaceUri(prefix); - + case RESOLVER: return ((PrefixResolver)_obj).getNamespaceForPrefix(prefix); - + default: assert false : "Improperly initialized NamespaceContext."; return null; Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlComplexContentImpl.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlComplexContentImpl.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlComplexContentImpl.java (original) +++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlComplexContentImpl.java Thu Jan 6 17:54:30 2022 @@ -335,12 +335,11 @@ public class XmlComplexContentImpl exten if (sources[i].isImmutable()) { continue; } - XmlCursor c = sources[i].newCursor(); - if (c.toParent() && c.getObject() == this) { - c.dispose(); - break; + try (XmlCursor c = sources[i].newCursor()) { + if (c.toParent() && c.getObject() == this) { + break; + } } - c.dispose(); } if (i < sources.length) { TypeStoreUser current = (set == null) ? store.find_element_user(elemName, 0) : store.find_element_user(set, 0); @@ -357,9 +356,10 @@ public class XmlComplexContentImpl exten ((XmlObjectBase) user).set(sources[j]); } for (i++, j++; i < sources.length; i++, j++) { + // Cursor is implicitly closed XmlCursor c = sources[i].isImmutable() ? null : sources[i].newCursor(); if (c != null && c.toParent() && c.getObject() == this) { - c.dispose(); + c.close(); current = (set == null) ? store.find_element_user(elemName, j) : store.find_element_user(set, j); if (current != sources[i]) { // Fall back to the general case @@ -367,7 +367,7 @@ public class XmlComplexContentImpl exten } } else { if (c != null) { - c.dispose(); + c.close(); } // Insert before the current element TypeStoreUser user = (set == null) ? store.insert_element_user(elemName, j) : store.insert_element_user(set, elemName, j); Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlObjectBase.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlObjectBase.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlObjectBase.java (original) +++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/values/XmlObjectBase.java Thu Jan 6 17:54:30 2022 @@ -122,11 +122,8 @@ public abstract class XmlObjectBase impl } public XmlDocumentProperties documentProperties() { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { return cur.documentProperties(); - } finally { - cur.dispose(); } } @@ -135,11 +132,8 @@ public abstract class XmlObjectBase impl } public XMLStreamReader newXMLStreamReader(XmlOptions options) { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { return cur.newXMLStreamReader(makeInnerOptions(options)); - } finally { - cur.dispose(); } } @@ -148,11 +142,8 @@ public abstract class XmlObjectBase impl } public InputStream newInputStream(XmlOptions options) { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { return cur.newInputStream(makeInnerOptions(options)); - } finally { - cur.dispose(); } } @@ -161,20 +152,14 @@ public abstract class XmlObjectBase impl } public Reader newReader(XmlOptions options) { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { return cur.newReader(makeInnerOptions(options)); - } finally { - cur.dispose(); } } public Node getDomNode() { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { return cur.getDomNode(); - } finally { - cur.dispose(); } } @@ -183,47 +168,32 @@ public abstract class XmlObjectBase impl } public Node newDomNode(XmlOptions options) { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { return cur.newDomNode(makeInnerOptions(options)); - } finally { - cur.dispose(); } } public void save(ContentHandler ch, LexicalHandler lh, XmlOptions options) throws SAXException { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { cur.save(ch, lh, makeInnerOptions(options)); - } finally { - cur.dispose(); } } public void save(File file, XmlOptions options) throws IOException { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { cur.save(file, makeInnerOptions(options)); - } finally { - cur.dispose(); } } public void save(OutputStream os, XmlOptions options) throws IOException { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { cur.save(os, makeInnerOptions(options)); - } finally { - cur.dispose(); } } public void save(Writer w, XmlOptions options) throws IOException { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { cur.save(w, makeInnerOptions(options)); - } finally { - cur.dispose(); } } @@ -244,11 +214,8 @@ public abstract class XmlObjectBase impl } public void dump() { - XmlCursor cur = newCursorForce(); - try { + try (XmlCursor cur = newCursorForce()) { cur.dump(); - } finally { - cur.dispose(); } } @@ -274,9 +241,10 @@ public abstract class XmlObjectBase impl XmlObject x = XmlObject.Factory.newInstance(options); - XmlCursor c = x.newCursor(); - c.toNextToken(); - c.insertChars(value); + try (XmlCursor c = x.newCursor()) { + c.toNextToken(); + c.insertChars(value); + } return x; } @@ -485,13 +453,12 @@ public abstract class XmlObjectBase impl // all user-level code; doesn't need to be synchronized - XmlCursor c = newCursor(); - if (c == null) { - throw new XmlValueDisconnectedException(); - } + try (XmlCursor c = newCursor()) { + if (c == null) { + throw new XmlValueDisconnectedException(); + } - try { c.selectPath(path, options); if (!c.hasNextSelection()) { @@ -510,8 +477,6 @@ public abstract class XmlObjectBase impl } } } - } finally { - c.dispose(); } return _typedArray(selections); @@ -1478,12 +1443,8 @@ public abstract class XmlObjectBase impl } public String xmlText(XmlOptions options) { - XmlCursor cur = newCursorForce(); - - try { + try (XmlCursor cur = newCursorForce()) { return cur.xmlText(makeInnerOptions(options)); - } finally { - cur.dispose(); } } @@ -2636,8 +2597,7 @@ public abstract class XmlObjectBase impl * Selects the contents of the children elements with the given name. */ public XmlObject[] selectChildren(QName elementName) { - XmlCursor xc = this.newCursor(); - try { + try (XmlCursor xc = this.newCursor()) { if (!xc.isContainer()) { return EMPTY_RESULT; } @@ -2656,8 +2616,6 @@ public abstract class XmlObjectBase impl } else { return result.toArray(EMPTY_RESULT); } - } finally { - xc.dispose(); } } @@ -2676,8 +2634,7 @@ public abstract class XmlObjectBase impl throw new IllegalArgumentException(); } - XmlCursor xc = this.newCursor(); - try { + try (XmlCursor xc = this.newCursor()) { if (!xc.isContainer()) { return EMPTY_RESULT; } @@ -2699,8 +2656,6 @@ public abstract class XmlObjectBase impl } else { return result.toArray(EMPTY_RESULT); } - } finally { - xc.dispose(); } } @@ -2708,9 +2663,7 @@ public abstract class XmlObjectBase impl * Selects the content of the attribute with the given name. */ public XmlObject selectAttribute(QName attributeName) { - XmlCursor xc = this.newCursor(); - - try { + try (XmlCursor xc = this.newCursor()) { if (!xc.isContainer()) { return null; } @@ -2725,8 +2678,6 @@ public abstract class XmlObjectBase impl while (xc.toNextAttribute()); } return null; - } finally { - xc.dispose(); } } @@ -2745,8 +2696,7 @@ public abstract class XmlObjectBase impl throw new IllegalArgumentException(); } - XmlCursor xc = this.newCursor(); - try { + try (XmlCursor xc = this.newCursor()) { if (!xc.isContainer()) { return EMPTY_RESULT; } @@ -2768,8 +2718,6 @@ public abstract class XmlObjectBase impl } else { return result.toArray(EMPTY_RESULT); } - } finally { - xc.dispose(); } } @@ -2806,28 +2754,26 @@ public abstract class XmlObjectBase impl * True if the object is at the root of the document. */ private boolean isRootXmlObject() { - XmlCursor cur = newCursor(); - if (cur == null) { - return false; - } + try (XmlCursor cur = newCursor()) { + if (cur == null) { + return false; + } - boolean result = !cur.toParent(); - cur.dispose(); - return result; + return !cur.toParent(); + } } /** * Gets the root XmlObject for this document. */ private XmlObject getRootXmlObject() { - XmlCursor cur = newCursor(); - if (cur == null) { - return this; + try (XmlCursor cur = newCursor()) { + if (cur == null) { + return this; + } + cur.toStartDoc(); + return cur.getObject(); } - cur.toStartDoc(); - XmlObject result = cur.getObject(); - cur.dispose(); - return result; } /** @@ -3018,30 +2964,30 @@ public abstract class XmlObjectBase impl } private int distanceToRoot() { - XmlCursor cur = _impl.newCursor(); int count = 0; - while (!cur.toPrevToken().isNone()) { - if (!cur.currentTokenType().isNamespace()) { - count += 1; - // System.out.println("Count: " + count + " " + cur.currentTokenType().toString() + " " + QName.pretty(cur.getName())); + try (XmlCursor cur = _impl.newCursor()) { + while (!cur.toPrevToken().isNone()) { + if (!cur.currentTokenType().isNamespace()) { + count += 1; + // System.out.println("Count: " + count + " " + cur.currentTokenType().toString() + " " + QName.pretty(cur.getName())); + } } } - cur.dispose(); return count; } private XmlObject objectAtDistance(int count) { - XmlCursor cur = _root.newCursor(); - while (count > 0) { - cur.toNextToken(); - if (!cur.currentTokenType().isNamespace()) { - count -= 1; - // System.out.println("Count: " + count + " " + cur.currentTokenType().toString() + " " + QName.pretty(cur.getName())); + try (XmlCursor cur = _root.newCursor()) { + while (count > 0) { + cur.toNextToken(); + if (!cur.currentTokenType().isNamespace()) { + count -= 1; + // System.out.println("Count: " + count + " " + cur.currentTokenType().toString() + " " + QName.pretty(cur.getName())); + } } + XmlObject result = cur.getObject(); + return result; } - XmlObject result = cur.getObject(); - cur.dispose(); - return result; } } Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpathgen/XPathGenerator.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpathgen/XPathGenerator.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpathgen/XPathGenerator.java (original) +++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpathgen/XPathGenerator.java Thu Jan 6 17:54:30 2022 @@ -17,6 +17,7 @@ package org.apache.xmlbeans.impl.xpathge import org.apache.xmlbeans.XmlCursor; import org.apache.xmlbeans.XmlCursor.TokenType; +import org.apache.xmlbeans.XmlObject; import javax.xml.namespace.NamespaceContext; import javax.xml.namespace.QName; @@ -92,22 +93,22 @@ public class XPathGenerator return "."; assert node.isStart(); QName name = node.getName(); - XmlCursor d = node.newCursor(); - if (!node.toParent()) - return "/" + name; int elemIndex = 0, i = 1; - node.push(); - if (!node.toChild(name)) - throw new IllegalStateException("Must have at least one child with name: " + name); - do - { - if (node.isAtSamePositionAs(d)) - elemIndex = i; - else - i++; - } while (node.toNextSibling(name)); - node.pop(); - d.dispose(); + try (XmlCursor d = node.newCursor()) { + if (!node.toParent()) + return "/" + name; + node.push(); + if (!node.toChild(name)) + throw new IllegalStateException("Must have at least one child with name: " + name); + do + { + if (node.isAtSamePositionAs(d)) + elemIndex = i; + else + i++; + } while (node.toNextSibling(name)); + node.pop(); + } String pathToParent = generateInternal(node, context, nsctx); return i == 1 ? pathToParent + '/' + qnameToString(name, nsctx) : pathToParent + '/' + qnameToString(name, nsctx) + '[' + elemIndex + ']'; @@ -146,23 +147,24 @@ public class XPathGenerator { int k = 0; int l = 0; - XmlCursor d = c.newCursor(); - c.push(); - c.toParent(); - TokenType tt = c.toFirstContentToken(); - while (!tt.isEnd()) - { - if (tt.isText()) + try (XmlCursor d = c.newCursor()) { + c.push(); + c.toParent(); + TokenType tt = c.toFirstContentToken(); + while (!tt.isEnd()) { - if (c.comparePosition(d) > 0) - // We have moved after the initial position - l++; - else - k++; + if (tt.isText()) + { + if (c.comparePosition(d) > 0) + // We have moved after the initial position + l++; + else + k++; + } + else if (tt.isStart()) + c.toEndToken(); + tt = c.toNextToken(); } - else if (tt.isStart()) - c.toEndToken(); - tt = c.toNextToken(); } c.pop(); return l == 0 ? 0 : k; @@ -191,33 +193,36 @@ public class XPathGenerator return null; } }; - XmlCursor c = org.apache.xmlbeans.XmlObject.Factory.parse(xml).newCursor(); - c.toFirstContentToken(); // on <root> - c.toFirstContentToken(); // on <a> - c.toFirstChild(); // on <b> - c.toFirstChild(); // on <c> - c.push(); System.out.println(generateXPath(c, null, ns)); c.pop(); - c.toNextSibling(); - c.toNextSibling(); // on the last <c> - c.push(); System.out.println(generateXPath(c, null, ns)); c.pop(); - XmlCursor d = c.newCursor(); - d.toParent(); - c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); - d.toParent(); - c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); - c.toFirstContentToken(); // on text content of the last <c> - c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); - c.toParent(); - c.toPrevToken(); // on text content before the last <c> - c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); - c.toParent(); // on <b> - c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); - c.toFirstAttribute(); // on the "foo" attribute - c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); - c.toParent(); - c.toParent(); - c.toNextToken(); // on the "xmlns:ns" attribute - c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); - c.push(); System.out.println(generateXPath(c, null, ns)); c.pop(); + + try (XmlCursor c = XmlObject.Factory.parse(xml).newCursor()) { + c.toFirstContentToken(); // on <root> + c.toFirstContentToken(); // on <a> + c.toFirstChild(); // on <b> + c.toFirstChild(); // on <c> + c.push(); System.out.println(generateXPath(c, null, ns)); c.pop(); + c.toNextSibling(); + c.toNextSibling(); // on the last <c> + c.push(); System.out.println(generateXPath(c, null, ns)); c.pop(); + try (XmlCursor d = c.newCursor()) { + d.toParent(); + c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); + d.toParent(); + c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); + c.toFirstContentToken(); // on text content of the last <c> + c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); + c.toParent(); + c.toPrevToken(); // on text content before the last <c> + c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); + c.toParent(); // on <b> + c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); + c.toFirstAttribute(); // on the "foo" attribute + c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); + c.toParent(); + c.toParent(); + c.toNextToken(); // on the "xmlns:ns" attribute + c.push(); System.out.println(generateXPath(c, d, ns)); c.pop(); + } + c.push(); System.out.println(generateXPath(c, null, ns)); c.pop(); + } } } Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xsd2inst/SampleXmlUtil.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xsd2inst/SampleXmlUtil.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xsd2inst/SampleXmlUtil.java (original) +++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xsd2inst/SampleXmlUtil.java Thu Jan 6 17:54:30 2022 @@ -50,12 +50,13 @@ public class SampleXmlUtil { */ public static String createSampleForType(SchemaType sType) { XmlObject object = XmlObject.Factory.newInstance(); - XmlCursor cursor = object.newCursor(); - // Skip the document node - cursor.toNextToken(); - // Using the type and the cursor, call the utility method to get a - // sample XML payload for that Schema element - new SampleXmlUtil(false).createSampleForType(sType, cursor); + try (XmlCursor cursor = object.newCursor()) { + // Skip the document node + cursor.toNextToken(); + // Using the type and the cursor, call the utility method to get a + // sample XML payload for that Schema element + new SampleXmlUtil(false).createSampleForType(sType, cursor); + } // Cursor now contains the sample payload // Pretty print the result. Note that the cursor is positioned at the // end of the doc so we use the original xml object that the cursor was @@ -75,12 +76,13 @@ public class SampleXmlUtil { public static String createSampleForType(SchemaField element) { SchemaType sType = element.getType(); XmlObject object = XmlObject.Factory.newInstance(); - XmlCursor cursor = object.newCursor(); - // Skip the document node - cursor.toNextToken(); - // Using the type and the cursor, call the utility method to get a - // sample XML payload for that Schema element - new SampleXmlUtil(false).createSampleForType(sType, cursor); + try (XmlCursor cursor = object.newCursor()) { + // Skip the document node + cursor.toNextToken(); + // Using the type and the cursor, call the utility method to get a + // sample XML payload for that Schema element + new SampleXmlUtil(false).createSampleForType(sType, cursor); + } // Cursor now contains the sample payload // Pretty print the result. Note that the cursor is positioned at the // end of the doc so we use the original xml object that the cursor was @@ -990,10 +992,11 @@ public class SampleXmlUtil { } private static String formatQName(XmlCursor xmlc, QName qName) { - XmlCursor parent = xmlc.newCursor(); - parent.toParent(); - String prefix = parent.prefixForNamespace(qName.getNamespaceURI()); - parent.dispose(); + String prefix; + try (XmlCursor parent = xmlc.newCursor()) { + parent.toParent(); + prefix = parent.prefixForNamespace(qName.getNamespaceURI()); + } String name; if (prefix == null || prefix.length() == 0) { name = qName.getLocalPart(); Modified: xmlbeans/trunk/src/test/java/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java (original) +++ xmlbeans/trunk/src/test/java/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java Thu Jan 6 17:54:30 2022 @@ -104,10 +104,11 @@ public class ValidatingXMLStreamReaderTe public void testValidateGlobalAtt1() throws XMLStreamException { XmlObject xo = XmlObject.Factory.newInstance(); - XmlCursor xc = xo.newCursor(); - xc.toNextToken(); + try (XmlCursor xc = xo.newCursor()) { + xc.toNextToken(); - xc.insertAttributeWithValue("price", URI_NUMERALS, "23.5"); + xc.insertAttributeWithValue("price", URI_NUMERALS, "23.5"); + } XMLStreamReader xsr = xo.newXMLStreamReader(new XmlOptions().setSaveOuter()); Collection errors = new ArrayList(); Modified: xmlbeans/trunk/src/test/java/compile/scomp/checkin/CompilationTests.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/compile/scomp/checkin/CompilationTests.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/compile/scomp/checkin/CompilationTests.java (original) +++ xmlbeans/trunk/src/test/java/compile/scomp/checkin/CompilationTests.java Thu Jan 6 17:54:30 2022 @@ -266,8 +266,10 @@ public class CompilationTests { } assertTrue("Could not find the \"person\" complex type", found); // Set the bookmark - SchemaBookmark sb = new SchemaBookmark("MyBookmark"); - cTypes[i].newCursor().setBookmark(sb); + try (XmlCursor c = cTypes[i].newCursor()) { + SchemaBookmark sb = new SchemaBookmark("MyBookmark"); + c.setBookmark(sb); + } // Compile it into STS SchemaTypeSystem sts = XmlBeans.compileXsd(new XmlObject[]{parsed}, XmlBeans.getBuiltinTypeSystem(), null); Modified: xmlbeans/trunk/src/test/java/dom/checkin/DirtyCacheTests.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/dom/checkin/DirtyCacheTests.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/dom/checkin/DirtyCacheTests.java (original) +++ xmlbeans/trunk/src/test/java/dom/checkin/DirtyCacheTests.java Thu Jan 6 17:54:30 2022 @@ -55,9 +55,10 @@ public class DirtyCacheTests { testElt.setChild3(new BigInteger("1")); testElt.setChild1(new BigInteger("0")); - XmlCursor cur = testElt.newCursor(); - cur.toFirstContentToken(); - cur.insertChars("Random mixed content"); + try (XmlCursor cur = testElt.newCursor()) { + cur.toFirstContentToken(); + cur.insertChars("Random mixed content"); + } Node n = o.getDomNode(); n = n.getFirstChild(); n = n.getFirstChild(); Modified: xmlbeans/trunk/src/test/java/dom/checkin/DomTests.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/dom/checkin/DomTests.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/dom/checkin/DomTests.java (original) +++ xmlbeans/trunk/src/test/java/dom/checkin/DomTests.java Thu Jan 6 17:54:30 2022 @@ -74,7 +74,7 @@ public class DomTests { // // System.out.println( x.xmlText() ); // } - + @Test public void testDom() throws Exception { @@ -102,14 +102,14 @@ public class DomTests { XmlObject x = XmlObject.Factory.parse(xx); - XmlCursor c = x.newCursor(); - - for (; ;) { - Node n = c.newDomNode(); - XmlObject.Factory.parse(n); - - if (c.toNextToken().isNone()) - break; + try (XmlCursor c = x.newCursor()) { + for (; ;) { + Node n = c.newDomNode(); + XmlObject.Factory.parse(n); + + if (c.toNextToken().isNone()) + break; + } } } } Modified: xmlbeans/trunk/src/test/java/misc/checkin/RuntimeSchemaLoaderTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/misc/checkin/RuntimeSchemaLoaderTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/misc/checkin/RuntimeSchemaLoaderTest.java (original) +++ xmlbeans/trunk/src/test/java/misc/checkin/RuntimeSchemaLoaderTest.java Thu Jan 6 17:54:30 2022 @@ -68,23 +68,24 @@ public class RuntimeSchemaLoaderTest { new QName("http://openuri.org/test/dyntest", "wrappedwildcard")), result.schemaType()); - XmlCursor cur = result.newCursor(); - Assert.assertTrue("Should have a root element", cur.toFirstChild()); - result = cur.getObject(); - assertEquals( - "E=wrappedwildcard|D=wrappedwildcard@http://openuri.org/test/dyntest", - result.schemaType().toString()); - assertEquals( - loader.findElement( - new QName("http://openuri.org/test/dyntest", - "wrappedwildcard")) - .getType(), - result.schemaType()); - Assert.assertTrue("Should have a first child", cur.toFirstChild()); - assertEquals( - new QName("http://www.w3.org/2001/XMLSchema", "schema"), - cur.getName()); - XmlObject obj = cur.getObject(); - assertEquals(Schema.type, obj.schemaType()); + try (XmlCursor cur = result.newCursor()) { + Assert.assertTrue("Should have a root element", cur.toFirstChild()); + result = cur.getObject(); + assertEquals( + "E=wrappedwildcard|D=wrappedwildcard@http://openuri.org/test/dyntest", + result.schemaType().toString()); + assertEquals( + loader.findElement( + new QName("http://openuri.org/test/dyntest", + "wrappedwildcard")) + .getType(), + result.schemaType()); + Assert.assertTrue("Should have a first child", cur.toFirstChild()); + assertEquals( + new QName("http://www.w3.org/2001/XMLSchema", "schema"), + cur.getName()); + XmlObject obj = cur.getObject(); + assertEquals(Schema.type, obj.schemaType()); + } } } Modified: xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java (original) +++ xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java Thu Jan 6 17:54:30 2022 @@ -48,12 +48,12 @@ public class JiraRegression1_50Test exte XmlOptions options = new XmlOptions().setErrorListener(errors); try { myxmlobj = XmlObject.Factory.parse(xmlstringbuf.toString(), options); - XmlCursor cur = myxmlobj.newCursor(); - XmlError xmlerr = XmlError.forObject("This is my custom error message", XmlError.SEVERITY_ERROR, myxmlobj); - - // call an API on the cursor : verification of cursor not being disposed - System.out.println("Cursor Text Value: " + cur.getTextValue()); + try (XmlCursor cur = myxmlobj.newCursor()) { + XmlError xmlerr = XmlError.forObject("This is my custom error message", XmlError.SEVERITY_ERROR, myxmlobj); + // call an API on the cursor : verification of cursor not being disposed + System.out.println("Cursor Text Value: " + cur.getTextValue()); + } } catch (XmlException xme) { if (!xme.getErrors().isEmpty()) { for (Iterator itr = xme.getErrors().iterator(); itr.hasNext();) { @@ -173,11 +173,11 @@ public class JiraRegression1_50Test exte public void test_jira_xmlbeans14() throws Exception { XmlObject xObj = XmlObject.Factory.parse("<Baz/>"); // add element - XmlCursor xCursor = xObj.newCursor(); - xCursor.toFirstContentToken(); - xCursor.insertElementWithText(new QName("Some uri", "SomeName"), "SomeValue"); - xCursor.insertElementWithText(new QName("Some uri", "SomeName1"), "SomeValue1"); - xCursor.dispose(); + try (XmlCursor xCursor = xObj.newCursor()) { + xCursor.toFirstContentToken(); + xCursor.insertElementWithText(new QName("Some uri", "SomeName"), "SomeValue"); + xCursor.insertElementWithText(new QName("Some uri", "SomeName1"), "SomeValue1"); + } // debug xObj.save(System.out); Modified: xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression50_100Test.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression50_100Test.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression50_100Test.java (original) +++ xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression50_100Test.java Thu Jan 6 17:54:30 2022 @@ -513,9 +513,10 @@ public class JiraRegression50_100Test ex //XmlObject[] resSet = xb81.selectPath("$this//MatchedRecord[TableName=\"ABC\"]/TableName"); XmlObject[] resSet = xb81.selectPath(".//MatchedRecord[TableName=\"ABC\"]/TableName"); assertEquals(resSet.length , 1); - XmlCursor cursor = xb81.newCursor(); - //cursor.selectPath("$this//MatchedRecord[TableName=\"ABC\"]/TableName"); - cursor.selectPath(".//MatchedRecord[TableName=\"ABC\"]/TableName"); + try (XmlCursor cursor = xb81.newCursor()) { + //cursor.selectPath("$this//MatchedRecord[TableName=\"ABC\"]/TableName"); + cursor.selectPath(".//MatchedRecord[TableName=\"ABC\"]/TableName"); + } } /** @@ -629,10 +630,11 @@ public class JiraRegression50_100Test ex child.setQualifiedData(new QName(datanamespace, "IAmQualified")); // Add a schema location attribute to the doc element - XmlCursor c = root.newCursor(); - c.toNextToken(); - c.insertAttributeWithValue("schemaLocation", xsinamespace, - structnamespace + " " + schemaloc); + try (XmlCursor c = root.newCursor()) { + c.toNextToken(); + c.insertAttributeWithValue("schemaLocation", xsinamespace, + structnamespace + " " + schemaloc); + } //String expXML = doc.xmlText(options.setSavePrettyPrint()) // save as XML text using the options Modified: xmlbeans/trunk/src/test/java/random/common/Random.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/random/common/Random.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/random/common/Random.java (original) +++ xmlbeans/trunk/src/test/java/random/common/Random.java Thu Jan 6 17:54:30 2022 @@ -118,7 +118,7 @@ public class Random implements Runnable _docs[d] = XmlObject.Factory.newInstance(); } - _cursors = new ArrayList(); + _cursors = new ArrayList<>(); int nIterations = rnd(60000) + 5000; @@ -136,6 +136,9 @@ public class Random implements Runnable } } } + + _cursors.forEach(XmlCursor::close); + _cursors = null; } catch (Throwable e) { System.err.println("Error on seed " + _seed); e.printStackTrace(System.err); @@ -145,7 +148,7 @@ public class Random implements Runnable private java.util.Random _rnd; private XmlObject[] _docs; // shared among threads!! - private ArrayList _cursors; + private ArrayList<XmlCursor> _cursors; private long _seed; private int _iter; private boolean _readonly; @@ -171,7 +174,7 @@ public class Random implements Runnable return c; } - return (XmlCursor) _cursors.get(rnd(n)); + return _cursors.get(rnd(n)); } private void iterate() throws Exception { @@ -323,9 +326,9 @@ public class Random implements Runnable getObject(); break; case 7: - newCursor(); + try (XmlCursor c = newCursor()) { + } break; - case 8: validate(); break; @@ -433,18 +436,16 @@ public class Random implements Runnable getCursor().prevTokenType(); } - private void newCursor() { - findObject().newCursor(); + private XmlCursor newCursor() { + return findObject().newCursor(); } private void setName() { - XmlCursor c = findObject().newCursor(); - - if (!c.isStartdoc()) { - c.setName(getQName()); + try (XmlCursor c = newCursor()) { + if (!c.isStartdoc()) { + c.setName(getQName()); + } } - - c.dispose(); } private void newDomNode() { Modified: xmlbeans/trunk/src/test/java/scomp/attributes/detailed/AttrGroupTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/attributes/detailed/AttrGroupTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/attributes/detailed/AttrGroupTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/attributes/detailed/AttrGroupTest.java Thu Jan 6 17:54:30 2022 @@ -43,11 +43,12 @@ public class AttrGroupTest extends BaseC elt.setVersion(new BigDecimal(new BigInteger("10"))); elt.setGlobalAttr(new BigDecimal(BigInteger.ONE)); //add a wildcard attr: ##other, lax - XmlCursor cur = elt.newCursor(); - //move to document element - cur.toNextToken(); - cur.insertAttribute(new QName("http://org.apache.sample", "attr", - "pre")); + try (XmlCursor cur = elt.newCursor()) { + //move to document element + cur.toNextToken(); + cur.insertAttribute(new QName("http://org.apache.sample", "attr", + "pre")); + } String[] errExpected=new String[]{ XmlErrorCodes .ELEM_COMPLEX_TYPE_LOCALLY_VALID$MISSING_REQUIRED_ATTRIBUTE}; Modified: xmlbeans/trunk/src/test/java/scomp/attributes/detailed/LocalAttrForm.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/attributes/detailed/LocalAttrForm.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/attributes/detailed/LocalAttrForm.java (original) +++ xmlbeans/trunk/src/test/java/scomp/attributes/detailed/LocalAttrForm.java Thu Jan 6 17:54:30 2022 @@ -20,6 +20,7 @@ import xbean.scomp.namespace.attributeFo import javax.xml.namespace.QName; +import org.apache.xmlbeans.XmlCursor; import org.apache.xmlbeans.XmlErrorCodes; import static org.junit.Assert.assertTrue; @@ -47,19 +48,16 @@ public class LocalAttrForm extends BaseC throw t; } - doc.getAttributeUnqualified().getLocalAttribute(). - newCursor() - .setName(new QName( - "http://xbean/scomp/namespace/AttributeFormDefault", - "LocalAttribute")); - assertTrue( !doc.validate(validateOptions) ); + try (XmlCursor c = doc.getAttributeUnqualified().getLocalAttribute().newCursor()) { + c.setName(new QName( + "http://xbean/scomp/namespace/AttributeFormDefault", + "LocalAttribute")); + } + assertTrue( !doc.validate(validateOptions) ); System.out.println(doc.xmlText()); showErrors(); String[] errExpected = new String[] {XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NO_WILDCARD}; assertTrue(compareErrorCodes(errExpected)); - - - } } Modified: xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/AnonymousTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/AnonymousTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/AnonymousTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/AnonymousTest.java Thu Jan 6 17:54:30 2022 @@ -70,9 +70,10 @@ public class AnonymousTest extends BaseC assertEquals(5, testElt.getChild2().intValue()); assertTrue(XmlInteger.Factory.parse("<xml-fragment>5</xml-fragment>") .valueEquals(testElt.xgetChild2())); - XmlCursor cur = testElt.newCursor(); - cur.toFirstContentToken(); - cur.insertChars("Random mixed content"); + try (XmlCursor cur = testElt.newCursor()) { + cur.toFirstContentToken(); + cur.insertChars("Random mixed content"); + } testElt.setChild3(new BigInteger("1")); assertEquals("<xml-fragment>Random mixed content" + "<child2>5</child2>" + Modified: xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/ElementOnlyContentTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/ElementOnlyContentTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/ElementOnlyContentTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/ElementOnlyContentTest.java Thu Jan 6 17:54:30 2022 @@ -79,9 +79,10 @@ public class ElementOnlyContentTest exte testElt.setChild2(new BigInteger("5")); testElt.setChild3(new BigInteger("1")); assertTrue(testElt.validate()); - XmlCursor cur = testElt.newCursor(); - cur.toFirstContentToken(); - cur.insertChars("Random mixed content"); + try (XmlCursor cur = testElt.newCursor()) { + cur.toFirstContentToken(); + cur.insertChars("Random mixed content"); + } System.out.println(testElt.xmlText()); assertTrue(!testElt.validate(validateOptions)); showErrors(); Modified: xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/EmptyContentTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/EmptyContentTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/EmptyContentTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/EmptyContentTest.java Thu Jan 6 17:54:30 2022 @@ -33,9 +33,10 @@ public class EmptyContentTest extends Ba assertTrue(!elt.isSetEmptyAttr()); elt.setEmptyAttr("foobar"); assertTrue(elt.validate()); - XmlCursor cur = elt.newCursor(); - cur.toFirstContentToken(); - cur.beginElement("foobarElt"); + try (XmlCursor cur = elt.newCursor()) { + cur.toFirstContentToken(); + cur.beginElement("foobarElt"); + } assertTrue(!elt.validate(validateOptions)); showErrors(); String[] errExpected = new String[]{ @@ -65,6 +66,6 @@ public class EmptyContentTest extends Ba elt.unsetEmptyAttr(); assertTrue(!elt.isSetEmptyAttr()); - assertTrue(elt.validate()); + assertTrue(elt.validate()); } } Modified: xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/MixedContentTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/MixedContentTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/MixedContentTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/MixedContentTest.java Thu Jan 6 17:54:30 2022 @@ -70,8 +70,9 @@ public class MixedContentTest extends Ba testElt = doc.addNewMixedType(); assertNull(testElt.getChild1()); assertNull(testElt.xgetChild1()); - XmlCursor cur = testElt.newCursor(); - cur.insertChars("Random mixed content"); + try (XmlCursor cur = testElt.newCursor()) { + cur.insertChars("Random mixed content"); + } assertTrue( !testElt.validate(validateOptions) ); showErrors(); String[] errExpected = new String[]{ @@ -98,15 +99,15 @@ public class MixedContentTest extends Ba showErrors(); throw t; } - XmlCursor cur = testElt.newCursor(); - cur.toFirstContentToken(); - cur.insertChars("Random mixed content"); - //move past child1 - cur.toNextToken(); - cur.toNextToken(); - cur.toNextToken(); - cur.insertChars("Random mixed content1"); - try { + try (XmlCursor cur = testElt.newCursor()) { + cur.toFirstContentToken(); + cur.insertChars("Random mixed content"); + //move past child1 + cur.toNextToken(); + cur.toNextToken(); + cur.toNextToken(); + cur.insertChars("Random mixed content1"); + assertTrue(testElt.validate()); } catch (Throwable t) { @@ -125,38 +126,34 @@ public class MixedContentTest extends Ba testElt.setChild2(new BigInteger("5")); testElt.setChild3(new BigInteger("1")); testElt.setChild1(new BigInteger("0")); - XmlCursor cur = testElt.newCursor(); - cur.toFirstContentToken(); - cur.insertChars("Random mixed content"); - //move past child1 - cur.toNextToken(); - cur.toNextToken(); - cur.toNextToken(); - cur.insertChars("Random mixed content1"); - try { + try (XmlCursor cur = testElt.newCursor()) { + cur.toFirstContentToken(); + cur.insertChars("Random mixed content"); + //move past child1 + cur.toNextToken(); + cur.toNextToken(); + cur.toNextToken(); + cur.insertChars("Random mixed content1"); assertTrue(testElt.validate(validateOptions)); - } - catch (Throwable t) { + assertEquals("<xml-fragment>Random mixed content" + + "<child1>0</child1>Random mixed content1<child2>5</child2>" + + "<child3>1</child3></xml-fragment>",testElt.xmlText() ); + //to child1 + cur.toPrevToken(); + cur.toPrevToken(); + cur.toPrevToken(); + cur.toPrevToken(); + assertEquals(XmlCursor.TokenType.START, cur.currentTokenType()); + assertTrue(cur.removeXml()); + assertEquals(null,testElt.getChild1()); + + assertEquals("<xml-fragment>Random mixed content" + + "Random mixed content1<child2>5</child2>" + + "<child3>1</child3></xml-fragment>",testElt.xmlText() ); + } catch (Throwable t) { showErrors(); throw t; } - assertEquals("<xml-fragment>Random mixed content" + - "<child1>0</child1>Random mixed content1<child2>5</child2>" + - "<child3>1</child3></xml-fragment>",testElt.xmlText() ); - //to child1 - cur.toPrevToken(); - cur.toPrevToken(); - cur.toPrevToken(); - cur.toPrevToken(); - assertEquals(XmlCursor.TokenType.START, cur.currentTokenType()); - assertTrue(cur.removeXml()); - assertEquals(null,testElt.getChild1()); - - assertEquals("<xml-fragment>Random mixed content" + - "Random mixed content1<child2>5</child2>" + - "<child3>1</child3></xml-fragment>",testElt.xmlText() ); - - } /** Modified: xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/NamedTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/NamedTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/NamedTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/contentType/complex/detailed/NamedTest.java Thu Jan 6 17:54:30 2022 @@ -71,9 +71,10 @@ public class NamedTest extends BaseCase expected.setBigIntegerValue(new BigInteger("5")); assertTrue(expected.valueEquals(testElt.xgetChild2())); - XmlCursor cur = testElt.newCursor(); - cur.toFirstContentToken(); - cur.insertChars("Random mixed content"); + try (XmlCursor cur = testElt.newCursor()) { + cur.toFirstContentToken(); + cur.insertChars("Random mixed content"); + } testElt.setChild3(new BigInteger("1")); assertEquals("<xml-fragment>Random mixed content" + "<child2>5</child2><child3>1</child3></xml-fragment>", Modified: xmlbeans/trunk/src/test/java/scomp/contentType/complex/modelGroup/detailed/ChoiceTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/contentType/complex/modelGroup/detailed/ChoiceTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/contentType/complex/modelGroup/detailed/ChoiceTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/contentType/complex/modelGroup/detailed/ChoiceTest.java Thu Jan 6 17:54:30 2022 @@ -69,12 +69,12 @@ public class ChoiceTest extends BaseCase MixedChoiceT elt = doc.addNewMixedChoiceElt(); assertTrue(!elt.isSetChild1()); elt.setChild1(new BigInteger("10")); - XmlCursor cur = elt.newCursor(); - assertEquals(XmlCursor.TokenType.START, cur.toFirstContentToken()); - cur.toEndToken(); //past child one - cur.toNextToken(); - cur.insertChars("foobar"); - try { + try (XmlCursor cur = elt.newCursor()) { + assertEquals(XmlCursor.TokenType.START, cur.toFirstContentToken()); + cur.toEndToken(); //past child one + cur.toNextToken(); + cur.insertChars("foobar"); + assertTrue(doc.validate(validateOptions)); } catch (Throwable t) { showErrors(); Modified: xmlbeans/trunk/src/test/java/scomp/derivation/extension/detailed/MixedContentExtension.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/derivation/extension/detailed/MixedContentExtension.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/derivation/extension/detailed/MixedContentExtension.java (original) +++ xmlbeans/trunk/src/test/java/scomp/derivation/extension/detailed/MixedContentExtension.java Thu Jan 6 17:54:30 2022 @@ -35,17 +35,18 @@ public class MixedContentExtension exten ExtendedMixedT elt = doc.addNewExtendedMixedElt(); elt.setExtendedAttr("FOOBAR_val"); elt.setChild1(new BigInteger("10")); - XmlCursor cur = elt.newCursor(); - cur.toFirstContentToken(); - cur.beginElement("Child2"); - cur.toNextToken(); - cur.insertChars("2"); - elt.setChild3(BigInteger.ONE); - cur.toFirstContentToken(); - cur.toEndToken(); - cur.toNextToken(); - cur.toNextToken(); - cur.insertChars(" SOME CDATA HERE"); + try (XmlCursor cur = elt.newCursor()) { + cur.toFirstContentToken(); + cur.beginElement("Child2"); + cur.toNextToken(); + cur.insertChars("2"); + elt.setChild3(BigInteger.ONE); + cur.toFirstContentToken(); + cur.toEndToken(); + cur.toNextToken(); + cur.toNextToken(); + cur.insertChars(" SOME CDATA HERE"); + } String resultStr= "<com:ExtendedMixedElt extendedAttr=\"FOOBAR_val\" " + "xmlns:com=\"http://xbean/scomp/derivation/ComplexExtension\">" + @@ -78,18 +79,18 @@ public class MixedContentExtension exten ExtendedMixedT elt = doc.addNewExtendedMixedElt(); elt.setExtendedAttr("FOOBAR_val"); elt.setChild1(new BigInteger("10")); - XmlCursor cur = elt.newCursor(); - cur.toEndToken(); - cur.beginElement("child2"); - cur.insertChars("2"); - cur.toNextToken(); - - cur.insertComment("My comment"); - elt.setChild3(BigInteger.ONE); - cur.toFirstContentToken(); - cur.toEndToken(); - cur.insertChars("SOME CDATA HERE"); - try { + try (XmlCursor cur = elt.newCursor()) { + cur.toEndToken(); + cur.beginElement("child2"); + cur.insertChars("2"); + cur.toNextToken(); + + cur.insertComment("My comment"); + elt.setChild3(BigInteger.ONE); + cur.toFirstContentToken(); + cur.toEndToken(); + cur.insertChars("SOME CDATA HERE"); + assertTrue( doc.validate(validateOptions) ); } catch (Throwable t) { Modified: xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/EmptyContentRestriction.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/EmptyContentRestriction.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/EmptyContentRestriction.java (original) +++ xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/EmptyContentRestriction.java Thu Jan 6 17:54:30 2022 @@ -47,10 +47,11 @@ public class EmptyContentRestriction ext showErrors(); throw t; } - XmlCursor cur = elt.newCursor(); - cur.toFirstContentToken(); - cur.toNextToken(); - cur.beginElement("foobar"); + try (XmlCursor cur = elt.newCursor()) { + cur.toFirstContentToken(); + cur.toNextToken(); + cur.beginElement("foobar"); + } assertEquals("<xml-fragment>" + "<emt:RestrictedEmptyElt emptyAttr=\"myval\" " + "xmlns:emt=\"http://xbean/scomp/derivation/Emtpy\"/>" + Modified: xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/MixedContentRestriction.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/MixedContentRestriction.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/MixedContentRestriction.java (original) +++ xmlbeans/trunk/src/test/java/scomp/derivation/restriction/detailed/MixedContentRestriction.java Thu Jan 6 17:54:30 2022 @@ -35,14 +35,13 @@ public class MixedContentRestriction ext elt.setChild1(new BigInteger("10")); elt.setChild2(BigInteger.ZERO); //insert text b/n the 2 elements - XmlCursor cur=elt.newCursor(); - cur.toFirstContentToken(); - assertTrue(cur.toNextSibling()); - cur.insertChars("My chars"); - try { + try (XmlCursor cur = elt.newCursor()) { + cur.toFirstContentToken(); + assertTrue(cur.toNextSibling()); + cur.insertChars("My chars"); + assertTrue( doc.validate(validateOptions)); - } - catch (Throwable t) { + } catch (Throwable t) { showErrors(); throw t; } @@ -53,32 +52,30 @@ public class MixedContentRestriction ext @Test public void testRestrictedEltOnly() throws Throwable{ - ElementOnlyEltDocument doc=ElementOnlyEltDocument.Factory.newInstance(); + ElementOnlyEltDocument doc=ElementOnlyEltDocument.Factory.newInstance(); RestrictedEltT elt=doc.addNewElementOnlyElt(); assertTrue( !elt.isSetChild1()); elt.setChild1(new BigInteger("10")); elt.setChild2(BigInteger.ZERO); //insert text b/n the 2 elements - XmlCursor cur=elt.newCursor(); - cur.toFirstContentToken(); - assertTrue(cur.toNextSibling()); - cur.insertChars("My chars"); - assertTrue( !doc.validate(validateOptions)); - showErrors(); - String[] errExpected = new String[]{ - XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$ELEMENT_ONLY_WITH_TEXT}; - assertTrue(compareErrorCodes(errExpected)); + try (XmlCursor cur = elt.newCursor()) { + cur.toFirstContentToken(); + assertTrue(cur.toNextSibling()); + cur.insertChars("My chars"); + assertTrue( !doc.validate(validateOptions)); + showErrors(); + String[] errExpected = new String[]{ + XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$ELEMENT_ONLY_WITH_TEXT}; + assertTrue(compareErrorCodes(errExpected)); - //should be valid w/o the Text there - cur.toPrevToken(); - assertEquals("<xml-fragment>" + - "<child1>10</child1>My chars<child2>0</child2>" + - "</xml-fragment>", elt.xmlText()); - assertTrue(cur.removeXml()); - try { + //should be valid w/o the Text there + cur.toPrevToken(); + assertEquals("<xml-fragment>" + + "<child1>10</child1>My chars<child2>0</child2>" + + "</xml-fragment>", elt.xmlText()); + assertTrue(cur.removeXml()); assertTrue( doc.validate(validateOptions)); - } - catch (Throwable t) { + } catch (Throwable t) { showErrors(); throw t; } Modified: xmlbeans/trunk/src/test/java/scomp/namespace/checkin/PreserveNamespaces.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/namespace/checkin/PreserveNamespaces.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/namespace/checkin/PreserveNamespaces.java (original) +++ xmlbeans/trunk/src/test/java/scomp/namespace/checkin/PreserveNamespaces.java Thu Jan 6 17:54:30 2022 @@ -62,17 +62,17 @@ public class PreserveNamespaces assertTrue(XmlComparator.lenientlyCompareTwoXmlStrings(env1.getEnvelope().getBody().xmlText(), env2.getEnvelope().getBody().xmlText(), diag)); // navigate to the dFahrenhiet element and check for the XSD namespace - XmlCursor env2Cursor = env2.newCursor(); - assertTrue(env2Cursor.toFirstChild()); // <Envelope> - assertTrue(env2Cursor.toFirstChild()); // <Body> - assertTrue(env2Cursor.toFirstChild()); // <ConvertTemperature> - if (env2Cursor.toFirstChild()) // <dFahrenheit> - { - assertEquals("Element name mismatch!", env2Cursor.getName(), new QName("", "dFahrenheit")); - assertEquals("Element val mismatch!", "88", env2Cursor.getTextValue()); - assertEquals("XSD Namespace has been dropped", "http://www.w3.org/2001/XMLSchema", env2Cursor.namespaceForPrefix("xsd")); + try (XmlCursor env2Cursor = env2.newCursor()) { + assertTrue(env2Cursor.toFirstChild()); // <Envelope> + assertTrue(env2Cursor.toFirstChild()); // <Body> + assertTrue(env2Cursor.toFirstChild()); // <ConvertTemperature> + if (env2Cursor.toFirstChild()) // <dFahrenheit> + { + assertEquals("Element name mismatch!", env2Cursor.getName(), new QName("", "dFahrenheit")); + assertEquals("Element val mismatch!", "88", env2Cursor.getTextValue()); + assertEquals("XSD Namespace has been dropped", "http://www.w3.org/2001/XMLSchema", env2Cursor.namespaceForPrefix("xsd")); + } } - } @Test @@ -96,15 +96,15 @@ public class PreserveNamespaces assertTrue("new envelope has missing XSD namespace declaration", XmlComparator.lenientlyCompareTwoXmlStrings(env1.getEnvelope().getBody().xmlText(), env2.getEnvelope().getBody().xmlText(), diag)); // navigate to the 'element' element and check for the XSD namespace - XmlCursor env2Cursor = env2.newCursor(); - assertTrue(env2Cursor.toFirstChild()); // <Envelope> - assertTrue(env2Cursor.toFirstChild()); // <Body> - if (env2Cursor.toFirstChild()) // <element> - { - assertEquals("Element name mismatch!", env2Cursor.getName(), new QName("http://www.w3.org/2001/XMLSchema", "element")); - assertEquals("XSD Namespace has been dropped", "http://www.w3.org/2001/XMLSchema", env2Cursor.namespaceForPrefix("xsd")); + try (XmlCursor env2Cursor = env2.newCursor()) { + assertTrue(env2Cursor.toFirstChild()); // <Envelope> + assertTrue(env2Cursor.toFirstChild()); // <Body> + if (env2Cursor.toFirstChild()) // <element> + { + assertEquals("Element name mismatch!", env2Cursor.getName(), new QName("http://www.w3.org/2001/XMLSchema", "element")); + assertEquals("XSD Namespace has been dropped", "http://www.w3.org/2001/XMLSchema", env2Cursor.namespaceForPrefix("xsd")); + } } - } @Test @@ -128,16 +128,16 @@ public class PreserveNamespaces assertTrue("new envelope has missing XSD namespace declaration", XmlComparator.lenientlyCompareTwoXmlStrings(env1.getEnvelope().getBody().xmlText(), env2.getEnvelope().getBody().xmlText(), diag)); // navigate to the soap element and check for the 'soap' namespace - XmlCursor env2Cursor = env2.newCursor(); - assertTrue(env2Cursor.toFirstChild()); // <Envelope> - assertTrue(env2Cursor.toFirstChild()); // <Body> - assertTrue(env2Cursor.toFirstChild()); // <Fault> - if (env2Cursor.toFirstChild()) // <faultcode> - { - assertEquals("Element name mismatch!", env2Cursor.getName(), new QName("", "faultcode")); - assertEquals("soap Namespace has been dropped", "http://schemas.xmlsoap.org/soap/envelope/", env2Cursor.namespaceForPrefix("soap")); + try (XmlCursor env2Cursor = env2.newCursor()) { + assertTrue(env2Cursor.toFirstChild()); // <Envelope> + assertTrue(env2Cursor.toFirstChild()); // <Body> + assertTrue(env2Cursor.toFirstChild()); // <Fault> + if (env2Cursor.toFirstChild()) // <faultcode> + { + assertEquals("Element name mismatch!", env2Cursor.getName(), new QName("", "faultcode")); + assertEquals("soap Namespace has been dropped", "http://schemas.xmlsoap.org/soap/envelope/", env2Cursor.namespaceForPrefix("soap")); + } } - } } Modified: xmlbeans/trunk/src/test/java/scomp/substGroup/detailed/UserReportedTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/substGroup/detailed/UserReportedTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/substGroup/detailed/UserReportedTest.java (original) +++ xmlbeans/trunk/src/test/java/scomp/substGroup/detailed/UserReportedTest.java Thu Jan 6 17:54:30 2022 @@ -15,6 +15,7 @@ package scomp.substGroup.detailed; +import org.apache.xmlbeans.XmlCursor; import org.junit.Test; import scomp.common.BaseCase; import xbean.scomp.substGroup.userReported.ADocument; @@ -62,8 +63,12 @@ public class UserReportedTest extends Ba RootDocument.Root m = mdoc.addNewRoot(); m.setAArray(arr); T[] arr1=m.getAArray(); - arr1[2].newCursor().setName(new QName("http://xbean/scomp/substGroup/UserReported","b")); - arr1[4].newCursor().setName(new QName("http://xbean/scomp/substGroup/UserReported","b")); + try (XmlCursor c = arr1[2].newCursor()) { + c.setName(new QName("http://xbean/scomp/substGroup/UserReported","b")); + } + try (XmlCursor c = arr1[4].newCursor()) { + c.setName(new QName("http://xbean/scomp/substGroup/UserReported","b")); + } /* if (! mdoc.toString().equals(input)) throw new Exception(mdoc.toString()); Modified: xmlbeans/trunk/src/test/java/scomp/substGroup/restriction/detailed/Block.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/scomp/substGroup/restriction/detailed/Block.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/scomp/substGroup/restriction/detailed/Block.java (original) +++ xmlbeans/trunk/src/test/java/scomp/substGroup/restriction/detailed/Block.java Thu Jan 6 17:54:30 2022 @@ -85,13 +85,14 @@ public class Block extends BaseCase { bs }); - XmlCursor cur=doc.newCursor(); - cur.toFirstContentToken(); - cur.toNextToken(); - cur.toNextToken(); - cur.toNextToken(); - assertEquals(XmlCursor.TokenType.START,cur.currentTokenType()); - cur.setName(new QName("http://xbean/scomp/substGroup/Block","businessShirt","pre")); + try (XmlCursor cur = doc.newCursor()) { + cur.toFirstContentToken(); + cur.toNextToken(); + cur.toNextToken(); + cur.toNextToken(); + assertEquals(XmlCursor.TokenType.START,cur.currentTokenType()); + cur.setName(new QName("http://xbean/scomp/substGroup/Block","businessShirt","pre")); + } System.out.println("*************** "+doc.xmlText()); try { Modified: xmlbeans/trunk/src/test/java/tools/xml/XmlComparator.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/tools/xml/XmlComparator.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/tools/xml/XmlComparator.java (original) +++ xmlbeans/trunk/src/test/java/tools/xml/XmlComparator.java Thu Jan 6 17:54:30 2022 @@ -125,13 +125,13 @@ public class XmlComparator XmlObject xobj1 = XmlObject.Factory.parse(actual); XmlObject xobj2 = XmlObject.Factory.parse(expect); - XmlCursor cur1 = xobj1.newCursor(); - XmlCursor cur2 = xobj2.newCursor(); + try (XmlCursor cur1 = xobj1.newCursor(); + XmlCursor cur2 = xobj2.newCursor()) { + cur1.toFirstChild(); + cur2.toFirstChild(); - cur1.toFirstChild(); - cur2.toFirstChild(); - - return lenientlyCompareTwoXmlStrings(cur1, cur2, diag); + return lenientlyCompareTwoXmlStrings(cur1, cur2, diag); + } } /** Modified: xmlbeans/trunk/src/test/java/xmlcursor/checkin/AddToSelectionTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/checkin/AddToSelectionTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/checkin/AddToSelectionTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/checkin/AddToSelectionTest.java Thu Jan 6 17:54:30 2022 @@ -58,17 +58,17 @@ public class AddToSelectionTest extends assertEquals(4, m_xc.getSelectionCount()); //check results - XmlCursor m_xc1 = XmlObject.Factory.parse(sXml).newCursor(); - m_xc.toSelection(0); //reset cursor - int i = m_xc.getSelectionCount(); - while ((tok = m_xc1.toNextToken()) != XmlCursor.TokenType.NONE) { - //assertEquals(true,m_xc.hasNextSelection()); - assertEquals(m_xc.toNextToken(), tok); - m_xc.toNextSelection(); + try (XmlCursor m_xc1 = XmlObject.Factory.parse(sXml).newCursor()) { + m_xc.toSelection(0); //reset cursor + int i = m_xc.getSelectionCount(); + while ((tok = m_xc1.toNextToken()) != XmlCursor.TokenType.NONE) { + //assertEquals(true,m_xc.hasNextSelection()); + assertEquals(m_xc.toNextToken(), tok); + m_xc.toNextSelection(); + } + //second cursor should be at the end of selections too... + assertFalse(m_xc.toNextSelection()); } - //second cursor should be at the end of selections too... - assertFalse(m_xc.toNextSelection()); - m_xc1.dispose(); } @Test @@ -85,8 +85,8 @@ public class AddToSelectionTest extends } @Test(expected = Throwable.class) - public void testAddAfterDispose() { - m_xc.dispose(); + public void testAddAfterClose() { + m_xc.close(); m_xc.addToSelection(); } Modified: xmlbeans/trunk/src/test/java/xmlcursor/checkin/AnnotationsTests.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/checkin/AnnotationsTests.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/checkin/AnnotationsTests.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/checkin/AnnotationsTests.java Thu Jan 6 17:54:30 2022 @@ -32,31 +32,31 @@ public class AnnotationsTests { // @Test public void testBasicXml() throws Exception { - XmlCursor c = XmlObject.Factory.parse(Common.XML_ATTR_TEXT, null).newCursor(); + try (XmlCursor c = XmlObject.Factory.parse(Common.XML_ATTR_TEXT, null).newCursor()) { + TestBookmark a1 = new TestBookmark(); - TestBookmark a1 = new TestBookmark(); + c.setBookmark(a1); - c.setBookmark(a1); + TestBookmark a2 = new TestBookmark(); - TestBookmark a2 = new TestBookmark(); + c.toNextToken(); + c.toNextToken(); - c.toNextToken(); - c.toNextToken(); + c.setBookmark(a2); - c.setBookmark(a2); + c.toPrevToken(); + c.toPrevToken(); - c.toPrevToken(); - c.toPrevToken(); + assertEquals(c.getBookmark(TestBookmark.class), a1); - assertEquals(c.getBookmark(TestBookmark.class), a1); + c.toNextToken(); + c.toNextToken(); - c.toNextToken(); - c.toNextToken(); + assertEquals(c.getBookmark(TestBookmark.class), a2); - assertEquals(c.getBookmark(TestBookmark.class), a2); + c.toNextToken(); - c.toNextToken(); - - assertNull(c.getBookmark(TestBookmark.class)); + assertNull(c.getBookmark(TestBookmark.class)); + } } } Added: xmlbeans/trunk/src/test/java/xmlcursor/checkin/CloseTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/checkin/CloseTest.java?rev=1896764&view=auto ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/checkin/CloseTest.java (added) +++ xmlbeans/trunk/src/test/java/xmlcursor/checkin/CloseTest.java Thu Jan 6 17:54:30 2022 @@ -0,0 +1,35 @@ +/* Copyright 2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package xmlcursor.checkin; + +import org.apache.xmlbeans.XmlObject; +import org.junit.Test; +import xmlcursor.common.BasicCursorTestCase; +import xmlcursor.common.Common; + + +public class CloseTest extends BasicCursorTestCase { + + @Test + public void testMultipleClose() throws Exception { + m_xo = XmlObject.Factory.parse(Common.XML_FOO); + m_xc = m_xo.newCursor(); + m_xc.close(); + m_xc.close(); + } +} + Propchange: xmlbeans/trunk/src/test/java/xmlcursor/checkin/CloseTest.java ------------------------------------------------------------------------------ svn:executable = * Modified: xmlbeans/trunk/src/test/java/xmlcursor/checkin/ComparePositionTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/checkin/ComparePositionTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/checkin/ComparePositionTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/checkin/ComparePositionTest.java Thu Jan 6 17:54:30 2022 @@ -38,13 +38,10 @@ public class ComparePositionTest extends @Test(expected = IllegalArgumentException.class) public void testComparePositionDifferentDocs() throws Exception { m_xc = XmlObject.Factory.parse(Common.XML_FOO_1ATTR_TEXT).newCursor(); - XmlCursor xc0 = XmlObject.Factory.parse(Common.XML_FOO_1ATTR_TEXT).newCursor(); - m_xc.toFirstChild(); - xc0.toFirstChild(); - try { + try (XmlCursor xc0 = XmlObject.Factory.parse(Common.XML_FOO_1ATTR_TEXT).newCursor()) { + m_xc.toFirstChild(); + xc0.toFirstChild(); m_xc.comparePosition(xc0); - } finally { - xc0.dispose(); } } @@ -58,42 +55,33 @@ public class ComparePositionTest extends @Test public void testComparePositionRightInTEXT() throws Exception { m_xc = XmlObject.Factory.parse(Common.XML_FOO_1ATTR_TEXT).newCursor(); - XmlCursor xc0 = m_xc.newCursor(); - try { + try (XmlCursor xc0 = m_xc.newCursor()) { toNextTokenOfType(m_xc, TokenType.TEXT); toNextTokenOfType(xc0, TokenType.TEXT); xc0.toNextChar(1); assertEquals(-1, m_xc.comparePosition(xc0)); - } finally { - xc0.dispose(); } } @Test public void testComparePositionLeftInTEXT() throws Exception { m_xc = XmlObject.Factory.parse(Common.XML_FOO_1ATTR_TEXT).newCursor(); - XmlCursor xc0 = m_xc.newCursor(); - try { + try (XmlCursor xc0 = m_xc.newCursor()) { toNextTokenOfType(m_xc, TokenType.TEXT); toNextTokenOfType(xc0, TokenType.TEXT); m_xc.toNextChar(1); assertEquals(1, m_xc.comparePosition(xc0)); - } finally { - xc0.dispose(); } } @Test public void testComparePositionENDandENDDOC() throws Exception { m_xc = XmlObject.Factory.parse(Common.XML_FOO_1ATTR_TEXT).newCursor(); - XmlCursor xc0 = m_xc.newCursor(); - try { + try (XmlCursor xc0 = m_xc.newCursor()) { m_xc.toEndDoc(); xc0.toEndDoc(); xc0.toPrevToken(); assertEquals(1, m_xc.comparePosition(xc0)); - } finally { - xc0.dispose(); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
