From 5a3fb4db2f5d3587ce51b0b464118fc485c0e19c Mon Sep 17 00:00:00 2001 From: ribeaudc <ribeaudc> Date: Tue, 7 Aug 2007 10:57:20 +0000 Subject: [PATCH] change: - DateConverter logic changed: if 'ParseException' occurs, then returns null. 'ConverterPool' will convert this 'null' into a default value. SVN: 1253 --- .../cisd/common/converter/DateConverter.java | 12 ++++++++---- .../cisd/common/converter/DateConverterTest.java | 14 ++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/common/source/java/ch/systemsx/cisd/common/converter/DateConverter.java b/common/source/java/ch/systemsx/cisd/common/converter/DateConverter.java index 2339fe874e3..23cbd5467ff 100644 --- a/common/source/java/ch/systemsx/cisd/common/converter/DateConverter.java +++ b/common/source/java/ch/systemsx/cisd/common/converter/DateConverter.java @@ -38,7 +38,7 @@ public final class DateConverter implements Converter<Date> public DateConverter(String datePattern) { assert datePattern != null; - + this.dateFormat = createDateFormat(datePattern); } @@ -60,18 +60,22 @@ public final class DateConverter implements Converter<Date> /** * Converts given <code>value</code> to a <code>Date</code>. * <p> - * Return {@link #getDefaultValue()} if no date pattern has been defined or if a <code>ParseException</code> - * occurs. + * Return <code>null</code> if a <code>ParseException</code> occurs or if given <var>value</var> is + * <code>null</code>. * </p> */ public final Date convert(String value) { + if (value == null) + { + return null; + } try { return dateFormat.parse(value); } catch (ParseException ex) { - return getDefaultValue(); + return null; } } diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/converter/DateConverterTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/converter/DateConverterTest.java index 8ce6c7543c9..f250dbd7fb0 100644 --- a/common/sourceTest/java/ch/systemsx/cisd/common/converter/DateConverterTest.java +++ b/common/sourceTest/java/ch/systemsx/cisd/common/converter/DateConverterTest.java @@ -21,6 +21,7 @@ import java.util.Date; import org.apache.commons.lang.time.DateUtils; import org.testng.annotations.Test; +import static org.testng.AssertJUnit.*; /** * Test cases for the {@link DateConverter}. @@ -29,7 +30,7 @@ import org.testng.annotations.Test; */ public final class DateConverterTest { - + @Test(expectedExceptions = { AssertionError.class }) public final void testConstructor() @@ -56,18 +57,19 @@ public final class DateConverterTest Calendar birthday = Calendar.getInstance(); birthday.setTime(date); assert DateUtils.isSameDay(calendar, birthday); + assertNull(converter.convert("notParsableDate")); + assertNull(converter.convert(null)); + assertNull(converter.convert("")); } - + @Test - public final void testGetDefault() { + public final void testGetDefault() + { // Explicit call to <code>getDefaultValue()</code> Calendar today = Calendar.getInstance(); DateConverter converter = new DateConverter("dd.MM.yyyy"); Calendar result = Calendar.getInstance(); result.setTime(converter.getDefaultValue()); assert DateUtils.isSameDay(today, result); - // Implicit call to <code>getDefaultValue()</code> - result.setTime(converter.convert("notParsableDate")); - assert DateUtils.isSameDay(today, result); } } \ No newline at end of file -- GitLab