REOPENED - BATCH-618: DefaultJobParametersConverter does not parse parameters of type double
handle round doubles correctly
This commit is contained in:
@@ -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<String, JobParameter> parameters = params.getParameters();
|
||||
Properties result = new Properties();
|
||||
for (Entry<String, JobParameter> entry : parameters.entrySet()) {
|
||||
|
||||
|
||||
String key = entry.getKey();
|
||||
JobParameter jobParameter = entry.getValue();
|
||||
Object value = jobParameter.getValue();
|
||||
|
||||
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user