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