Sort members
diff --git a/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java b/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java
index e4911b9..df58fba 100644
--- a/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java
+++ b/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java
@@ -407,6 +407,23 @@
     }
 
     /**
+     * Checks if the specified value exists in the properties structure mapped by the provided keys.
+     *
+     * @param keys an Iterator of String keys to search for the value
+     * @param value the String value to search for in the properties
+     * @return true if the value is found in the properties, false otherwise
+     * @since 2.11.0
+     */
+    protected boolean contains(final Iterator<String> keys, final Object value) {
+        while (keys.hasNext()) {
+            if (Objects.equals(value, getProperty(keys.next()))) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
      * {@inheritDoc} This implementation handles synchronization and delegates to {@code containsKeyInternal()}.
      */
     @Override
@@ -420,20 +437,6 @@
     }
 
     /**
-     * {@inheritDoc} This implementation handles synchronization and delegates to {@code containsKeyInternal()}.
-     * @since 2.11.0
-     */
-    @Override
-    public final boolean containsValue(final Object value) {
-        beginRead(false);
-        try {
-            return containsValueInternal(value);
-        } finally {
-            endRead();
-        }
-    }
-
-    /**
      * Actually checks whether the specified key is contained in this configuration. This method is called by
      * {@code containsKey()}. It has to be defined by concrete subclasses.
      *
@@ -444,6 +447,20 @@
     protected abstract boolean containsKeyInternal(String key);
 
     /**
+     * {@inheritDoc} This implementation handles synchronization and delegates to {@code containsKeyInternal()}.
+     * @since 2.11.0
+     */
+    @Override
+    public final boolean containsValue(final Object value) {
+        beginRead(false);
+        try {
+            return containsValueInternal(value);
+        } finally {
+            endRead();
+        }
+    }
+
+    /**
      * Tests whether this configuration contains one or more matches to this value. This operation stops at first match but may be more expensive than the
      * {@link #containsKeyInternal containsKey} method.
      * <p>
@@ -1550,23 +1567,6 @@
         return size;
     }
 
-    /**
-     * Checks if the specified value exists in the properties structure mapped by the provided keys.
-     *
-     * @param keys an Iterator of String keys to search for the value
-     * @param value the String value to search for in the properties
-     * @return true if the value is found in the properties, false otherwise
-     * @since 2.11.0
-     */
-    protected boolean contains(final Iterator<String> keys, final Object value) {
-        while (keys.hasNext()) {
-            if (Objects.equals(value, getProperty(keys.next()))) {
-                return true;
-            }
-        }
-        return false;
-    }
-
     @Override
     public Configuration subset(final String prefix) {
         return new SubsetConfiguration(this, prefix, ".");
diff --git a/src/main/java/org/apache/commons/configuration2/INIConfiguration.java b/src/main/java/org/apache/commons/configuration2/INIConfiguration.java
index 703ad34..7088271 100644
--- a/src/main/java/org/apache/commons/configuration2/INIConfiguration.java
+++ b/src/main/java/org/apache/commons/configuration2/INIConfiguration.java
@@ -204,11 +204,6 @@
 public class INIConfiguration extends BaseHierarchicalConfiguration implements FileBasedConfiguration {
 
     /**
-     * The empty key.
-     */
-    private static final String EMPTY_KEY = " ";
-
-    /**
      * Builds instances of INIConfiguration.
      *
      * @since 2.9.0
@@ -308,6 +303,11 @@
     }
 
     /**
+     * The empty key.
+     */
+    private static final String EMPTY_KEY = " ";
+
+    /**
      * The default characters that signal the start of a comment line.
      */
     protected static final String COMMENT_CHARS = "#;";
diff --git a/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java
index 773afa5..8d44833 100644
--- a/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java
@@ -60,6 +60,21 @@
     protected abstract AbstractConfiguration getEmptyConfiguration();
 
     @Test
+    public void givenNullIteratorTestContains() {
+        final AbstractConfiguration config = getConfiguration();
+
+        assertThrows(NullPointerException.class, () -> config.contains(null, "value1"));
+    }
+
+    @Test
+    public void givenNullValueTestContains() {
+        AbstractConfiguration config = getConfiguration();
+        Iterator<String> keys = config.getKeys();
+        assertFalse(config.contains(keys, null));
+        assertFalse(config.contains(keys, ""));
+    }
+
+    @Test
     public void testAddPropertyDirect() {
         final AbstractConfiguration config = getConfiguration();
         config.addPropertyDirect("key3", "value3");
@@ -79,12 +94,10 @@
     }
 
     @Test
-    public void testContainsValue() {
+    public void testClearProperty() {
         final Configuration config = getConfiguration();
-        assertFalse(config.containsValue(null));
-        assertFalse(config.containsValue(""));
-        assertTrue(config.containsValue("value1"));
-        assertFalse(config.containsValue("value99999"));
+        config.clearProperty("key2");
+        assertFalse(config.containsKey("key2"));
     }
 
     @Test
@@ -95,34 +108,21 @@
     }
 
     @Test
-    public void givenNullIteratorTestContains() {
-        final AbstractConfiguration config = getConfiguration();
-
-        assertThrows(NullPointerException.class, () -> config.contains(null, "value1"));
-    }
-
-    @Test
-    public void givenNullValueTestContains() {
-        AbstractConfiguration config = getConfiguration();
-        Iterator<String> keys = config.getKeys();
-        assertFalse(config.contains(keys, null));
-        assertFalse(config.contains(keys, ""));
-    }
-
-    @Test
-    public void testClearProperty() {
-        final Configuration config = getConfiguration();
-        config.clearProperty("key2");
-        assertFalse(config.containsKey("key2"));
-    }
-
-    @Test
     public void testContainsKey() {
         final Configuration config = getConfiguration();
         assertTrue(config.containsKey("key1"));
         assertFalse(config.containsKey("key3"));
     }
 
+    @Test
+    public void testContainsValue() {
+        final Configuration config = getConfiguration();
+        assertFalse(config.containsValue(null));
+        assertFalse(config.containsValue(""));
+        assertTrue(config.containsValue("value1"));
+        assertFalse(config.containsValue("value99999"));
+    }
+
     /**
      * Tests the exception message triggered by the conversion to BigInteger. This test is related to CONFIGURATION-357.
      */
diff --git a/src/test/java/org/apache/commons/configuration2/TestAbstractHierarchicalConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestAbstractHierarchicalConfiguration.java
index bc2c7bd..3a39430 100644
--- a/src/test/java/org/apache/commons/configuration2/TestAbstractHierarchicalConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestAbstractHierarchicalConfiguration.java
@@ -509,6 +509,12 @@
     }
 
     @Test
+    public void testContainsValue() {
+        assertFalse(config.containsValue(null));
+        assertFalse(config.containsValue(""));
+    }
+
+    @Test
     public void testGetKeys() {
         final List<String> keys = new ArrayList<>();
         for (final Iterator<String> it = config.getKeys(); it.hasNext();) {
@@ -941,10 +947,4 @@
     public void testSize() {
         assertEquals(2, config.size());
     }
-
-    @Test
-    public void testContainsValue() {
-        assertFalse(config.containsValue(null));
-        assertFalse(config.containsValue(""));
-    }
 }
diff --git a/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java
index be797a3..1388dc8 100644
--- a/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java
@@ -179,6 +179,11 @@
     }
 
     @Test
+    public void testContainsValue() {
+        assertFalse(config.containsValue(null));
+    }
+
+    @Test
     public void testGetBigDecimal() {
         config.setProperty("numberBigD", "123.456");
         final BigDecimal number = new BigDecimal("123.456");
@@ -718,9 +723,4 @@
     public void testThrowExceptionOnMissing() {
         assertTrue(config.isThrowExceptionOnMissing());
     }
-
-    @Test
-    public void testContainsValue() {
-        assertFalse(config.containsValue(null));
-    }
 }
diff --git a/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java
index b858789..7d36cec 100644
--- a/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestDataConfiguration.java
@@ -381,6 +381,13 @@
     }
 
     @Test
+    public void testContainsValue() {
+        final Configuration config = conf.getConfiguration();
+        assertFalse(config.containsValue(null));
+        assertTrue(config.containsValue(""));
+    }
+
+    @Test
     public void testConversionException() throws Exception {
         conf.addProperty("key1", new Object());
         conf.addProperty("key2", "xxxxxx");
@@ -1965,11 +1972,4 @@
     public void testNullConfiguration() {
         assertThrows(NullPointerException.class, () -> new DataConfiguration(null));
     }
-
-    @Test
-    public void testContainsValue() {
-        final Configuration config = conf.getConfiguration();
-        assertFalse(config.containsValue(null));
-        assertTrue(config.containsValue(""));
-    }
 }
diff --git a/src/test/java/org/apache/commons/configuration2/TestDatabaseConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestDatabaseConfiguration.java
index c4aa9f7..c954a3a 100644
--- a/src/test/java/org/apache/commons/configuration2/TestDatabaseConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestDatabaseConfiguration.java
@@ -108,6 +108,15 @@
         listener = null; // mark as checked
     }
 
+    @Test
+    void containsValueInternal() throws ConfigurationException {
+        final DatabaseConfiguration config = helper.setUpConfig();
+        config.addPropertyDirect("test", "test1");
+
+        assertTrue(config.containsValueInternal("test1"));
+        assertFalse(config.containsValue("test9999"));
+    }
+
     @BeforeEach
     public void setUp() throws Exception {
         /*
@@ -173,24 +182,6 @@
         assertTrue(config.containsKey("boolean"));
     }
 
-    @Test
-    void testContainsValue() throws ConfigurationException {
-        final DatabaseConfiguration config = helper.setUpConfig();
-        config.addPropertyDirect("test", "test1");
-
-        assertTrue(config.containsValue("test1"));
-        assertFalse(config.containsValue("test9999"));
-    }
-
-    @Test
-    void containsValueInternal() throws ConfigurationException {
-        final DatabaseConfiguration config = helper.setUpConfig();
-        config.addPropertyDirect("test", "test1");
-
-        assertTrue(config.containsValueInternal("test1"));
-        assertFalse(config.containsValue("test9999"));
-    }
-
     /**
      * Tests whether a commit is performed after a property was added.
      */
@@ -359,6 +350,15 @@
         assertTrue(config.containsKey("key2"));
     }
 
+    @Test
+    void testContainsValue() throws ConfigurationException {
+        final DatabaseConfiguration config = helper.setUpConfig();
+        config.addPropertyDirect("test", "test1");
+
+        assertTrue(config.containsValue("test1"));
+        assertFalse(config.containsValue("test9999"));
+    }
+
     /**
      * Tests whether a CLOB as a property value is handled correctly.
      */
diff --git a/src/test/java/org/apache/commons/configuration2/TestDefaultImmutableConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestDefaultImmutableConfiguration.java
index 9b880d0..0245a7a 100644
--- a/src/test/java/org/apache/commons/configuration2/TestDefaultImmutableConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestDefaultImmutableConfiguration.java
@@ -346,6 +346,14 @@
     }
 
     @Test
+    public void testContainsValueDefaultImplementation() {
+        config.map.put("test", "213123");
+        assertFalse(config.containsValue(""));
+        assertFalse(config.containsValue(null));
+        assertTrue(config.containsValue("213123"));
+    }
+
+    @Test
     public void testGetDuration() {
         final Duration d = Duration.ofSeconds(1);
         config.map.put("durationD", d.toString());
@@ -364,14 +372,6 @@
     }
 
     @Test
-    public void testContainsValueDefaultImplementation() {
-        config.map.put("test", "213123");
-        assertFalse(config.containsValue(""));
-        assertFalse(config.containsValue(null));
-        assertTrue(config.containsValue("213123"));
-    }
-
-    @Test
     public void testGetDurationUnknown() {
         assertThrows(NoSuchElementException.class, () -> config.getDuration("numberNotInConfig"));
     }
diff --git a/src/test/java/org/apache/commons/configuration2/TestMapConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestMapConfiguration.java
index d6f8120..ae5fe67 100644
--- a/src/test/java/org/apache/commons/configuration2/TestMapConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestMapConfiguration.java
@@ -117,6 +117,12 @@
     }
 
     @Test
+    public void testContainsValue() {
+        assertFalse(getConfiguration().containsValue(null));
+        assertFalse(getConfiguration().containsValue(""));
+    }
+
+    @Test
     public void testGetMap() {
         final Map<String, Object> map = new HashMap<>();
 
@@ -162,10 +168,4 @@
         assertThrows(NullPointerException.class, () -> new MapConfiguration((Map) null));
         assertThrows(NullPointerException.class, () -> new MapConfiguration((Properties) null));
     }
-
-    @Test
-    public void testContainsValue() {
-        assertFalse(getConfiguration().containsValue(null));
-        assertFalse(getConfiguration().containsValue(""));
-    }
 }
diff --git a/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java
index 6a223b1..dc75e9b 100644
--- a/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java
@@ -554,6 +554,17 @@
         testCompress840(object);
     }
 
+    @Test
+    void testConfiguration() throws ConfigurationException {
+        Configurations configManager = new Configurations();
+        Configuration config = configManager.properties("src/test/resources/config/test.properties");
+
+        assertTrue(config.containsValue("jndivalue2"));
+        assertFalse(config.containsValue("notFound"));
+        assertFalse(config.containsValue(null));
+        assertFalse(config.containsValue(""));
+    }
+
     /**
      * Tests copying another configuration into the test configuration. This test ensures that the layout object is informed
      * about the newly added properties.
@@ -1215,17 +1226,6 @@
         assertEquals(Arrays.asList("C:\\path1\\", "C:\\path2\\", "C:\\path3\\complex\\test\\"), list);
     }
 
-    @Test
-    void testConfiguration() throws ConfigurationException {
-        Configurations configManager = new Configurations();
-        Configuration config = configManager.properties("src/test/resources/config/test.properties");
-
-        assertTrue(config.containsValue("jndivalue2"));
-        assertFalse(config.containsValue("notFound"));
-        assertFalse(config.containsValue(null));
-        assertFalse(config.containsValue(""));
-    }
-
     /**
      * Tests the propertyLoaded() method for a simple property.
      */
diff --git a/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java b/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java
index e32a947..be3328a 100644
--- a/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java
+++ b/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java
@@ -94,6 +94,12 @@
         assertThrows(UnsupportedOperationException.class, super::testClearProperty);
     }
 
+    @Test
+    public void testContainsValue() {
+        assertFalse(getConfiguration().containsValue(null));
+        assertFalse(getConfiguration().containsValue(""));
+    }
+
     /**
      * Tests a list with elements that contain an escaped list delimiter.
      */
@@ -116,10 +122,4 @@
         }
         assertEquals(expected, v);
     }
-
-    @Test
-    public void testContainsValue() {
-        assertFalse(getConfiguration().containsValue(null));
-        assertFalse(getConfiguration().containsValue(""));
-    }
 }