From 5dcd2e30625ad3313bbf3dfcc4e0ffe7d715363c Mon Sep 17 00:00:00 2001 From: robokaso Date: Sun, 15 Feb 2009 22:23:26 +0000 Subject: [PATCH] REOPENED - BATCH-618: DefaultJobParametersConverter does not parse parameters of type double handle round doubles correctly --- .../core/converter/DefaultJobParametersConverter.java | 8 +------- .../converter/DefaultJobParametersConverterTests.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 7 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 de5574c93..c61d2666e 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 @@ -106,13 +106,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 = Double.valueOf(parseNumber(value).doubleValue()); propertiesBuilder.addDouble(StringUtils.replace(key, DOUBLE_TYPE, ""), result); } else if (StringUtils.endsWithIgnoreCase(key, STRING_TYPE)) { 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 61ec26e71..d5abaa5ca 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 @@ -136,6 +136,16 @@ public class DefaultJobParametersConverterTests extends TestCase { assertNotNull(props); assertEquals(1.38, props.getDouble("value").doubleValue(), 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").doubleValue(), Double.MIN_VALUE); + } public void testGetProperties() throws Exception {