MySQL Connector/J Release Notes  /  Changes in MySQL Connector/J Version 8.x  /  Changes in MySQL Connector/J 8.4.0 (2024-04-30, General Availability)

Changes in MySQL Connector/J 8.4.0 (2024-04-30, General Availability)

Version 8.4.0 is a new GA release version of the MySQL Connector/J. MySQL Connector/J 8.4.0 supersedes 8.3 and is recommended for use on production systems. This release can be used against MySQL Server version 8.0 and beyond. It supports the Java Database Connectivity (JDBC) 4.2 API, and implements the X DevAPI.

Functionality Added or Changed

  • Important Change: As the authentication_fido plugin has been removed from MySQL Server starting from 8.4.0, it is no longer supported by Connector/J. Use the WebAuthn Authentication to support Fast Identity Online (FIDO) Authentication. (WL #16147)

  • Known limitation of this release: because the mysql_native_password authentication plugin is disabled by default as of MySQL Server 8.4.0, some unit tests may generate errors unless the plugin is enabled. (Bug #36529541, Bug #114687)

  • Connector/J now provides client-side support for the OpenTelemetry component on MySQL Enterprise Server. See Using Connector/J with OpenTelemetry for details. (WL #15706)

  • Connector/J is now ready to support the VECTOR data type when it becomes available with MySQL Enterprise Server. (WL #16174)

Bugs Fixed

  • getParameterBindings() threw a NullPointerException when some parameters for the PreparedStatement were not bound. (Bug #22931632)

  • DatabaseMetaData.getImportedKeys() returned imported primary keys from some other databases. It was due to a wrong JOIN clause in the SQL statement for retrieving the imported primary keys, which has now been corrected. Thanks to Henning Pöttker for contributing to this fix. (Bug #113600, Bug #36171575)

  • All StringBuffers in the implementations of ValueEncoder have been replaced by StringBuilders to improve code performance, as synchronization for the string values are not required. Thanks to Henning Pöttker for contributing to this patch. (Bug #113599, Bug #36171571)

  • The FetchSize of the ResultSet returned by the execution of a Statement was not always the same as the value set on the Statement before using setFetchSize(). (Bug #113129, Bug #36043145)

  • Some private methods in SyntaxRegressionTest.java had the @Test annotation for JUnit, which were useless because JUnit ignored them by default. The annotations have now been removed. Thanks to Abby Palmero for contributing to this fix. (Bug #111031, Bug #35392222)

  • When a SQLException is thrown, the calling of Messages.getString() is now delayed until it is really necessary, in order to save resources. Thanks to Janick Reynders for contributing to this fix. (Bug #110286, Bug #35152855)

  • DatabaseMetaData.getExtraNameCharacters() returned '#' and '@', which are not allowed in unquoted schema object names. With this fix, it returns '$' as the only "extra" character allowed in unquoted identifiers. (Bug #91550, Bug #28297874)