commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "vivek (JIRA)" <j...@apache.org>
Subject [jira] Updated: (CONFIGURATION-328) XMLConfiguration addNodes() not behaving correctly
Date Mon, 19 May 2008 05:31:55 GMT

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

vivek updated CONFIGURATION-328:
--------------------------------

    Priority: Major  (was: Blocker)

I tried adding attribute as part of the property element itself,

{code:java}
nodeToAdd.addAttribute(new DefaultConfigurationNode(attrName, newPropertyName));
{code}

This seems to work fine. So, instead of using "setAttribute(true)" if I just do addAttribute
it seems to work fine. May be that's the right way.

I'll leave to you guys to see whether there is any issue in 1.5 or it used to work in 1.3
because of some bug, which has been fixed in 1.5.

For me the workaround is working fine now.

> XMLConfiguration addNodes() not behaving correctly
> --------------------------------------------------
>
>                 Key: CONFIGURATION-328
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-328
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.5
>         Environment: Linux, Apache Configuration 1.5
>            Reporter: vivek
>             Fix For: 1.6
>
>
> Things used to work fine in 1.3, but now when I'm trying 1.5 my JUnit test suite is breaking
when adding new properties. Here is what I'm doing,
> 1) I already have a configuration as following,
> {code:xml}
>  <test>
>   <property name="isOk">
>     <value>true</value>
>     <default>false</default>
>   </property>
>   <property name="intProperty">
>     <value>900</value>
>     <default>500</default>
>   </property>
>   <property extra="0" name="stringProperty">
>     <default>Bye</default>
>   </property>
> </test>
> {code}
> 2) Now I need to add two new properties under <test>,
> {code:xml}
> <property  name="newFirst">
>   <value>first</value>
> </property>
> <property name="newSecond">
>   <value>second</value>
> </property>
> {code}
> 3) Here is the code I'm using,
>         a) First create a new HierarchicalConfiguration.Node
> {code:java}
> private HierarchicalConfiguration.Node createNode(String name, Object value)  {
>     HierarchicalConfiguration.Node node = new HierarchicalConfiguration.Node(name);
>     node.setValue(value);
>     return node;
> }
> {code}
>                   
>        b) Add the node to the list
> {code:java}
> List<HierarchicalConfiguration.Node> attrNodes = new ArrayList<HierarchicalConfiguration.Node>();
> Node attrNode = createNode(attrName, newPropertyName);
> attrNode.setAttribute(true);
> attrNodes.add(attrNode);
> {code}
>         
>        c) Call addNodes on XMLConfiguration,
> {code:java}
>     conf.addNodes(attrPath, attrNodes);
> {code}
> I run this in a look for each new property I need to add. For first property, I get element
count for the test.property as 3 (conf.getMaxIndex(key)) - so I insert at test.property(3),
which is right, but for the second property I get element count as 5 --> This is wrong,
it should have been 4 (because I just added 1). 
> I check the saved the configuration file after adding those two new properties and it
looks wrong too. Here is what I get,
> {code:xml}
> <test>
>   <property name="isOk">
>     <value>true</value>
>     <default>false</default>
>   </property>
>   <property name="intProperty">
>     <value>900</value>
>     <default>500</default>
>   </property>
>   <property extra="0" name="stringProperty">
>     <value>Hi</value>
>     default>Bye</default>
>   </property>
>   <property>
>     <name>newFirst</name>
>   </property>
>   <property>
>     <value>first</value>
>   </property>
>   <property>
>     <name>newSecond</name>
>   </property>
>   <property>
>     <value>second</value>
>   </property>
> </test>
> {code}
> The total element count for test.property gives me 7 ==> I was expecting 5.
> There seems to have some code change in 1.5 releated to addNodes (for ex., CONFIGURATION-287).
I'm not sure if I need to change the way I was calling addNodes before. It works fine with
1.3, but 1.5 completely fails on adding new properties. 
> I do need 1.5 for other bug fixes ( CONFIGURATION-268 and some other), but I can't use
it until the addNodes behave correctly. 
> Marking this as blocker as I'm blocked because of this issue. If there is a workaround
then please let me know.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message