Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.9
-
None
-
None
Description
Add a property with a value containing " (double quote character) and saving it back to file will result in the value being modified and unecessary escaping of the quote character.
The reason is that PropertiesConfig calls into the StringEscapeUtils#escapeJavaStyleString that escapes quotes. This is not correct for propertiesfiles. http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.Reader) says "Escapes are not necessary for single and double quotes"
Here is a test case:
@Test
public void shouldNotEscapeQuotesInTheResult() throws ConfigurationException, IOException {
final String value = "-Djava.io.tmpdir=\"${TEST_TEMP_DIR}\"";
PropertiesConfiguration testConfig = new PropertiesConfiguration();
testConfig.addProperty("testKey1", value);
File testFile = new File(tempTestDir.getPath() + "
prop-with-quotes.properties");
testConfig.save(testFile) ;
String testFileContent = FileUtils.readFileToString(testFile);
Assert.assertTrue(testFileContent.contains(value));
}
Attachments
Issue Links
- is related to
-
CONFIGURATION-515 Make private methods in PropertiesConfiguration.PropertiesWriter protected
- Closed