MySQL Forums
Forum List  »  Announcements

MySQL Connector/J 5.1.31 has been released
Posted by: Jocelyn Ramilison
Date: June 06, 2014 06:31PM

Hello all,

MySQL Connector/J 5.1.31, 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.31 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.31 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-31.html :

Functionality Added or Changed (2014-06-07)

  * Added support for sha256_password authentication with RSA
    encryption.

Bugs Fixed

  * The option name gatherPerfMetrics in the fullDebug.properties
    file was misspelled as gatherPerMetrics. That resulted in the
    performance metrics not being logged. The name has been
    corrected in both the file and the Connector/J manual. (Bug
    #18598665, Bug #72326)

  * The MySQL Fabric driver did not properly propagate exceptions
    thrown during connection creation using JDBC 4. (Bug
    #18549472, Bug #72301)

  * In the method MysqlIO.unpackBinaryResultSetRow, an array was
    created unnecessarily to hold the null bit mask. With this
    fix, Connector/J avoids the creation of the array by making
    use of the data that is still variable in the original buffer
    object. (Bug #18403456, Bug #72023)

  * When trying to get an integer from a column value that was not
    a number, instead of a NumberFormatException , an
    ArrayIndexOutOfBoundsException was thrown instead due to an
    off-by-one error. This fix corrects the stop condition for
    trimming spaces in the beginning of byte buffers in the
    getShort(), getInt(), and getLong() methods in the StringUtils
    class. (Bug #18402873, Bug #72000)

  * In the method PreparedStatement.ParseInfo, a character array
    was created unnecessarily out of a string object. This fix
    removed the unnecessary instantiation of the array. (Bug
    #18403199, Bug #72006)

  * The StringUtils.getBytes methods have been refactored to avoid
    unnecessary creations of string objects for encoding character
    arrays into bytes. Also, unneeded StringBuffers are replaced
    by StringBuiders. (Bug #18389973, Bug #72008)

  * When exception interceptors were used, the init() method was
    called twice for each exception interceptor, once by
    Util.loadExtensions() and again by
    ConnectionImpl.ExceptionInterceptorChain.init(). This fix
    eliminates the calls by ExceptionInterceptorChain.init(). (Bug
    #18318197, Bug #71850)

  * After a non-SSL socket had been transformed into an SSL
    socket, Connection was still keeping its reference to the
    wrapped, non-SSL socket, failing to recognize that the type of
    connection had been changed. This fix creates a new
    StandardSSLSocketFactory class, which implements SocketFactory
    and wraps the initial SocketFactory.afterHandshake() method.
    MysqlIO.socketFactory was replaced after the socket
    transformation, so that afterHandshake() is performed on the
    old factory but returns the new socket. (Bug #18260918, Bug
    #71753)

  * When rewriteBatchedStatements=true and useAffectedRows=true
    were set, executeBatch() returned the number of affected rows
    as given by the server, which was not a reliable value unless
    it was a "0". That behavior was due to the fix for Bug#68562,
    which was implemented in Connector/J 5.1.27 (see the changelog
    for the release
    (http://dev.mysql.com/doc/relnotes/connector-j/en/news-5-1-27.
    html)), and has been breaking a number of applications that
    use Connector/J. In this new fix, Connector/J returns
    Statement.SUCCESS_NO_INFO as a result for each statement in
    the batch as long as there are more than one batched statement
    and the returned value for the affected rows from the server
    is greater than "0". Connector/J returns a "0" otherwise,
    which indicates that no rows have been affected. (Bug
    #18009254, Bug #61213)

  * If profileSQL was enabled, a memory leak would occur after a
    connection was lost and continuous attempts were made to
    reconnect. It was because ProfilerEventHandlerFactory kept a
    map in which dead connections kept on accumulating. This fix
    refactors the ProfilerEventHandlerFactory and eliminates that
    map. (Bug #16737192, Bug #55680)

  * When useCursorFetch was set to true, Connector/J would attempt
    to send XA commands as server prepared statements, which were
    unsupported, and the commands would have to be resent as plain
    statements. This fix stops Connector/J from sending XA
    commands as server prepared statements. (Bug #16708231, Bug
    #67803)

  * When closing a server-prepared statement twice and
    cachePrepStmts=true, the second call closed the statement as
    expected. However, if a call of Connection.prepareStatement()
    was made again with exactly same SQL string, Connector/J
    obtained the closed statement from the cache and failed by
    throwing an exception. With this fix,
    ServerPreparedStatement.close() detects and ignores subsequent
    close() calls on cached statements that have already been
    closed. (Bug #16004987, Bug #66947)

Thanks,

On behalf of Oracle/MySQL Build Team,
Hery Ramilison



Edited 1 time(s). Last edit at 06/06/2014 06:37PM by Jocelyn Ramilison.

Options: ReplyQuote


Subject
Views
Written By
Posted
MySQL Connector/J 5.1.31 has been released
3197
June 06, 2014 06:31PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.