Author: oheger
Date: Wed Apr 9 13:08:42 2008
New Revision: 646512
URL: http://svn.apache.org/viewvc?rev=646512&view=rev
Log:
Change return value of AbstractFlatConfiguration.getNodeHandler() to
NodeHandler<FlatNode> and ensure that the node handler also gets cloned
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java?rev=646512&r1=646511&r2=646512&view=diff
==============================================================================
---
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java
(original)
+++
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java
Wed Apr 9 13:08:42 2008
@@ -23,6 +23,7 @@
import org.apache.commons.configuration2.AbstractConfiguration;
import org.apache.commons.configuration2.event.ConfigurationEvent;
import org.apache.commons.configuration2.event.ConfigurationListener;
+import org.apache.commons.configuration2.expr.NodeHandler;
/**
* <p>
@@ -85,7 +86,7 @@
protected AbstractFlatConfiguration()
{
lockRoot = new ReentrantLock();
- nodeHandler = new FlatNodeHandler(this);
+ initNodeHandler();
registerChangeListener();
}
@@ -95,7 +96,7 @@
*
* @return the <code>NodeHandler</code> used
*/
- public FlatNodeHandler getNodeHandler()
+ public NodeHandler<FlatNode> getNodeHandler()
{
return nodeHandler;
}
@@ -189,6 +190,7 @@
{
AbstractFlatConfiguration copy = (AbstractFlatConfiguration) super
.clone();
+ copy.initNodeHandler();
copy.clearConfigurationListeners();
copy.registerChangeListener();
return copy;
@@ -262,6 +264,14 @@
Object value);
/**
+ * Initializes the node handler of this configuration.
+ */
+ private void initNodeHandler()
+ {
+ nodeHandler = new FlatNodeHandler(this);
+ }
+
+ /**
* Performs the actual remove property value operation. This method is
* called by <code>clearPropertyValue()</code>.
*
@@ -288,7 +298,7 @@
{
if (!event.isBeforeUpdate())
{
- if (!getNodeHandler().isInternalUpdate())
+ if (!((FlatNodeHandler)
getNodeHandler()).isInternalUpdate())
{
invalidateRootNode();
}
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java?rev=646512&r1=646511&r2=646512&view=diff
==============================================================================
---
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java
(original)
+++
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java
Wed Apr 9 13:08:42 2008
@@ -234,6 +234,9 @@
prepareGetRootNode(1);
checkNodeStructure(config.getRootNode());
FlatConfigurationMockImpl copy = (FlatConfigurationMockImpl)
config.clone();
+ FlatNodeHandler handler = (FlatNodeHandler) copy.getNodeHandler();
+ assertSame("Wrong config for node handler", copy,
handler.getConfiguration());
+ assertNotSame("Node handler not copied", handler,
config.getNodeHandler());
prepareGetRootNode(copy, 2);
FlatNode root = copy.getRootNode();
checkNodeStructure(root);