You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/07/13 21:43:35 UTC
svn commit: r1502869 -
/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/XMLPropertiesConfiguration.java
Author: oheger
Date: Sat Jul 13 19:43:35 2013
New Revision: 1502869
URL: http://svn.apache.org/r1502869
Log:
XMLPropertiesConfiguration now uses the list delimiter handler to escape property values.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/XMLPropertiesConfiguration.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/XMLPropertiesConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/XMLPropertiesConfiguration.java?rev=1502869&r1=1502868&r2=1502869&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/XMLPropertiesConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/XMLPropertiesConfiguration.java Sat Jul 13 19:43:35 2013
@@ -29,7 +29,6 @@ import javax.xml.parsers.SAXParserFactor
import org.apache.commons.configuration.io.FileLocator;
import org.apache.commons.configuration.io.FileLocatorAware;
import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.commons.lang3.StringUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -253,10 +252,7 @@ public class XMLPropertiesConfiguration
if (value != null)
{
- // escape the value
- String v = StringEscapeUtils.escapeXml(String.valueOf(value));
- v = StringUtils.replace(v, String.valueOf(getListDelimiter()), "\\" + getListDelimiter());
-
+ String v = escapeValue(value);
out.println(" <entry key=\"" + k + "\">" + v + "</entry>");
}
else
@@ -337,9 +333,7 @@ public class XMLPropertiesConfiguration
if (value != null)
{
- // escape the value
- String v = StringEscapeUtils.escapeXml(String.valueOf(value));
- v = StringUtils.replace(v, String.valueOf(getListDelimiter()), "\\" + getListDelimiter());
+ String v = escapeValue(value);
entry.setTextContent(v);
}
}
@@ -353,6 +347,19 @@ public class XMLPropertiesConfiguration
}
/**
+ * Escapes a property value before it is written to disk.
+ *
+ * @param value the value to be escaped
+ * @return the escaped value
+ */
+ private String escapeValue(Object value)
+ {
+ String v = StringEscapeUtils.escapeXml(String.valueOf(value));
+ return String.valueOf(getListDelimiterHandler().escape(v,
+ ListDelimiterHandler.NOOP_TRANSFORMER));
+ }
+
+ /**
* SAX Handler to parse a XML properties file.
*
* @author Alistair Young