This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jxpath.git


The following commit(s) were added to refs/heads/master by this push:
     new 42da558  Some tests do not clean up after themselves and cause random 
failures
42da558 is described below

commit 42da558a34ef30b965c43f981315559bdd24e938
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Tue Oct 18 10:13:53 2022 -0400

    Some tests do not clean up after themselves and cause random failures
---
 .../commons/jxpath/ri/JXPathContextReferenceImpl.java     | 15 +++++++++++++++
 .../java/org/apache/commons/jxpath/BasicNodeSetTest.java  |  4 ----
 .../jxpath/ri/JXPathContextReferenceImplTestCase.java     |  8 +++++++-
 .../jxpath/ri/model/dynabeans/LazyDynaBeanTest.java       |  8 ++++++--
 .../apache/commons/jxpath/util/ClassLoaderUtilTest.java   |  2 --
 5 files changed, 28 insertions(+), 9 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java 
b/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java
index e25a8d1..999a471 100644
--- a/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java
+++ b/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java
@@ -142,6 +142,21 @@ public class JXPathContextReferenceImpl extends 
JXPathContext {
         }
     }
 
+    /**
+     * Removes support for additional types of objects.
+     * 
+     * @param factory NodePointerFactory to remove
+     * @return true if this implementation contained the specified element
+     * @since 1.4.0
+     */
+    public static boolean removeNodePointerFactory(NodePointerFactory factory) 
{
+        synchronized (nodeFactories) {
+            final boolean remove = nodeFactories.remove(factory);
+            nodeFactoryArray = null;
+            return remove;
+        }
+    }
+
     /**
      * Get the registered NodePointerFactories.
      * @return NodePointerFactory[]
diff --git a/src/test/java/org/apache/commons/jxpath/BasicNodeSetTest.java 
b/src/test/java/org/apache/commons/jxpath/BasicNodeSetTest.java
index 64a2cd3..193df85 100644
--- a/src/test/java/org/apache/commons/jxpath/BasicNodeSetTest.java
+++ b/src/test/java/org/apache/commons/jxpath/BasicNodeSetTest.java
@@ -23,10 +23,6 @@ import org.w3c.dom.Element;
 
 /**
  * Test BasicNodeSet
- *
- * @author
- * @version $Revision$ $Date: 2007-12-10 15:15:27 -0600 (Mon, 10 Dec
- *          2007) $
  */
 public class BasicNodeSetTest extends JXPathTestCase {
 
diff --git 
a/src/test/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImplTestCase.java
 
b/src/test/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImplTestCase.java
index 8d97d70..05204e0 100644
--- 
a/src/test/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImplTestCase.java
+++ 
b/src/test/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImplTestCase.java
@@ -27,6 +27,12 @@ public class JXPathContextReferenceImplTestCase extends 
TestCase {
      * https://issues.apache.org/jira/browse/JXPATH-166
      */
     public void testInit() {
-        JXPathContextReferenceImpl.addNodePointerFactory(new 
ContainerPointerFactory());
+        final ContainerPointerFactory factory = new ContainerPointerFactory();
+        try {
+            JXPathContextReferenceImpl.addNodePointerFactory(factory);
+        } finally {
+            while 
(JXPathContextReferenceImpl.removeNodePointerFactory(factory))
+                ;
+        }
     }
 }
diff --git 
a/src/test/java/org/apache/commons/jxpath/ri/model/dynabeans/LazyDynaBeanTest.java
 
b/src/test/java/org/apache/commons/jxpath/ri/model/dynabeans/LazyDynaBeanTest.java
index 9588fcc..36988d5 100644
--- 
a/src/test/java/org/apache/commons/jxpath/ri/model/dynabeans/LazyDynaBeanTest.java
+++ 
b/src/test/java/org/apache/commons/jxpath/ri/model/dynabeans/LazyDynaBeanTest.java
@@ -34,12 +34,16 @@ public class LazyDynaBeanTest extends JXPathTestCase {
     }
 
     public void testStrictLazyDynaBeanPropertyFactory() {
-        JXPathContextReferenceImpl.addNodePointerFactory(new 
StrictLazyDynaBeanPointerFactory());
+        final StrictLazyDynaBeanPointerFactory factory = new 
StrictLazyDynaBeanPointerFactory();
+        JXPathContextReferenceImpl.addNodePointerFactory(factory);
         try {
             testLazyProperty();
             fail();
         } catch (JXPathNotFoundException e) {
-            //okay
+            // okay
+        } finally {
+            while 
(JXPathContextReferenceImpl.removeNodePointerFactory(factory))
+                ;
         }
     }
 }
diff --git 
a/src/test/java/org/apache/commons/jxpath/util/ClassLoaderUtilTest.java 
b/src/test/java/org/apache/commons/jxpath/util/ClassLoaderUtilTest.java
index 1c82549..7c0bdfa 100644
--- a/src/test/java/org/apache/commons/jxpath/util/ClassLoaderUtilTest.java
+++ b/src/test/java/org/apache/commons/jxpath/util/ClassLoaderUtilTest.java
@@ -30,8 +30,6 @@ import junit.framework.TestCase;
 
 /**
  * Tests org.apache.commons.jxpath.util.ClassLoaderUtil.
- *
- * @author
  */
 public class ClassLoaderUtilTest extends TestCase {
   

Reply via email to