[prev in list] [next in list] [prev in thread] [next in thread]
List: jakarta-commons-dev
Subject: [jira] Created: (CONFIGURATION-254) Wrong creation of
From: "Carsten Kaiser (JIRA)" <jira () apache ! org>
Date: 2007-02-28 21:22:51
Message-ID: 21166257.1172697771186.JavaMail.jira () brutus
[Download RAW message or body]
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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic