You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by eb...@apache.org on 2004/09/03 18:36:21 UTC
cvs commit: jakarta-commons/configuration/xdocs changes.xml
ebourg 2004/09/03 09:36:21
Modified: configuration/src/java/org/apache/commons/configuration
XMLConfiguration.java
configuration/src/test/org/apache/commons/configuration
TestXMLConfiguration.java
configuration/xdocs changes.xml
Log:
Fixed Bug 30839 (ClassCastException in XMLConfiguration)
Revision Changes Path
1.11 +4 -4 jakarta-commons/configuration/src/java/org/apache/commons/configuration/XMLConfiguration.java
Index: XMLConfiguration.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/XMLConfiguration.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLConfiguration.java 14 Aug 2004 11:32:06 -0000 1.10
+++ XMLConfiguration.java 3 Sep 2004 16:36:20 -0000 1.11
@@ -374,7 +374,7 @@
}
if (attName == null) {
- CharacterData data = document.createTextNode((String) value);
+ CharacterData data = document.createTextNode(String.valueOf(value));
element.appendChild(data);
} else {
element.setAttribute(attName, (String) value);
@@ -427,10 +427,10 @@
Element child = document.createElement(nodes[nodes.length - 1]);
parent.appendChild(child);
if (attName == null) {
- CharacterData data = document.createTextNode((String) value);
+ CharacterData data = document.createTextNode(String.valueOf(value));
child.appendChild(data);
} else {
- child.setAttribute(attName, (String) value);
+ child.setAttribute(attName, String.valueOf(value));
}
}
1.9 +37 -24 jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
Index: TestXMLConfiguration.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestXMLConfiguration.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestXMLConfiguration.java 16 Aug 2004 22:16:31 -0000 1.8
+++ TestXMLConfiguration.java 3 Sep 2004 16:36:21 -0000 1.9
@@ -44,7 +44,7 @@
conf = new XMLConfiguration(new File(testProperties));
}
- public void testGetProperty() throws Exception
+ public void testGetProperty()
{
assertEquals("value", conf.getProperty("element"));
}
@@ -66,7 +66,7 @@
conf.clearProperty(key);
assertNull(key, conf.getProperty(key));
assertNull(key, conf.getXmlProperty(key));
-
+
// test single element
conf.load();
key = "clear.element";
@@ -83,21 +83,21 @@
key = "clear.element2[@id]";
assertNotNull(key, conf.getProperty(key));
assertNotNull(key, conf.getXmlProperty(key));
-
+
// test non-text/cdata element
conf.load();
key = "clear.comment";
conf.clearProperty(key);
assertNull(key, conf.getProperty(key));
assertNull(key, conf.getXmlProperty(key));
-
+
// test cdata element
conf.load();
key = "clear.cdata";
conf.clearProperty(key);
assertNull(key, conf.getProperty(key));
assertNull(key, conf.getXmlProperty(key));
-
+
// test multiple sibling elements
conf.load();
key = "clear.list.item";
@@ -107,7 +107,7 @@
key = "clear.list.item[@id]";
assertNotNull(key, conf.getProperty(key));
assertNotNull(key, conf.getXmlProperty(key));
-
+
// test multiple, disjoined elements
conf.load();
key = "list.item";
@@ -120,7 +120,7 @@
// test non-leaf element
Object property = conf.getXmlProperty("clear");
assertNull(property);
-
+
// test non-existent element
property = conf.getXmlProperty("e");
assertNull(property);
@@ -128,29 +128,29 @@
// test non-existent element
property = conf.getXmlProperty("element3[@n]");
assertNull(property);
-
+
// test single element
property = conf.getXmlProperty("element");
assertNotNull(property);
assertTrue(property instanceof String);
assertEquals("value", property);
-
+
// test single attribute
property = conf.getXmlProperty("element3[@name]");
assertNotNull(property);
assertTrue(property instanceof String);
assertEquals("foo", property);
-
+
// test non-text/cdata element
property = conf.getXmlProperty("test.comment");
assertNull(property);
-
+
// test cdata element
property = conf.getXmlProperty("test.cdata");
assertNotNull(property);
assertTrue(property instanceof String);
assertEquals("<cdata value>", property);
-
+
// test multiple sibling elements
property = conf.getXmlProperty("list.sublist.item");
assertNotNull(property);
@@ -159,7 +159,7 @@
assertEquals(2, list.size());
assertEquals("five", list.get(0));
assertEquals("six", list.get(1));
-
+
// test multiple, disjoined elements
property = conf.getXmlProperty("list.item");
assertNotNull(property);
@@ -180,8 +180,8 @@
assertEquals("one", list.get(0));
assertEquals("three", list.get(1));
}
-
- public void testGetAttribute() throws Exception
+
+ public void testGetAttribute()
{
assertEquals("element3[@name]", "foo", conf.getProperty("element3[@name]"));
}
@@ -205,7 +205,7 @@
key = "clear.element2";
assertNotNull(key, conf.getProperty(key));
assertNotNull(key, conf.getXmlProperty(key));
-
+
// test multiple, disjoined attributes
conf.load();
key = "clear.list.item[@id]";
@@ -217,7 +217,7 @@
assertNotNull(key, conf.getXmlProperty(key));
}
- public void testSetAttribute() throws Exception
+ public void testSetAttribute()
{
// replace an existing attribute
conf.setProperty("element3[@name]", "bar");
@@ -228,7 +228,7 @@
assertEquals("foo[@bar]", "value", conf.getProperty("foo[@bar]"));
}
- public void testAddAttribute() throws Exception
+ public void testAddAttribute()
{
conf.addProperty("element3[@name]", "bar");
@@ -239,7 +239,13 @@
assertEquals("list size", 2, list.size());
}
- public void testAddVectorAttribute() throws Exception
+ public void testAddObjectAttribute()
+ {
+ conf.addProperty("test.boolean[@value]", Boolean.TRUE);
+ assertTrue("test.boolean[@value]", conf.getBoolean("test.boolean[@value]"));
+ }
+
+ public void testAddVectorAttribute()
{
conf.addProperty("element3[@name]", "bar");
@@ -250,7 +256,7 @@
assertEquals("vector size", 2, vector.size());
}
- public void testAddList() throws Exception
+ public void testAddList()
{
conf.addProperty("test.array", "value1");
conf.addProperty("test.array", "value2");
@@ -262,7 +268,7 @@
assertEquals("list size", 2, list.size());
}
- public void testAddVector() throws Exception
+ public void testAddVector()
{
conf.addProperty("test.array", "value1");
conf.addProperty("test.array", "value2");
@@ -274,12 +280,12 @@
assertEquals("vector size", 2, vector.size());
}
- public void testGetComplexProperty() throws Exception
+ public void testGetComplexProperty()
{
assertEquals("I'm complex!", conf.getProperty("element2.subelement.subsubelement"));
}
- public void testSettingFileNames() throws Exception
+ public void testSettingFileNames()
{
conf = new XMLConfiguration();
conf.setFileName(testProperties);
@@ -325,6 +331,13 @@
config.addProperty("test.string", "hello");
assertEquals("'test.string'", "hello", config.getString("test.string"));
+ }
+
+ public void testAddObjectProperty()
+ {
+ // add a non string property
+ conf.addProperty("test.boolean", Boolean.TRUE);
+ assertTrue("'test.boolean'", conf.getBoolean("test.boolean"));
}
public void testSave() throws Exception
1.38 +3 -0 jakarta-commons/configuration/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/xdocs/changes.xml,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- changes.xml 20 Aug 2004 15:49:27 -0000 1.37
+++ changes.xml 3 Sep 2004 16:36:21 -0000 1.38
@@ -7,6 +7,9 @@
<body>
<release version="1.0-rc2" date="in CVS">
+ <action dev="ebourg" type="fix" issue="30839">
+ Fixed a ClassCastException when adding a non String property to an XMLConfiguration.
+ </action>
<action dev="ebourg" type="fix" issue="30655" due-to="Oliver Heger">
Fixed the handling of attribute properties by HierarchicalConfigurationConverter.
</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org