commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Heger (JIRA)" <j...@apache.org>
Subject [jira] Updated: (CONFIGURATION-254) Wrong creation of XMLFileConfigurationDelegate in XMLConfiguration.clone()
Date Thu, 01 Mar 2007 12:44:51 GMT

     [ https://issues.apache.org/jira/browse/CONFIGURATION-254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Oliver Heger updated CONFIGURATION-254:
---------------------------------------

    Fix Version/s: 1.4

> 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
>         Assigned To: Oliver Heger
>             Fix For: 1.4
>
>
> 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


Mime
View raw message