commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "vivek (JIRA)" <j...@apache.org>
Subject [jira] Created: (CONFIGURATION-328) XMLConfiguration addNodes() not behaving correctly (in 1.5)
Date Sat, 17 May 2008 21:49:55 GMT
XMLConfiguration addNodes() not behaving correctly (in 1.5)
-----------------------------------------------------------

                 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
            Priority: Blocker


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,

 <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>
     </test>

2) Now I need to add two new properties under <test>,

<property  name="newFirst">
      <value>first</value>
</property>
<property name="newSecond">
       <value>second</value>
</property>

3) Here is the code I'm using,

        a) First create a new HierarchicalConfiguration.Node
                 private HierarchicalConfiguration.Node createNode(String name, Object value)
 {
                        HierarchicalConfiguration.Node node = new HierarchicalConfiguration.Node(name);
                        node.setValue(value);
                        return node;
                  }
                  
       b) Add the node to the list
          List<HierarchicalConfiguration.Node> attrNodes = new ArrayList<HierarchicalConfiguration.Node>();
		Node attrNode = createNode(attrName, newPropertyName);
		attrNode.setAttribute(true);
		attrNodes.add(attrNode);
        
       c) Call addNodes on XMLConfiguration,
                  conf.addNodes(attrPath, attrNodes);

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,

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


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