MySQL Connector/J 5.1 Release Notes

2.30 Changes in MySQL Connector/J 5.1.20 (2012-05-01)

Fixes bugs found since release 5.1.19.

Bugs Fixed

  • Important Change: This fix corrects an issue introduced in Connector/J 5.1.19 that caused connection errors with MySQL 4.1 and earlier servers. A java.lang.ClassCastException exception occurred during connection initialization when com.mysql.jdbc.ConnectionImpl.buildCollationMapping() interpreted the output of the SHOW COLLATION statement. (Bug #13958793)

  • Using Connector/J 5.1.19 in combination with JBoss could result in an error while establishing a connection: MySQLNonTransientConnectionException: Bad handshake. This issue occurred when using the old-style password hash, which requires the mysql_old_password plugin during handshake. A workaround was to replace the 16-byte hash with a 41-byte one, as explained in Password Hashing in MySQL. (Bug #13990612, Bug #64983)

  • A java.lang.StringIndexOutOfBoundsException exception could occur when manipulating date/time values with fractional seconds. (Bug #13960556)

  • A MySQLSyntaxErrorException could occur when calling certain methods while connected to a MySQL 5.6.5 or higher server. Affected methods included StatementImpl.execute() and PreparedStatement.execute(). The cause was the removal of the SET OPTION syntax in the MySQL Server. The methods were modified to use the newer SET syntax internally. (Bug #13955027)

  • The savepoint identifier generated by the java.sql.Connection#.setSavepoint() function could be misinterpreted as a floating-point number, for example values such as 123e10 or 123e10foo. Such values could cause replication errors on slave servers because the values are not quoted in the binary log. The fix ensures that the savepoint identifiers do not begin with digits. (Bug #11763271, Bug #55962)

  • If the string limit was used in a column name, prepared statements incorrectly treated the statement as if it used a LIMIT clause. For example, a prepared statement with maxrows set to 0 could incorrectly reuse the value from a previous call to setMaxRows(). This issue applied to both quoted and unquoted column names, and server-side and client-side prepared statements. (Bug #11748492, Bug #36478)