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/04/12 22:25:24 UTC
svn commit: r1467447 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration/MapConfiguration.java
test/java/org/apache/commons/configuration/TestMapConfiguration.java
Author: oheger
Date: Fri Apr 12 20:25:24 2013
New Revision: 1467447
URL: http://svn.apache.org/r1467447
Log:
[CONFIGURATION-524] MapConfiguration.clone() now ensures that the
configuration's interpolator is cloned, too.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestMapConfiguration.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java?rev=1467447&r1=1467446&r2=1467447&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java Fri Apr 12 20:25:24 2013
@@ -239,6 +239,7 @@ public class MapConfiguration extends Ab
@SuppressWarnings("unchecked")
Map<String, Object> clonedMap = (Map<String, Object>) ConfigurationUtils.clone(map);
copy.map = clonedMap;
+ copy.cloneInterpolator(this);
return copy;
}
catch (CloneNotSupportedException cex)
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestMapConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestMapConfiguration.java?rev=1467447&r1=1467446&r2=1467447&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestMapConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestMapConfiguration.java Fri Apr 12 20:25:24 2013
@@ -108,6 +108,25 @@ public class TestMapConfiguration extend
}
/**
+ * Tests whether interpolation works as expected after cloning.
+ */
+ @Test
+ public void testCloneInterpolation()
+ {
+ final String keyAnswer = "answer";
+ final String keyValue = "value";
+ MapConfiguration config = (MapConfiguration) getConfiguration();
+ config.addProperty(keyAnswer, "The answer is ${" + keyValue + "}.");
+ config.addProperty(keyValue, 42);
+ MapConfiguration clone = (MapConfiguration) config.clone();
+ clone.setProperty(keyValue, 43);
+ assertEquals("Wrong interpolation in original", "The answer is 42.",
+ config.getString(keyAnswer));
+ assertEquals("Wrong interpolation in clone", "The answer is 43.",
+ clone.getString(keyAnswer));
+ }
+
+ /**
* Tests adding another value to an existing property.
*/
@Test