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]

Reply via email to