Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating connectionResiliency branch with the changes from dev branch #540

Merged
merged 853 commits into from
Nov 9, 2017

Conversation

ulvii
Copy link
Contributor

@ulvii ulvii commented Nov 3, 2017

No description provided.

xiangyushawn and others added 30 commits July 28, 2017 16:16
“more Junit tests for Always Encrypted” instead of “AlwaysEncrpyted “
“more Junit tests for Always Encrypted” instead of “AlwaysEncrpyted “.
This removes duplicated information when instantiating variables, and increases the readability. For example:

```Java
EnumMap<CallableHandles, HandleAssociation> handleMap =
      new EnumMap<CallableHandles, HandleAssociation>(CallableHandles.class);
```

becomes

```Java
EnumMap<CallableHandles, HandleAssociation> handleMap =
            new EnumMap<>(CallableHandles.class);
```

and

```Java
private static final EnumMap<SSType.Category, EnumSet<JDBCType.Category>> conversionMap =
            new EnumMap<SSType.Category, EnumSet<JDBCType.Category>>(SSType.Category.class);
```

becomes

```Java
private static final EnumMap<SSType.Category, EnumSet<JDBCType.Category>> conversionMap =
                new EnumMap<>(SSType.Category.class);
```
This increases the overall readability of the code, and has been supported since Java 5.
Replace tabs with spaces
…emoved RandomData inside jdbc.datatypes beacuse it's redundant
cheenamalhotra and others added 22 commits October 10, 2017 11:10
Try with resources implementation in JUnit FW - Part 1
…ovement-497

Fix creating SQLServerDataTable being O(n^2) issue
Query with timer can throw IllegalThreadStateException - This PR makes sure the ThreadGroup is not destroyed before creating a new timer thread.
* 6.3.4-preview release
revise the way that pom file uses version number
Merging dev to connectionResiliency branch
@codecov-io
Copy link

codecov-io commented Nov 6, 2017

Codecov Report

Merging #540 into connectionResiliency will increase coverage by 13.26%.
The diff coverage is 52.09%.

Impacted file tree graph

@@                     Coverage Diff                     @@
##             connectionResiliency     #540       +/-   ##
===========================================================
+ Coverage                   32.54%   45.81%   +13.26%     
- Complexity                   1450     2223      +773     
===========================================================
  Files                          98      109       +11     
  Lines                       24027    25983     +1956     
  Branches                     4038     4332      +294     
===========================================================
+ Hits                         7820    11903     +4083     
+ Misses                      14620    11995     -2625     
- Partials                     1587     2085      +498
Flag Coverage Δ Complexity Δ
#JDBC41 45.59% <51.77%> (+13.17%) 2212 <258> (+772) ⬆️
#JDBC42 45.67% <51.86%> (+13.17%) 2215 <256> (+767) ⬆️
Impacted Files Coverage Δ Complexity Δ
...om/microsoft/sqlserver/jdbc/SimpleInputStream.java 51.11% <ø> (+12.87%) 11 <0> (+2) ⬆️
...om/microsoft/sqlserver/jdbc/SQLServerResource.java 100% <ø> (ø) 4 <0> (ø) ⬇️
src/main/java/microsoft/sql/Types.java 0% <ø> (ø) 0 <0> (ø) ⬇️
.../com/microsoft/sqlserver/jdbc/SQLServerJdbc42.java 25% <ø> (-25%) 0 <0> (ø)
...rosoft/sqlserver/jdbc/SQLServerEncryptionType.java 66.66% <ø> (+66.66%) 5 <0> (+5) ⬆️
...osoft/sqlserver/jdbc/SQLServerSecurityUtility.java 50.74% <ø> (+50.74%) 10 <0> (+10) ⬆️
...m/microsoft/sqlserver/jdbc/SQLServerSortOrder.java 100% <ø> (ø) 2 <0> (ø) ⬇️
...a/com/microsoft/sqlserver/jdbc/SQLJdbcVersion.java 0% <ø> (ø) 0 <0> (ø) ⬇️
...dbc/SQLServerStatementColumnEncryptionSetting.java 100% <ø> (ø) 1 <0> (ø) ⬇️
.../com/microsoft/sqlserver/jdbc/SQLServerJdbc41.java 33.33% <ø> (-26.67%) 0 <0> (ø)
... and 135 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 57b292c...d03780c. Read the comment docs.

@@ -132,6 +135,7 @@ public void update6() throws Exception {
Object data = cs.getObject("p_out");
assertEquals(data, dataPut, "Received data not equal to setdata");
}
*/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please disable tests by adding @ Disabled tag - so it will be easier to search for all disabled tests and fix them after complete implementation.

@ulvii ulvii merged commit 06abd7f into microsoft:connectionResiliency Nov 9, 2017
ulvii added a commit to ulvii/mssql-jdbc that referenced this pull request Mar 5, 2018
ulvii added a commit that referenced this pull request Mar 9, 2018
…643)

* replace [ with '

* use PreparedStatement to populate temp table #fkeys_results

* change String to Int for some columns

* refactor a bit

* Add connection properties for specifying custom TrustManager (#74)

* Add connection properties to specify a custom TrustManager

Adds two new connection properties that can be used to specify a custom
TrustManager implementation:

trustManagerClass - Class name of the custom TrustManager

trustManagerConstructorArg - Optional argument to pass to the constructor
constructor of the custom TrustManager.

If encryption is enabled and the trustManagerClass property is specified,
it will be retrieved via Class.forName(...).

If the optional property trustManagerConstructorArg is specified, then a
constructor will be retrieved via getDeclaredConstructors(String.class).
The TrustManager will then be instantiated by specified the optional
argument as a parameter.

If the optional property trustManagerConstructorArg is not specfied,
then the default no argument constructor of the class will be retrieved
and instantiated.

* Adding a few simple test to verify the newly added connection properties

* Rename custom trustmanager test package name

Previous package name used camel case. Corrects naming to be lower case.

* Add missing newlines to trustmanager test classes

* Refactor references to trust managers in tests

* Refactor whitespace and unneeded extends Object

* Add resource cleanup to trust manager tests

* Refactor failure handling for trust manager test

* Rename tmClazz to tmClass

* Add new trust manager properties to SQLServerDataSource

* Reword comment

* Format custom trustmanager changes with auto formatter

* recognize CallableStatement parameter names with leading '@'

* Revert "removing javax.xml.bind package dependency "

* Revert "Removing deprecated APIs in java 9"

* Replace manual array copy

Replace manual array copying with System.arraycopy().

* Remove redundant String.toString()

Calling toString() on a String object is redundant

* Replace bare literals

Replace bare literals with magic constants. For example:

`cal.set(1, 1, 577738, 0, 0, 0);`

becomes

`cal.set(1, Calendar.FEBRUARY, 577738, 0, 0, 0);`

* release process PR

* Revert "Remove redundant if/else statements"

* remove PR 470 from changelist, and modify the readme file

* remove preview from pom

* make urls work

* removing java.xml.bind dependency

* remove developer name from POM file

* removed dependency of java.xml.bind and updated pom file with latest javadoc pluggin.

* disabled appveyor and updated travic to use java 9

* Fixed NoSuchMethodError when compiling with Java 9 but running on java 8 and lower.

* add support for JDBC 4.3 APIs and throw unsupported exceptions for those not implemented yet. Also updated the jdbc file to include building jre8 jar.

* fixed the javadoc warnings.

* update SQLServerJdbc41 to throw unsupportedError for 4.3 APIs

* cleanup tables after test

* more cleaning of tables and procedures

* add snapshot to pom.xml

* Make it 6.3.4

* Implement checkDuplicateColumnName to check duplicate columns

* Fix for EnablePrepareOnFirstPreparedStatementCall with statement pooling
turned off.

* Revert "Implement checkDuplicateColumnName to check duplicate columns"

This reverts commit e77a046.

* Revert "Revert "Implement checkDuplicateColumnName to check duplicate columns""

This reverts commit 8f69956.

* Apply same logic for TVP

* works for AAD integrated on driver side changes

* update changelog and readme for dev branch

* use try with resources

* add another try-with-resource

* drop a not needed method

* try-with-resources implementation commit 1

* Update .travis.yml

Updated docker image tag for mssql-server-linux

* Updating travis build script to use :2017-latest tag for SQL Server docker image

* Update .travis.yml

Updating docker run command as well.

* Update docker run command as well

* Fix AESetup issue with dropCEK

* remove hardcoded username from exception message

* try-with-resources implementation commit 2

* avoid creating connection for termination

* remove null check and change Set object name

* tweak to preserve original parameter name for exception message

* Check for "Account Locked" SQL Exception 18486 while connecitng to SQL Server 2008/2012 and throw Exception

* Updated comment for Locked User Account in SQLServerConnection.java

* Refactoring the logic for checking duplicate column into Util class and adding a test case for this

* Remove explicit interface reference

* Modified bvtTests to be able to test resultSet closing explicitly.

* updates gradle dependencies

* 6.3.4 release (#528)

* 6.3.4-preview release

* Merge dev to master for 6.3.4-preview release (#529)

* TimeoutTimer: Check for destroyed TheadGroup

Running a query that uses a timer can cause an
IllegalThreadStateException if the underlying ThreadGroup has been
destroyed

* TimeoutTimer: Forgot reference

Forgot to add AtomicReference

* recognize CallableStatement parameter names with leading '@'

* Replace manual array copy

Replace manual array copying with System.arraycopy().

* Remove redundant String.toString()

Calling toString() on a String object is redundant

* Replace bare literals

Replace bare literals with magic constants. For example:

`cal.set(1, 1, 577738, 0, 0, 0);`

becomes

`cal.set(1, Calendar.FEBRUARY, 577738, 0, 0, 0);`

* cleanup tables after test

* more cleaning of tables and procedures

* Implement checkDuplicateColumnName to check duplicate columns

* Revert "Implement checkDuplicateColumnName to check duplicate columns"

This reverts commit e77a046.

* Revert "Revert "Implement checkDuplicateColumnName to check duplicate columns""

This reverts commit 8f69956.

* Apply same logic for TVP

* use try with resources

* add another try-with-resource

* drop a not needed method

* try-with-resources implementation commit 1

* Update .travis.yml

Updated docker image tag for mssql-server-linux

* Update .travis.yml

Updating docker run command as well.

* Fix AESetup issue with dropCEK

* try-with-resources implementation commit 2

* avoid creating connection for termination

* remove null check and change Set object name

* tweak to preserve original parameter name for exception message

* Refactoring the logic for checking duplicate column into Util class and adding a test case for this

* Remove explicit interface reference

* Modified bvtTests to be able to test resultSet closing explicitly.

* 6.3.4 release (#528)

* 6.3.4-preview release

* Add 6.3.5-SNAPSHOT to pom file (#530)

* add snapshot to pom file

* cleanup

* remove error message when running AAD integrated on non-windows OS

* read user name from kerberos TGT client name

* add error message when Future's outcome has no AuthenticationResult but exception

* revise the way that pom file uses version number

* add -preview

* Fix for static logger member in abstract class 'SQLServerClobBase'

* fix handle not fund bug for metadata caching

* fix tests

* fix failures in requesthandling test

* Version Update Configuration Rules.

* Added `outdated-dependencies.txt` in .gitignore

* remove prepStmtHandle = -1 which disables metadata caching, and added fix for BatchTriggerTest

* remove fix for BatchTriggerTest, it breaks PreparedStatementTest

* fix hasPreparedStatementHandle()

* add the fix for batch trigger

* fix "handle is not valid" error. If context changed once, metadata caching is disabled on the connection

* clear cached prepared statement handle when pooled connection is removed

* merge the fix of batch trigger

* change back the test to catch BatchUpdateException exception

* disable metadata caching after switching database on connection directly

* process all batch first, then throw batch exception is there is one, otherwise throw sql server exception

* fix for 477

* add check for updatable resultsets.

* re-enable metadata caching after context change

* Updated Changelog for 6.3.5 Release

* Update pom.xml

Fixed minor issue that came during conflict resolution

* Updating POM File for next preview snapshot

* use preparedStatementHandleCache with database name

* retrieve db name without check connection

* Adding changes to logger implementation for avoiding logger lookup

* if password is null, it means AAD integrated auth

* update ADAL4J version to 1.3.0 and also add it into readme file based on request

* remove apache code for encoder and remove 4.1 compaitble jars

* updated dependency versions in pom file for jdbc 4.3 branch

* update samples in JDBC 4.3 branch + change the the junit.platform.version

* update sendTimeAsDateTime property to false.

* remove deprecated APIs

* Fix issue with rowDeleted() causing issues with testing

* Revert "Fix issue with rowDeleted() causing issues with testing"

This reverts commit 823f08e.

* Reverting PR 563, due to test failures

* 6.3.6 preview release

* add more catch blocks for new getDeclaredConstructor method.

* update Travis script with official support of jdk 9

* fix comment

* update readme file

* make recovery work after ms dtc restart

* use javax.security.auth.kerberos instead of sun.security.krb5.Credentials

* add log

* upadate comments and remove an unused import

* remove JNI functions for AAD integrated auth

* update the ADAL4J version to 1.4.0 in pom, this will break the compilation for now.

* Stress test changes - the static meodifier was causing concurrency issues during stress testing.

* use wrapper for sharding APIs

* fix another issue with Java 9 regarding bulkcopy connection check

* added another fix

* added cast to Buffer

* change Base64.getEncoder().encodeToString()

* Make sure the right wrapper is used for 4.2 and above.

* make SQLServerConnection43 throw SQLServerException for new Unsupported APIs

* update readme for AKV

* & is not allowed in error strings or parsing fails.

* update the dtc_xa_interface to use the correct flag for xa_start

* fixed random assertion error

race condition where 2 requestCompletes executed and the first one set the value to true. place test inside synchronized to fix

* spacing

* logger security fix

don't print keystoresecrets

* sonarQube fixes

* use dll authentication when DLL is loaded and windows is the operating system

* Added XML header

* Policheck issue fixes

* Updated as per review comments

* Update POM XML with SNAPSHOT Tag

* change back to retryLogic and change the default of prepared statement caching to false

* check if statementPooling is enabled for all retry logics

* Revert "update sendTimeAsDateTime property to false."

This reverts commit f1674af.

* add the setter and getter methods for disableStatementPooling property

* move same code in a function.

* update for jdk9

* prepare cache in setDisableStatementPooling()

* a small fix

* fixed the double insertion issue with retry

* fixed some review comments and updated test to use raiseError

* added a fix with connection property

* added unit Tests

* Revert back needsPrepare check in retryBasedOnFailedReuseOfCachedHandle

* Remove unwanted method parameter

* Update changelog and driver version for RTW release

* Minor Fix

* Minor change to update to jre9

* Added needsPrepare Check and removed error code 99586 check

* Added check for needsPrepare and removed 99586 check + Moved NeedsPrepare to class level declaration to avoid multi-threading issues.

* Moved 'needsPrepare' to local variable.

* Defaulting needsPrepare to true.

* Moving JDK9 support to added section

* Update SNAPSHOT for upcoming preview release.

* Fix conflicts

* Revert "Updating connectionResiliency branch with the changes from dev branch (#540)"

This reverts commit 06abd7f.

* Fix a few merging issues

* Disabling 2 more tests, Fixing the issues with Pooling cache size
@lilgreenbird lilgreenbird added this to Closed/Merged PRs in MSSQL JDBC Apr 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
MSSQL JDBC
  
Closed/Merged PRs
Development

Successfully merging this pull request may close these issues.

None yet