ADDITIONAL SYSTEM INFORMATION :
OS: Linux 64-bit, Java 11-ea+24, MSSQL JDBC 6.4.0
A DESCRIPTION OF THE PROBLEM :
With build 11-ea+24 a jdbc connection to a ms sqlserver can't be established anymore. The connection is stuck at SSLSocketInputRecord.decode(ByteBuffer[], int, int) line: 169.
The issue doesn't occur when using build 11-ea+17.
REGRESSION : Last worked in version 11
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Try to establish a connection to a mssql server.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Connection is established.
ACTUAL -
Connection locks up. The stacktrace of the lock is:
Thread [main] (Suspended)
owns: SSLSocketImpl (id=17)
owns: Object (id=18)
SSLSocketInputRecord.decode(ByteBuffer[], int, int) line: 169
SSLTransport.decode(TransportContext, ByteBuffer[], int, int, ByteBuffer[], int, int) line: 108
SSLSocketImpl.decode(ByteBuffer) line: 877
SSLSocketImpl.waitForClose() line: 952
SSLSocketImpl.closeSocket(boolean) line: 929
SSLSocketImpl.shutdown() line: 1170
TransportContext.initiateOutboundClose() line: 567
TransportContext.closeOutbound() line: 482
TransportContext.close() line: 450
SSLSocketImpl.close() line: 447
TDSChannel.disableSSL() line: 711
TDSWriter.writePacket(int) line: 4093
TDSWriter.endMessage() line: 3196
SQLServerConnection$LogonCommand(TDSCommand).startResponse(boolean) line: 7712
SQLServerConnection$LogonCommand(TDSCommand).startResponse() line: 7700
SQLServerConnection.sendLogon(SQLServerConnection$LogonCommand, SSPIAuthentication, SQLServerConnection$FederatedAuthenticationFeatureExtensionData) line: 4547
SQLServerConnection.logon(SQLServerConnection$LogonCommand) line: 3409
SQLServerConnection.access$100(SQLServerConnection, SQLServerConnection$LogonCommand) line: 85
SQLServerConnection$LogonCommand.doExecute() line: 3373
SQLServerConnection$LogonCommand(TDSCommand).execute(TDSWriter, TDSReader) line: 7344
SQLServerConnection.executeCommand(TDSCommand) line: 2713
SQLServerConnection.connectHelper(ServerPortPlaceHolder, int, int, boolean, boolean, boolean, int) line: 2261
SQLServerConnection.login(String, String, int, String, FailoverInfo, int, long) line: 1921
SQLServerConnection.connectInternal(Properties, SQLServerPooledConnection) line: 1762
SQLServerConnection.connect(Properties, SQLServerPooledConnection) line: 1077
SQLServerDriver.connect(String, Properties) line: 623
DriverManager.getConnection(String, Properties, Class<?>) line: 677
DriverManager.getConnection(String) line: 251
ConnectTest.main(String[]) line: 16
---------- BEGIN SOURCE ----------
// Add mssql-jdbc-6.4.0.jre8.jar to classpath
public class ConnectTest
{
public static void main( String[] args ) throws ClassNotFoundException
{
String connectionUrl = "jdbc:sqlserver://CONNECTION_DETAILS";
Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver" );
try (Connection con = DriverManager.getConnection( connectionUrl ))
{
String SQL = "SELECT 1";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery( SQL );
System.out.println( rs );
}
catch( Exception e )
{
e.printStackTrace();
}
}
}
---------- END SOURCE ----------
FREQUENCY : always