Wrong creation of XMLFileConfigurationDelegate in XMLConfiguration.clone() --------------------------------------------------------------------------
Key: CONFIGURATION-254 URL: https://issues.apache.org/jira/browse/CONFIGURATION-254 Project: Commons Configuration Issue Type: Bug Affects Versions: 1.3 Environment: Java 1.4.2, Windows XP, Shale Reporter: Carsten Kaiser The clone() operation on a XMLConfiguration does not work correctly due to the following problem: private class XMLFileConfigurationDelegate extends FileConfigurationDelegate { public void load(InputStream in) throws ConfigurationException { XMLConfiguration.this.load(in); } } Obviously the delegate references the XMLConfiguration instance it is created in. Thus when calling public Object clone() { XMLConfiguration copy = (XMLConfiguration) super.clone(); // clear document related properties copy.document = null; copy.setDelegate(createDelegate()); // clear all references in the nodes, too copy.getRoot().visit(new NodeVisitor() { public void visitBeforeChildren(Node node, ConfigurationKey key) { node.setReference(null); } }, null); return copy; } the delegate still references the original XMLConfiguration, thus will save the content of the original one to file instead of the clone as expected! Changing the code like this copy.setDelegate(copy.createDelegate()); solves the problem! Now the cloned XMLConfiguration with all its applied changes can be saved! -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]