diff --git a/CHANGELOG.md b/CHANGELOG.md index 8875a0e1c..75e387bde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) +## [6.4.0] Stable Release +### Added +- Support added for AAD Integrated Authentication with ADAL4J on Windows/Linux/Mac OS [#603](https://github.com/Microsoft/mssql-jdbc/pull/603) +- Enable Recover after MSDTC is restarted [#581](https://github.com/Microsoft/mssql-jdbc/pull/581) +- Added Version Update configuration rules to project [#541](https://github.com/Microsoft/mssql-jdbc/pull/541) +- JDK 9 Compatibility + JDBC 4.3 API support added to the driver [#601 (https://github.com/Microsoft/mssql-jdbc/pull/601) + +### Fixed Issues +- Re-introduced Retry Logic for Prepared Statement Caching implementation and remove detect change context function [#618](https://github.com/Microsoft/mssql-jdbc/pull/618) and [#620](https://github.com/Microsoft/mssql-jdbc/pull/620) +- Fixes for SonarQube Reported issues [#599](https://github.com/Microsoft/mssql-jdbc/pull/599) +- Fixes for Random Assertion Errors [#597](https://github.com/Microsoft/mssql-jdbc/pull/597) + +### Changed +- Updated Appveyor to use JDK9 building driver and running tests [#619](https://github.com/Microsoft/mssql-jdbc/pull/619) +- JDK 7 compilation support removed from the driver [#601](https://github.com/Microsoft/mssql-jdbc/pull/601) + ## [6.3.6] Preview Release ### Added - Added support for using database name as part of the key for handle cache [#561](https://github.com/Microsoft/mssql-jdbc/pull/561) diff --git a/README.md b/README.md index 6d2d0a746..4983f0c10 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ We're now on the Maven Central Repository. Add the following to your POM file to com.microsoft.sqlserver mssql-jdbc - 6.2.2.jre8 + 6.4.0.jre9 ``` The driver can be downloaded from the [Microsoft Download Center](https://go.microsoft.com/fwlink/?linkid=852460). @@ -120,14 +120,14 @@ Projects that require either of the two features need to explicitly declare the com.microsoft.sqlserver mssql-jdbc - 6.3.6.jre8-preview + 6.4.0.jre9 compile com.microsoft.azure adal4j - 1.3.0 + 1.4.0 ``` @@ -136,14 +136,14 @@ Projects that require either of the two features need to explicitly declare the com.microsoft.sqlserver mssql-jdbc - 6.3.6.jre8-preview + 6.4.0.jre9 compile com.microsoft.azure adal4j - 1.3.0 + 1.4.0 @@ -160,7 +160,7 @@ We love contributions from the community. To help improve the quality of our co Thank you! ## Guidelines for Reporting Issues -We appreciate you taking the time to test the driver, provide feedback and report any issues. It would be extremely helpful if you: +We appreciate you taking the time to test the driver, provide feedback and report any issues. It would be extremely helpful if you: - Report each issue as a new issue (but check first if it's already been reported) - Try to be detailed in your report. Useful information for good bug reports include: diff --git a/appveyor.yml b/appveyor.yml index 8caae887f..5fff6778c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,7 +4,7 @@ init: - cmd: net start MSSQL$%SQL_Instance% environment: - JAVA_HOME: C:\Program Files\Java\jdk1.8.0 + JAVA_HOME: C:\Program Files\Java\jdk9 mssql_jdbc_test_connection_properties: jdbc:sqlserver://localhost:1433;instanceName=%SQL_Instance%;databaseName=master;username=sa;password=Password12!; matrix: @@ -32,9 +32,9 @@ build_script: - keytool -importkeystore -srckeystore cert.pfx -srcstoretype pkcs12 -destkeystore clientcert.jks -deststoretype JKS -srcstorepass password -deststorepass password - keytool -list -v -keystore clientcert.jks -storepass "password" > JavaKeyStore.txt - cd.. - # - mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V -Pbuild41 - # - mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V -Pbuild42 + - mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V -Pbuild43 + - mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V -Pbuild42 -#test_script: -# - mvn test -B -Pbuild41 -# - mvn test -B -Pbuild42 +test_script: + - mvn test -B -Pbuild43 + - mvn test -B -Pbuild42 diff --git a/pom.xml b/pom.xml index c6e459c4e..6c41936d5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.microsoft.sqlserver mssql-jdbc - 6.4.0-SNAPSHOT.${jreVersion} + 6.4.0.${jreVersion} jar Microsoft JDBC Driver for SQL Server diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLJdbcVersion.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLJdbcVersion.java index 81ab1a603..9aaaa8f52 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLJdbcVersion.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLJdbcVersion.java @@ -10,7 +10,7 @@ final class SQLJdbcVersion { static final int major = 6; - static final int minor = 3; - static final int patch = 6; + static final int minor = 4; + static final int patch = 0; static final int build = 0; } diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerPreparedStatement.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerPreparedStatement.java index d4fe81010..262728a94 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerPreparedStatement.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerPreparedStatement.java @@ -528,7 +528,7 @@ final void doExecutePreparedStatement(PrepStmtExecCmd command) throws SQLServerE } String dbName = connection.getSCatalog(); - boolean needsPrepare = false; + boolean needsPrepare = true; // Retry execution if existing handle could not be re-used. for (int attempt = 1; attempt <= 2; ++attempt) { try { @@ -571,13 +571,8 @@ private boolean retryBasedOnFailedReuseOfCachedHandle(SQLException e, // 586: The prepared statement handle %d is not valid in this context. Please verify that current database, user default schema, and // ANSI_NULLS and QUOTED_IDENTIFIER set options are not changed since the handle is prepared. // 8179: Could not find prepared statement with handle %d. - // 99586: Error used for testing. - if (needsPrepare) { - return false; - } - else { - return 1 == attempt && (586 == e.getErrorCode() || 8179 == e.getErrorCode() || 99586 == e.getErrorCode()) && connection.isStatementPoolingEnabled(); - } + if(needsPrepare) return false; + return 1 == attempt && (586 == e.getErrorCode() || 8179 == e.getErrorCode()) && connection.isStatementPoolingEnabled(); } /** @@ -2634,7 +2629,7 @@ final void doExecutePreparedStatementBatch(PrepStmtBatchExecCmd batchCommand) th } String dbName = connection.getSCatalog(); - boolean needsPrepare = false; + boolean needsPrepare = true; // Retry execution if existing handle could not be re-used. for (int attempt = 1; attempt <= 2; ++attempt) { try {