Version 5.1.42 is a maintenance release of the production 5.1 branch. It is suitable for use with MySQL Server versions 5.5, 5.6, and 5.7. It supports the Java Database Connectivity (JDBC) 4.2 API.
A
null
value can now be extracted from a result set to a class belonging to thejava.time
package. Before, such an extraction resulted in aNullPointerException
being thrown. Thanks to Martin Desharnais for contributing to the fix. (Bug #25250938, Bug #84189)Connector/J now checks that a MySQL server's SSL certificate and the Certificate Authority (CA) that issued it are not expired before establishing an SSL connection with the server, even if the connection property
verifyServerCertificate
is set tofalse
. (Bug #20515688)Name-value pairs contained in the connection property
sessionVariables
can now be separated by either commas or a semicolons. (Bug #17757070)Added Japanese collation for the
utf8mb4
character set.
An invalid timezone identifier was used in
StatementRegressionTest.java
of the Connector/J testsuite. (Bug #25687718, Bug #85351)A mysql client failed to establish an SSL connection to the server using the SSL certificates provided in the Connector/J source package. It was because the certificates have been generated with the same Common Name. This fix corrects the Common Names and regenerates the SSL certificates. (Bug #25636947)
The unit test
testsuite.simple.ResultSetTest.testPadding
failed with the error Unknown character set: 'gb18030' after the collation map updates in release 5.1.40. (Bug #25556597)In a multi-host connection, query timeouts did not occur as configured. It was because the
CancelTask
thread, when trying to access the top level, virtual connection object, ran into a race condition with the connection monitor and then hung. With this fix, theCancelTask
thread is passed a direct reference to the underlying physical connection, with which it can execute the cancellation. (Bug #25490163, Bug #84783)CallableStatement.extractProcedureName()
did not return the correct result when the procedure name contained a dash. This was due to an error in thestripComments()
method of theStringUtils
class, which has now been corrected. (Bug #25321524, Bug #84324)The
ConnectionImpl.isReadOnly()
method returned a confusing error message when it could not retrieve the read-only status of the server. The message has now been changed to “Could not retrieve transaction read-only status from server.” (Bug #25101890, Bug #83834)A
NullPointerException
was thrown when a null boolean value was being read from the database. (Bug #25048406, Bug #83662)After a
BIT
value had been retrieved from a result set, thewasNull()
method of the result set returned value for the lastwasNull()
query instead of the value for the last retrieved column. (Bug #24841670, Bug #83368)Using a partially-quoted identifier (with only the database or the procedure name quoted) or a nonexistent parameter to register an output parameter in a
CallableStatement
caused aNullPointerException
. With this fix, a partially-quoted identifier is accepted, and a nonexistent parameter causes aSQLError
to be thrown. (Bug #22333996, Bug #79561)DatabaseMetaData.getProcedureColumns()
andDatabaseMetaData.getFunctionColumns()
did not return expected results. This was due to the errors with the matching algorithm for the column names, which have now been fixed. Notice that, however, the effects of the connection parametergetProceduresReturnsFunctions
on the two methods when JDBC 4 is used remain unchanged. (Bug #19531384, Bug #73775)When an
UpdatableResultSet
was used, trying to close the result set and its prepared statement simultaneously by different threads might result in a deadlock. This fix updates the synchronization mechanism forUpdatableResultSet
to avoid the issue. (Bug #17653733, Bug #70704)After a connection had already switched catalog with
setCatalog()
, cached data from the old catalog was returned for a reused server-side prepared statement. With this fix, the cache of a server-side prepared statement cache now includes the catalog in its key to avoid wrong cache hits when the statement is reused on another catalog. (Bug #16714868, Bug #66430)