diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java index 9cd7312265..c7e9ce2b33 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java @@ -2579,11 +2579,11 @@ private void writeSqlVariant(TDSWriter tdsWriter, Object colValue, ResultSet sou break; case TIMEN: - bulkScale = variantType.getScale(); + int timeBulkScale = variantType.getScale(); int timeHeaderLength = 0x08; // default - if (2 >= bulkScale) { + if (2 >= timeBulkScale) { timeHeaderLength = 0x06; - } else if (4 >= bulkScale) { + } else if (4 >= timeBulkScale) { timeHeaderLength = 0x07; } else { timeHeaderLength = 0x08; @@ -2595,8 +2595,8 @@ private void writeSqlVariant(TDSWriter tdsWriter, Object colValue, ResultSet sou // header // length // defers - tdsWriter.writeByte((byte) bulkScale); - tdsWriter.writeTime((java.sql.Timestamp) colValue, bulkScale); + tdsWriter.writeByte((byte) timeBulkScale); + tdsWriter.writeTime((java.sql.Timestamp) colValue, timeBulkScale); break; case DATETIME8: diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java index da953b1471..86998e04a7 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java @@ -538,7 +538,7 @@ public void setUseBulkCopyForBatchInsert(boolean useBulkCopyForBatchInsert) { private boolean sendTimeAsDatetime = SQLServerDriverBooleanProperty.SEND_TIME_AS_DATETIME.getDefaultValue(); @Override - public synchronized final boolean getSendTimeAsDatetime() { + public final boolean getSendTimeAsDatetime() { return !isKatmaiOrLater() || sendTimeAsDatetime; } @@ -3132,7 +3132,7 @@ public void abort(Executor executor) throws SQLException { setState(State.Closed); - if (null != tdsChannel) + if (null != tdsChannel && null != executor) executor.execute(() -> tdsChannel.close()); loggerExternal.exiting(getClassNameLogging(), "abort"); diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java index 1fee0d92e1..b389677b9c 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java @@ -509,7 +509,7 @@ public java.util.UUID getClientConnectionId() throws SQLServerException { } @Override - public synchronized void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue) throws SQLServerException { + public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue) throws SQLServerException { checkClosed(); wrappedConnection.setSendTimeAsDatetime(sendTimeAsDateTimeValue); }