From aa1c382c4c1af9be070b2dd50779f3ee5fbe8253 Mon Sep 17 00:00:00 2001 From: Lucas Ward Date: Fri, 4 May 2012 10:17:16 -0500 Subject: [PATCH] RESOLVED - BATCH-1853: If the JobParameters is asked for a Date value that doesn't exist, it will now return null rather than throwing NPE --- .../batch/core/JobParameters.java | 4 ++-- .../batch/core/JobParametersTests.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) 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 953d5263b..17fea88c5 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 @@ -148,7 +148,7 @@ public class JobParameters implements Serializable { * @return The java.util.Date value */ public Date getDate(String key){ - return (Date)parameters.get(key).getValue(); + return this.getDate(key,null); } /** @@ -162,7 +162,7 @@ public class JobParameters implements Serializable { */ public Date getDate(String key, Date defaultValue){ if(parameters.containsKey(key)){ - return getDate(key); + return (Date)parameters.get(key).getValue(); } else{ return defaultValue; 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 1381b33c7..8addd3760 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 @@ -191,4 +191,24 @@ public class JobParametersTests { assertEquals(params, SerializationUtils.deserialize(serialized)); } + + @Test + public void testLongReturns0WhenKeyDoesntExit(){ + assertEquals(0L,new JobParameters().getLong("keythatdoesntexist")); + } + + @Test + public void testStringReturnsNullWhenKeyDoesntExit(){ + assertNull(new JobParameters().getString("keythatdoesntexist")); + } + + @Test + public void testDoubleReturns0WhenKeyDoesntExit(){ + assertEquals(0.0,new JobParameters().getLong("keythatdoesntexist"), 0.0001); + } + + @Test + public void testDateReturnsNullWhenKeyDoesntExit(){ + assertNull(new JobParameters().getDate("keythatdoesntexist")); + } }