From 3a31dfe01db0607d3b1b7676a7bc6e96178eee6d Mon Sep 17 00:00:00 2001 From: Edoardo Vacchi Date: Fri, 13 Sep 2013 09:11:04 +0200 Subject: NullPointerException in TableQuery.fetchMetadata() (#11403) Trivial patch. The finally block lacks a check for null before attempting to invoke table.close() Change-Id: Ib32f1d75fef4bd442652ca60a2b7df6aa45d7fa7 --- server/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'server/src/com/vaadin/data') diff --git a/server/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java b/server/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java index 39c8365076..b54a630e04 100644 --- a/server/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java +++ b/server/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java @@ -663,7 +663,9 @@ public class TableQuery extends AbstractTransactionalQuery implements } catch (SQLException ignore) { } finally { try { - tables.close(); + if (tables != null) { + tables.close(); + } } catch (SQLException ignore) { } } -- cgit v1.2.3 From 3cafce30057055d1731313c8d2833cb4c513ccd3 Mon Sep 17 00:00:00 2001 From: Edoardo Vacchi Date: Fri, 13 Sep 2013 10:25:29 +0200 Subject: NullPointerException in DateToSqlDateConverter (#12284) DateToSqlDateConverter throws a NullPointerException when the provided value is null, thus violating the interface contract. If the provided value is null, then the methods should return null. Missing test case included Change-Id: If08225c2a6ae7c3103e47d3817a5d45469c7bf4f --- .../util/converter/DateToSqlDateConverter.java | 9 ++++++++ .../data/converter/TestDateToSqlDateConverter.java | 25 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 server/tests/src/com/vaadin/tests/data/converter/TestDateToSqlDateConverter.java (limited to 'server/src/com/vaadin/data') diff --git a/server/src/com/vaadin/data/util/converter/DateToSqlDateConverter.java b/server/src/com/vaadin/data/util/converter/DateToSqlDateConverter.java index cddf2d8a42..7c252d78f2 100644 --- a/server/src/com/vaadin/data/util/converter/DateToSqlDateConverter.java +++ b/server/src/com/vaadin/data/util/converter/DateToSqlDateConverter.java @@ -44,6 +44,10 @@ public class DateToSqlDateConverter implements Converter { + targetType.getName() + ")"); } + if (value == null) { + return null; + } + return new java.sql.Date(value.getTime()); } @@ -56,6 +60,11 @@ public class DateToSqlDateConverter implements Converter { + getPresentationType().getName() + " (targetType was " + targetType.getName() + ")"); } + + if (value == null) { + return null; + } + return new Date(value.getTime()); } diff --git a/server/tests/src/com/vaadin/tests/data/converter/TestDateToSqlDateConverter.java b/server/tests/src/com/vaadin/tests/data/converter/TestDateToSqlDateConverter.java new file mode 100644 index 0000000000..685404ded6 --- /dev/null +++ b/server/tests/src/com/vaadin/tests/data/converter/TestDateToSqlDateConverter.java @@ -0,0 +1,25 @@ +package com.vaadin.tests.data.converter; + +import java.util.Date; +import java.util.Locale; + +import junit.framework.TestCase; + +import com.vaadin.data.util.converter.DateToSqlDateConverter; + +public class TestDateToSqlDateConverter extends TestCase { + + DateToSqlDateConverter converter = new DateToSqlDateConverter(); + + public void testNullConversion() { + assertEquals(null, + converter.convertToModel(null, java.sql.Date.class, null)); + } + + public void testValueConversion() { + Date testDate = new Date(100, 0, 1); + long time = testDate.getTime(); + assertEquals(testDate, converter.convertToModel(new java.sql.Date(time), + java.sql.Date.class, Locale.ENGLISH)); + } +} -- cgit v1.2.3