You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/05/22 22:10:05 UTC

svn commit: r1485389 - /commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CombinedConfiguration.java

Author: oheger
Date: Wed May 22 20:10:05 2013
New Revision: 1485389

URL: http://svn.apache.org/r1485389
Log:
Don't call non-private, non-final methods from the constructor.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CombinedConfiguration.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CombinedConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CombinedConfiguration.java?rev=1485389&r1=1485388&r2=1485389&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CombinedConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CombinedConfiguration.java Wed May 22 20:10:05 2013
@@ -220,8 +220,8 @@ public class CombinedConfiguration exten
      */
     public CombinedConfiguration(NodeCombiner comb)
     {
-        setNodeCombiner((comb != null) ? comb : DEFAULT_COMBINER);
-        clear();
+        nodeCombiner = (comb != null) ? comb : DEFAULT_COMBINER;
+        initChildCollections();
     }
 
     /**
@@ -263,7 +263,7 @@ public class CombinedConfiguration exten
                     "Node combiner must not be null!");
         }
         this.nodeCombiner = nodeCombiner;
-        invalidate();
+        invalidateInternal();
     }
 
     /**
@@ -343,7 +343,7 @@ public class CombinedConfiguration exten
         }
 
         registerListenerAt(config);
-        invalidate();
+        invalidateInternal();
     }
 
     /**
@@ -474,7 +474,7 @@ public class CombinedConfiguration exten
             namedConfigurations.remove(cd.getName());
         }
         unregisterListenerAt(cd.getConfiguration());
-        invalidate();
+        invalidateInternal();
         return cd.getConfiguration();
     }
 
@@ -518,8 +518,7 @@ public class CombinedConfiguration exten
      */
     public void invalidate()
     {
-        reloadRequired = true;
-        fireEvent(EVENT_COMBINED_INVALIDATE, null, null, false);
+        invalidateInternal();
     }
 
     /**
@@ -564,9 +563,8 @@ public class CombinedConfiguration exten
     @Override
     protected void clearInternal()
     {
-        configurations = new ArrayList<ConfigData>();
-        namedConfigurations = new HashMap<String, Configuration>();
-        invalidate();
+        initChildCollections();
+        invalidateInternal();
     }
 
     /**
@@ -582,7 +580,7 @@ public class CombinedConfiguration exten
     public Object clone()
     {
         CombinedConfiguration copy = (CombinedConfiguration) super.clone();
-        copy.clear();
+        copy.initChildCollections();
         for (ConfigData cd : configurations)
         {
             copy.addConfiguration(ConfigurationUtils
@@ -646,6 +644,28 @@ public class CombinedConfiguration exten
     }
 
     /**
+     * Marks this configuration as invalid. This means that the next access
+     * re-creates the root node. An invalidate event is also fired. Note:
+     * This implementation expects that an exclusive (write) lock is held on
+     * this instance.
+     */
+    private void invalidateInternal()
+    {
+        reloadRequired = true;
+        fireEvent(EVENT_COMBINED_INVALIDATE, null, null, false);
+    }
+
+    /**
+     * Initializes internal data structures for storing information about
+     * child configurations.
+     */
+    private void initChildCollections()
+    {
+        configurations = new ArrayList<ConfigData>();
+        namedConfigurations = new HashMap<String, Configuration>();
+    }
+
+    /**
      * Creates the root node of this combined configuration.
      *
      * @return the combined root node