Version 5.1.30 is a maintenance release of the production 5.1 branch. It is suitable for use with many MySQL server versions, including 4.1, 5.0, 5.1, 5.4, 5.5, and 5.6.
Functionality Added or Changed
Connector/J now supports MySQL Fabric. See Using Connector/J with MySQL Fabric for details.
Replaced a for loop with the
System.arraycopy() method for copying array
values in the
methods, in order to improve the two methods' performance.
(Bug #18327245, Bug #71861)
Avoided the use of an iterator over the list of statement
interceptors in the methods
so that Connector/J does not increase the stack size
(Bug #18236388, Bug #71679)
created a useless byte array when using JVM's converter and the
encoding defined by the connection. This fix makes the method
StringUtils.toString() using the
original buffer instead of creating a temporary byte array for
(Bug #18228668, Bug #71623)
Improved on the code for integer-to-hex conversion when building XA commands by avoiding the creation of temporary character arrays, thus enhancing performance. (Bug #18228302, Bug #71621)
It was intended that if a previous query on a connection had
setMaxRows() method, in the
next query, Connector/J would not cancel that by setting
SQL_SELECT_LIMIT=DEFAULT if the query
LIMIT clause. However, in the
actual implementation, the maximum row setting was reused in the
subsequent query in various situations beyond expectation (for
example, when a table name contains the string
“limit” in it). This fix removes the
LIMIT-clause parsing and replaces it by a
better way of controlling the maximum rows per session.
(Bug #18110320, Bug #71396)
There were sporadic cases of the key store file being open
hundreds of times and causing some "Too many files open" errors.
This fix makes sure that in
input stream for the key store file is explicitly closed after
(Bug #18107621, Bug #71432)
When working with MySQL 5.6, calling
resulted in a
being thrown if the
Timestamp contained a
fractional second. This fix corrects the digit truncation
performed in the
which was the cause of the problem.
ResultSet.close() on an already
closed ResultSet caused an SQLException. While the exception was
silently discarded, it did result in performance issues. This
fix makes Connector/J comply with the Java specification that
when a ResultSet object is already closed, application of the
close method on it should be a no-op.
(Bug #16722637, Bug #67318)
Fixed the problem of the wrong source being provided when the