From 9bbf1f5c727ff48bcae1f8e1c5318ded49ec3b12 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 5 Apr 2011 08:59:28 +0100 Subject: [PATCH] BATCH-1316: adjust default values for long and double --- .../batch/core/JobParameters.java | 9 ++++++++- .../batch/core/JobParametersTests.java | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java index 73246eb1e..953d5263b 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java @@ -55,6 +55,9 @@ public class JobParameters implements Serializable { * @return The Long value */ public long getLong(String key){ + if (!parameters.containsKey(key)) { + return 0L; + } Object value = parameters.get(key).getValue(); return value==null ? 0L : ((Long)value).longValue(); } @@ -113,7 +116,11 @@ public class JobParameters implements Serializable { * @return The Double value */ public double getDouble(String key){ - return ((Double)parameters.get(key).getValue()).doubleValue(); + if (!parameters.containsKey(key)) { + return 0L; + } + Double value = (Double)parameters.get(key).getValue(); + return value==null ? 0.0 : value.doubleValue(); } /** diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersTests.java index 35d579f3a..1381b33c7 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersTests.java @@ -85,6 +85,22 @@ public class JobParametersTests { assertEquals(null, parameters.getDate("date.key1")); } + @Test + public void testGetEmptyLong() { + parameters = new JobParameters(Collections.singletonMap("long1", new JobParameter((Long)null))); + assertEquals(0L, parameters.getLong("long1")); + } + + @Test + public void testGetMissingLong() { + assertEquals(0L, parameters.getLong("missing.long1")); + } + + @Test + public void testGetMissingDouble() { + assertEquals(0.0, parameters.getDouble("missing.double1"), 0.0001); + } + @Test public void testIsEmptyWhenEmpty() throws Exception { assertTrue(new JobParameters().isEmpty());