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

Oliver Heger updated CONFIGURATION-287:
---------------------------------------

    Fix Version/s: 1.5
         Assignee: Oliver Heger

> XMLConfiguration.addNodes() problem using other configuration Nodes
> -------------------------------------------------------------------
>
>                 Key: CONFIGURATION-287
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-287
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.4
>            Reporter: Ruben Silva
>            Assignee: Oliver Heger
>             Fix For: 1.5
>
>
> Trying to use the method XMLConfiguration.addNodes() to add a tree of 
> configuration properties to a node in other tree fails. 
> Example:
> public static void main(String ...args){            
> try{
>            configDestination = new XMLConfiguration("output.xml");
>            configSource = new XMLConfiguration("input.xml");
>        }
>        catch(ConfigurationException cex){
>            System.out.println("File not found");
>        }
>              Collection collection = new ArrayList();
>        collection = configSource.getRoot().getChildren();
>              configDestination.addNodes("newNodes", collection);              
>     
> try {
>            configDestination.save();
>             } catch (ConfigurationException e) {
>            System.out.println("Error saving");
>        }
> }
> The XML files:
> input.xml
> <rootNode>
>    <newNodeChild>
>        <newNodeChildChild>child value</newNodeChildChild>
>        <newNodeChildChild>child value 2</newNodeChildChild>
>        <newNodeChildChild>child value 3</newNodeChildChild>
>    </newNodeChild>
> </rootNode>
> output.xml
> <testRootNode>
>    <test>TEST</test>
> </testRootNode>
> output.xml after running the code:
> <testRootNode>
>    <test>TEST</test>
>    <newNodes/>
> </testRootNode>
> Expected output.xml:
> <testRootNode>
>    <test>TEST</test>
>    <newNodes>
>        <newNodeChild>
>            <newNodeChildChild>child value</newNodeChildChild>
>            <newNodeChildChild>child value 2</newNodeChildChild>
>            <newNodeChildChild>child value 3</newNodeChildChild>
>        </newNodeChild>
>    <newNodes/>
> </testRootNode> 
> Apparently "the copied nodes still contain a reference to their old 
> configuration (because you directly fetched them from the root node of the 
> source configuration). Because of this reference they are not detected as new 
> nodes when the destination configuration is saved, and hence not written to 
> disk.
> I think addNodes() should reset this reference, so that the added nodes can 
> be detected as new nodes. (But then you have to be aware that you break the 
> source configuration because a node can only be contained in exactly one 
> configuration.) " 

-- 
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]

Reply via email to