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());