Version 5.1.32 is a maintenance release of the production 5.1 branch. It is suitable for use with MySQL Server versions 5.5, and 5.6.
Connector/J used to always check every SQL statement in a server-side prepared statement to see whether it contained the
ON DUPLICATE KEY UPDATE
clause; but because the clause is only used withINSERT
statements, the checks are unnecessary for other SQL statements while they reduce the performance of Connector/J. A new, boolean connection propertyavoidCheckOnDuplicateKeyUpdateInSQL
has been added, by which the checks for theON DUPLICATE KEY UPDATE
clause can be disabled. (Bug #18232840, Bug #71672)Connector/J now supports Fabric 1.5. Older versions of Fabric are no longer supported.
Preparing a call to a stored procedure with Fabric caused a null pointer exception to be thrown. (Bug #19034681, Bug #73070)
A bug in the Linux kernel version 3.6 and earlier caused the
MysqlIO.clearInputStream()
method to enter an endless loop. This fix changes the way the looping condition is evaluated, in order to avoid the problem. (Bug #19022745, Bug #73053)Connector/J returned the incorrect return code “0” for a thrown exception when the failure happened in the context of a global XA transaction. With this fix, Connector/J now wraps any unexpected exception in an
XAException
in that case and returns the error codeXAER_RMFAIL
. (Bug #18970520, Bug #72890)Calling the
changeUser
method to switch to a user created using thesha256_password
plugin would result in a null pointer exception. This was due to the fact that thefromServer
buffer was unavailable whenchangeUser
called thesha256_password
plugin, and this fix makes the plugin accommodate to that. (Bug #18869381)The test
testSha256PasswordPlugin
failed when executed against a commercial version of the MySQL server. (Bug #18852682)Connecting to a user on the server created using the
sha256_password
plugin failed when the password specified by the client was an empty string (or when no password was specified). This fix makes Connector/J allow an empty password in that case, sending it to the server without applying RSA encryption on it. (Bug #18852587)Trying to use any character sets other than UTF-8 for communications between client programs and the MySQL server caused Connector/J to perform extra queries after the initial connection, resulting in higher latency and overhead for the connection. To prevent extra queries, this fix eliminates the mechanism of setting the character set to values other than “utf-8” by issuing a
SET NAMES
statement to the server, and allows the use of the connection propertycharacterEncoding
to set the character set value in Connector/J's response packet during handshake. (Bug #18836319, Bug #72712)Connector/J failed the test
ConnectionRegressionTest.testBug7607()
when Java 8 was used, due to the new static character set mappings in Java 8. The bug no longer exits after a refactoring of the character set code for Connector/J 5.1.32. (Bug #18809129)A null pointer exception was thrown in
isInterfaceJdbc()
sometimes when load balancing was used and the application involved runtime instrumentations. (Bug #18691866, Bug #72502)The keys generated by
INSERT
statements using theON DUPLICATE KEY UPDATE
clause were incorrect when the clause “ON DUPLICATE KEY UPDATE
” was not written exactly as so (for example, when spaces or comments were inserted in between the words). (Bug #18344403, Bug #71923)XA connections failed with a
ClassCastException
for a load-balanced configuration with multiple hosts. This was because some XA-related classes usedcom.mysql.jdbc.ConnectionImpl
in method parameters during calls. This fix makes the classes usecom.mysql.jdbc.Connection
instead in those cases. (Bug #16722757, Bug #62577)The Ant script for building Connector/J from source failed to check the availability of
javac
andrt.jar
from JDK 1.6 before compilation. That caused compilation to fail when the two files weren't available. This fix corrects the step in the build script that checks for those files before compilation. (Bug #11748301, Bug #35829)