Fixes bugs found since release 5.1.10.
Functionality added or changed:
        Replication connections, those with URLs that start with
        jdbc:mysql:replication, now use a jdbc:mysql:loadbalance
        connection for the slave pool. This means that it is possible to
        set load balancing properties such as
        loadBalanceBlacklistTimeout and
        loadBalanceStrategy in order to choose a
        mechanism for balancing the load, and failover or fault
        tolerance strategy for the slave pool.
       (Bug#49537)
Bugs fixed:
        NullPointerException sometimes occurred in
        invalidateCurrentConnection() for
        load-balanced connections.
       (Bug#50288)
        The deleteRow method caused a full table
        scan, when using an updatable cursor and a multibyte character
        set.
       (Bug#49745)
        For pooled connections, Connector/J did not process the session
        variable time_zone when set via the URL,
        resulting in incorrect timestamp values being stored.
       (Bug#49700)
        The ExceptionInterceptor class did not
        provide a Connection context.
       (Bug#49607)
Ping left closed connections in the liveConnections map, causing subsequent Exceptions when that connection was used. (Bug#48605)
        Using MysqlConnectionPoolDataSource with a
        load-balanced URL generated exceptions of type
        ClassCastException:
      
ClassCastException in MysqlConnectionPoolDataSource Caused by: java.lang.ClassCastException: $Proxy0 at com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource.getPooledConnection(MysqlConne ctionPoolDataSource.java:80)
java.lang.ClassCastException: $Proxy2 at com.mysql.jdbc.jdbc2.optional.StatementWrapper.executeQuery(StatementWrapper.java:744)
        The implementation for load-balanced
        Connection used a proxy, which delegated
        method calls, including equals() and
        hashCode(), to underlying
        Connection objects. This meant that
        successive calls to hashCode() on the same
        object potentially returned different values, if the proxy state
        had changed such that it was utilizing a different underlying
        connection.
       (Bug#48442)
        The batch rewrite functionality attempted to identify the start
        of the VALUES list by looking for
        “VALUES ” (with trailing space). However, valid
        MySQL syntax allows for VALUES to be followed
        by whitespace or an opening parenthesis:
      
INSERT INTO tbl VALUES (1); INSERT INTO tbl VALUES(1);
Queries written with the above formats did not therefore gain the performance benefits of the batch rewrite. (Bug#48172)
        A PermGen memory leaked was caused by the Connector/J statement
        cancellation timer (java.util.Timer). When
        the application was unloaded the cancellation timer did not
        terminate, preventing the ClassLoader from being garbage
        collected.
       (Bug#36565)
        With the connection string option
        noDatetimeStringSync set to
        true, and server-side prepared statements
        enabled, the following exception was generated if an attempt was
        made to obtain, using ResultSet.getString(),
        a datetime value containing all zero components:
      
java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date


User Comments
Add your own comment.