From e40aab476a9fceb39284a1df055922751b32d70e Mon Sep 17 00:00:00 2001 From: robokaso Date: Sun, 15 Feb 2009 22:15:58 +0000 Subject: [PATCH] REOPENED - BATCH-618: DefaultJobParametersConverter does not parse parameters of type double handle round doubles correctly --- .../core/converter/DefaultJobParametersConverter.java | 10 ++-------- .../converter/DefaultJobParametersConverterTests.java | 8 ++++++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java index 9b1cb6094..47096356a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java @@ -108,13 +108,7 @@ public class DefaultJobParametersConverter implements JobParametersConverter { propertiesBuilder.addLong(StringUtils.replace(key, LONG_TYPE, ""), result); } else if (key.endsWith(DOUBLE_TYPE)) { - Double result; - try { - result = (Double) parseNumber(value); - } - catch (ClassCastException ex) { - throw new IllegalArgumentException("Number format is invalid for double value: [" + value + "]"); - } + Double result = parseNumber(value).doubleValue(); propertiesBuilder.addDouble(StringUtils.replace(key, DOUBLE_TYPE, ""), result); } else if (StringUtils.endsWithIgnoreCase(key, STRING_TYPE)) { @@ -157,7 +151,7 @@ public class DefaultJobParametersConverter implements JobParametersConverter { Map parameters = params.getParameters(); Properties result = new Properties(); for (Entry entry : parameters.entrySet()) { - + String key = entry.getKey(); JobParameter jobParameter = entry.getValue(); Object value = jobParameter.getValue(); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/converter/DefaultJobParametersConverterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/converter/DefaultJobParametersConverterTests.java index 2c3af6619..ed3b044be 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/converter/DefaultJobParametersConverterTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/converter/DefaultJobParametersConverterTests.java @@ -137,6 +137,14 @@ public class DefaultJobParametersConverterTests extends TestCase { assertEquals(1.38, props.getDouble("value"), Double.MIN_VALUE); } + public void testGetParametersWithRoundDouble() throws Exception { + + String[] args = new String[] { "value(double)=1.0" }; + + JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "=")); + assertNotNull(props); + assertEquals((double) 1.0, props.getDouble("value"), Double.MIN_VALUE); + } public void testGetProperties() throws Exception { JobParameters parameters = new JobParametersBuilder().addDate("schedule.date", dateFormat.parse("01/23/2008"))