MySQL Connector/J 5.1.11, 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.11 is suitable for use with any MySQL version including MySQL-5.0, MySQL-5.1
It is now available in source and binary form from the Connector/J download pages at
and mirror sites as well as Maven-2 repositories (note that not all mirror sites may be up
to date at this point of time - if you can't find this version on some mirror, please try
again later or choose another download site.)
As always, we recommend that you check the change log
and "Upgrading" sections
in the manual before upgrading as well as the "CHANGES" file in the download archive to be
aware of changes in behavior that might affect
We welcome and appreciate your feedback, bug reports, bug fixes, patches etc.:
MySQL Connector/J 5.1.11 includes the following changes targeted at scalability and
- Fix for BUG#50288 - NullPointerException possible during
invalidateCurrentConnection() for load-balanced connections.
- Fix for BUG#48605 - Ping for load balanced connections leaves closed connections in
liveConnections, causing subsequent Exceptions when that connection is used.
- Fix for BUG#48442 - Load-balanced Connection object returns inconsistent results for
hashCode() and equals() dependent upon state of underlying connections.
- Fix for BUG#48172 - Batch rewrite requires space immediately after "VALUES"
- Fix for BUG#48486 Cannot use load balanced connections with
- "Replication" connections (those with URLs that start with
jdbc:mysql:replication) now use a jdbc:mysql:loadbalance connection
under the hood for the slave "pool". This also means that one can set
load balancing properties such as "loadBalanceBlacklistTimeout" and
"loadBalanceStrategy" to choose a mechanism for balancing the load and
failover/fault tolerance strategy for the slave pool. This work was done
in order to fix Bug#49537.
- Fixed Bug#36565 - permgen leak from java.util.Timer. Unfortunately no great
fix exists that lets us keep the timer shared amongst connection instances, so
instead it's lazily created if need be per-instance, and torn down when the
connection is closed.
- Fixed BUG#49700 - Connections from ConnectionPoolDataSource don't
maintain any values set with "sesssionVariables=...". This was a bug
in Connection.changeUser()/resetServerState(), we now resubmit the
session variables during the execution of these methods.
(special thanks to Todd Farmer from the Sun/MySQL support team for the numerous fixes to
As well as the following general bug fixes and improvements:
- Fix for BUG#49607 - Provide Connection context in ExceptionInterceptor.
- Fix for BUG#49745 - deleteRow() for updatable result sets can cause full table scan
because escaped hex values are used for primary key identifiers.
- Fix for Bug#32525 - "noDatetimeStringSync" doesn't work for server-side prepared
statements. Now it does.
- Hooked up exception interceptors so they get called now.
- Rev'd the statement interceptor interface to pass on some server flags, warning
counts and errors. See
the com.mysql.jdbc.StatementInteceptorsV2 interface for more details. The driver
will create adaptors to
transparently convert older implementations to the newer interface at runtime.
- Statement Interceptors are now enabled at connection instantiation, but
can not return result sets (they will be ignored) until the connection
has bootstrapped itself. If during the init() method your interceptor
requires access to the connection itself, it should ensure that methods
that might throw exceptions if the connection is closed should handle
this in a robust manner.
- Statement Interceptors didn't completely intercept server-side prepared statements.
Mark Matthews, Architect - Enterprise Tools
MySQL @ Sun Microsystems, Inc., http://www.sun.com/mysql/