diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/PropertiesConverter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/PropertiesConverter.java index 98837c913..d2b7b13f3 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/PropertiesConverter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/PropertiesConverter.java @@ -69,8 +69,8 @@ public final class PropertiesConverter { } if (!contains(stringToParse, "\n")) { - return StringUtils.splitArrayElementsIntoProperties(StringUtils - .commaDelimitedListToStringArray(stringToParse), "="); + stringToParse = StringUtils.arrayToDelimitedString( + StringUtils.commaDelimitedListToStringArray(stringToParse), "\n"); } StringReader stringReader = new StringReader(stringToParse); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/PropertiesConverterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/PropertiesConverterTests.java index 4001d2407..26743d44f 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/PropertiesConverterTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/PropertiesConverterTests.java @@ -16,18 +16,21 @@ package org.springframework.batch.support; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.util.Properties; +import org.junit.Test; import org.springframework.util.StringUtils; -import junit.framework.TestCase; - /** * Unit tests for {@link PropertiesConverter} * * @author Robert Kasanicky */ -public class PropertiesConverterTests extends TestCase { +public class PropertiesConverterTests { //convenience attributes for storing results of conversions private Properties props = null; @@ -36,6 +39,7 @@ public class PropertiesConverterTests extends TestCase { /** * Check that Properties can be converted to String and back correctly. */ + @Test public void testTwoWayRegularConversion() { Properties storedProps = new Properties(); @@ -50,6 +54,7 @@ public class PropertiesConverterTests extends TestCase { /** * Check that Properties can be comma delimited. */ + @Test public void testRegularConversionWithComma() { Properties storedProps = new Properties(); @@ -64,6 +69,7 @@ public class PropertiesConverterTests extends TestCase { /** * Check that Properties can be comma delimited with extra whitespace. */ + @Test public void testRegularConversionWithCommaAndWhitespace() { Properties storedProps = new Properties(); @@ -78,6 +84,7 @@ public class PropertiesConverterTests extends TestCase { /** * Check that Properties can be comma delimited with extra whitespace. */ + @Test public void testShortConversionWithCommas() { Properties storedProps = new Properties(); @@ -94,6 +101,7 @@ public class PropertiesConverterTests extends TestCase { /** * Check that Properties can be newline delimited. */ + @Test public void testRegularConversionWithCommaAndNewline() { Properties storedProps = new Properties(); @@ -108,6 +116,7 @@ public class PropertiesConverterTests extends TestCase { /** * Null String should be converted to empty Properties */ + @Test public void testStringToPropertiesNull() { props = PropertiesConverter.stringToProperties(null); assertNotNull(props); @@ -117,6 +126,7 @@ public class PropertiesConverterTests extends TestCase { /** * Null or empty properties should be converted to empty String */ + @Test public void testPropertiesToStringNull() { string = PropertiesConverter.propertiesToString(null); assertEquals("", string); @@ -125,4 +135,13 @@ public class PropertiesConverterTests extends TestCase { assertEquals("", string); } + @Test + public void testEscapedColon() throws Exception { + Properties props = new Properties(); + props.setProperty("test", "C:/test"); + String str = PropertiesConverter.propertiesToString(props); + props = PropertiesConverter.stringToProperties(str); + assertEquals("C:/test", props.getProperty("test")); + } + }