Skip to content

Commit 71c4653

Browse files
[PECO-1759] Added null handling for calendar in setTimestamp (#307)
* testing * fixed the issue * minor changes * minor changes * bugfixes
1 parent 72d28c3 commit 71c4653

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

src/main/java/com/databricks/jdbc/core/DatabricksPreparedStatement.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -357,11 +357,15 @@ public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws S
357357
LoggingUtil.log(
358358
LogLevel.DEBUG, "public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal)");
359359
checkIfClosed();
360-
TimeZone originalTimeZone = TimeZone.getDefault();
361-
TimeZone.setDefault(cal.getTimeZone());
362-
x = new Timestamp(x.getTime());
363-
TimeZone.setDefault(originalTimeZone);
364-
setObject(parameterIndex, x, DatabricksTypeUtil.TIMESTAMP);
360+
if (cal != null) {
361+
TimeZone originalTimeZone = TimeZone.getDefault();
362+
TimeZone.setDefault(cal.getTimeZone());
363+
x = new Timestamp(x.getTime());
364+
TimeZone.setDefault(originalTimeZone);
365+
setObject(parameterIndex, x, DatabricksTypeUtil.TIMESTAMP);
366+
} else {
367+
setTimestamp(parameterIndex, x);
368+
}
365369
}
366370

367371
@Override

src/test/java/com/databricks/jdbc/core/DatabricksPreparedStatementTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,15 @@ public void testSetTimestampWithCalendar() throws DatabricksSQLException {
267267
1, new Timestamp(System.currentTimeMillis()), Calendar.getInstance()));
268268
}
269269

270+
@Test
271+
public void testSetTimestampWithNullCalendar() throws DatabricksSQLException {
272+
setupMocks();
273+
DatabricksPreparedStatement preparedStatement =
274+
new DatabricksPreparedStatement(connection, STATEMENT);
275+
assertDoesNotThrow(
276+
() -> preparedStatement.setTimestamp(1, new Timestamp(System.currentTimeMillis()), null));
277+
}
278+
270279
@Test
271280
public void testSetAsciiStream() throws DatabricksSQLException {
272281
setupMocks();

0 commit comments

Comments
 (0)