Hello all,
MySQL Connector/J 5.1.30, a maintenance release of the production 5.1
branch has been released. Connector/J is the Type-IV pure-Java JDBC
driver for MySQL.
Version 5.1.30 is suitable for use with many MySQL server versions,
including 4.1, 5.0, 5.1, 5.4, 5.5 and 5.6.
MySQL Connector Java (Commercial) is already available for download on the
My Oracle Support (MOS) website. This release will be available on eDelivery
(OSDC) in next month's upload cycle.
As always, we recommend that you check the "CHANGES" file in the
download archive to be aware of changes in behavior that might affect
your application.
MySQL Connector/J 5.1.30 includes the following general bug fixes and
improvements, also available in more detail on
http://dev.mysql.com/doc/relnotes/connector-j/en/news-5-1-30.html :
Changes in MySQL Connector/J 5.1.30 (2014-03-31)
Functionality Added or Changed
* Connector/J now supports MySQL Fabric. See Using Connector/J
with MySQL Fabric
(http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-fabric.html)
for details.
Bugs Fixed
* Replaced a for loop with the System.arraycopy() method for
copying array values in the
MysqlIO.unpackNativeEncodedColumn() and
LoadBalancingConnectionProxy.addHost() 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
MysqlIO.invokeStatementInterceptorsPost() and
MysqlIO.invokeStatementInterceptorsPre(), so that Connector/J
does not increase the stack size unnecessarily. (Bug
#18236388, Bug #71679)
* 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)
* The Field.getStringFromBytes() method created a useless byte
array when using JVM's converter and the encoding defined by
the connection. This fix makes the method call
StringUtils.toString() using the original buffer instead of
creating a temporary byte array for the call. (Bug #18228668,
Bug #71623)
* 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
com.mysql.jdbc.ExportControlled and in
MysqlIO.sendFileToServer(), the input stream for the key store
file is explicitly closed after use. (Bug #18107621, Bug
#71432)
* It was intended that if a previous query on a connection had
used the setMaxRows() method, in the next query, Connector/J
would not cancel that by setting SQL_SELECT_LIMIT=DEFAULT if
the query contained a 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)
* When working with MySQL 5.6, calling
PreparedStatement.setTimestamp() resulted in a
java.lang.StringIndexOutOfBoundsException being thrown if the
Timestamp contained a fractional second. This fix corrects the
digit truncation performed in the formatNanos() method, which
was the cause of the problem. (Bug #18091639)
* Calling 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
build property com.mysql.jdbc.noCryptoBuild was set.
Thanks,
On behalf of Oracle/MySQL Build Team,
Murthy Narkedimilli