[ https://issues.apache.org/jira/browse/CONFIGURATION-328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Emmanuel Bourg updated CONFIGURATION-328:
-----------------------------------------
Description:
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.
was:
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.
Fix Version/s: 1.6
Summary: XMLConfiguration addNodes() not behaving correctly (was: XMLConfiguration
addNodes() not behaving correctly (in 1.5))
> 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
> Priority: Blocker
> 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.