Skip to content

Update dependency org.mariadb.jdbc:mariadb-java-client to v4 - #11

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/org.mariadb.jdbc-mariadb-java-client-4.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/org.mariadb.jdbc-mariadb-java-client-4.x

Conversation

@renovate

@renovate renovate Bot commented Oct 22, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.mariadb.jdbc:mariadb-java-client (source) 3.0.5 → 4.0.0 age adoption passing confidence

Release Notes

mariadb-corporation/mariadb-connector-j (org.mariadb.jdbc:mariadb-java-client)

v4.0.0

Compare Source

Full Changelog

4.0.0 includes every fix of 3.5.11, listed below.

Major Changes
  • CONJ-1361 - Java 17 is the minimum runtime, Java 8 and 11 are no longer supported (the 3.5 branch remains available for Java 8)
  • CONJ-1321 - TLS enabled by default: sslMode now defaults to verify-full
  • CONJ-1384 - AWS IAM authentication moves to the separate artifact mariadb-java-client-aws, the connector no longer
    depends on the AWS SDK; the plugin gains STS assume role support (CONJ-877, report by Adrian Samatan) and ships
    the RDS root certificates so that the default sslMode validates an RDS endpoint without configuration
  • CONJ-1306 - PreparedStatement.executeQuery() rejects statements that return no result set, as the JDBC
    specification requires; the permitNoResults option restores the former behavior (report by Christopher Schultz)
  • CONJ-651 - Stream LOB columns from the socket instead of loading them in memory (report by Ilya Zhavoronkov)
Key Enhancements
  • CONJ-1386 - New sslMode=allow: verify-full when the server announces TLS, unencrypted otherwise, for a mix of
    servers with and without TLS behind one connection string
  • CONJ-1347 - setSavepoint() throws in auto-commit mode instead of silently succeeding
  • CONJ-1262 - cachedCodecs option now defaults to true
  • CONJ-1370 - JNA dependency removed, Unix domain sockets use the JDK implementation
  • CONJ-1371 - useReadAheadInput option and ReadAheadBufferedStream removed
  • CONJ-1366 - First-class module-info.java (module org.mariadb.jdbc)
  • CONJ-1367 - Virtual threads: no carrier pinning in driver locks, verified by a JFR-based test
  • CONJ-1354 - GSSAPI authentication uses the native GSS-API where available
  • CONJ-1308 - Support MariaDB 12.3 XML data type
  • CONJ-1220 - Unix domain sockets on Windows, for SSH tunnels (report by DAIKOZ)
  • CONJ-1378 - Try every IP address a hostname resolves to when opening the socket
  • CONJ-1369 - Performance work on the Java 17 code base: packet reader and writer buffers, readNBytes, ranged
    Arrays.equals, no String.format on data paths
  • CONJ-1365 - Performance: VarHandle little-endian access in packet buffers
  • CONJ-1373 - Performance: JDK UTF-8 encoder for long strings in Writer.writeString / writeStringEscaped
  • CONJ-1375 - Performance: cache codec resolution for getObject(index, Class) and setObject
  • CONJ-1377 - Performance: faster client-side query parsing in ClientParser and NativeSql
  • CONJ-1368 - Build and test tooling: tests run against the built jar, GraalVM metadata refreshed, CI matrix on
    Java 17, 21 and 25
Issues Resolved
  • CONJ-1383 - Connection init rebuilds session_track_system_variables from @​@​global, discarding the session-level
    last_gtid set by MaxScale (report by Sawan Patel)
  • CONJ-1379 - Set an explicit session tracking list and guard character_set_results like character_set_client
    (report by fg0x0)
  • CONJ-1381 - Bound server-declared lengths by the packet before allocating and reading from them (report by fg0x0)
  • CONJ-1374 - Redirect URL password partially logged when containing '@​'
  • CONJ-1372 - caching_sha2_password full authentication fails over a Unix socket when SSL is disabled (report by
    工藤航)
  • CONJ-1360 - Incorrect dependency check in AwsIamCredentialPlugin (report by Dheeraj Nalluri)
  • CONJ-1344 - DatabaseMetaData imported/exported keys ignore lower_case_table_names when using SHOW CREATE TABLE
    (report by plantegg ren)

v3.5.11

Compare Source

Full Changelog

Key Enhancements
  • CONJ-1353 - Generate a CycloneDX 1.6 SBOM meeting the CISA 2026 minimum elements
  • CONJ-1356 - parsec authentication without BouncyCastle on Java 8/11 and without provider-dependent key derivation
  • CONJ-1355 - Add NonRegisteringDriver so that DataSources and pools never register the driver in DriverManager, which pinned the class loader (report by mario-schwede-hivemq)
  • CONJ-1348 - Reassembling packets larger than 16 MB copied the accumulated content once per fragment
Issues Resolved
  • CONJ-1383 - Connection init rebuilds session_track_system_variables from @​@​global, discarding the session-level
    last_gtid set by MaxScale (report by Sawan Patel)
  • CONJ-1379 - Set an explicit session tracking list and guard character_set_results like character_set_client
    (report by fg0x0)
  • CONJ-1381 - Bound server-declared lengths by the packet before allocating and reading from them (report by fg0x0)
  • CONJ-1357 - XA recover() must not trust server-supplied gtrid_length/bqual_length (report by fg0x0)
  • CONJ-1374 - Redirect URL password partially logged when containing '@​' (report by @​manus-pi)
  • CONJ-1372 - caching_sha2_password full authentication fails over a Unix socket when SSL is disabled (report by 工藤航)
  • CONJ-1360 - Incorrect dependency check in AwsIamCredentialPlugin (report by Dheeraj Nalluri)
  • CONJ-1358 - Client-side query timeout thread cannot be stopped and outlives an idle driver
  • CONJ-1352 - Batched statements fail when a trigger produces a result set (report by Christopher Schultz)
  • CONJ-1351 - Reading an invalid DATE value might throw unchecked exceptions instead of SQLException
  • CONJ-1346 - Log-and-throw antipattern: server errors and hostname verification failures logged at DEBUG instead of
    WARN/INFO (report by Alexander Schwartz)
  • CONJ-1345 - DatabaseMetaData#getURL() exposes database password since Connector/J 3.5.10 (report by Klaas)
  • CONJ-1344 - DatabaseMetaData imported/exported keys ignore lower_case_table_names when using SHOW CREATE TABLE
    (report by plantegg ren)
  • CONJ-1343 - DatabaseMetaData.getSQLKeywords() includes eight pairs of concatenated words (report by Adam Rauch)
  • CONJ-1349 - DatabaseMetaData.getBestRowIdentifier() returns primary key columns in an undefined order

v3.5.10

Compare Source

Full Changelog

Key Enhancements
  • CONJ-1333 - Add maxAllowedPacket connection option (send/receive limit)
  • CONJ-1339 - Add maxAllowedColumns option to bound server-announced column count (report by fg0x0)
  • CONJ-1330 - add infer test to CI
Issues Resolved
  • CONJ-1332 - Reject multipart (>16 MB) packets before authentication to prevent pre-auth OOM from a rogue server
  • CONJ-1342 - socketFactory option allows loading arbitrary bytecode via jar: URL, enabling RCE when JDBC URL is
    attacker-controlled (report by Qing Xu)
  • CONJ-1307 - Connection.setReadOnly(true) still allows DML statements to execute
  • CONJ-1326 - Unsafe escaping in enquoteLiteral()/enquoteNCharLiteral() (thanks to jmestwa-coder)
  • CONJ-1327 - Align SSL hostname verification with TLS libraries (thanks to jmestwa-coder)
  • CONJ-1329 - LOAD DATA LOCAL INFILE validation fails open when a bound parameter can't be rendered (thanks to
    jmestwa-coder)
  • CONJ-1331 - trustStore-configured TLS connections defer certificate-chain/identity validation instead of validating
    up front (thanks to jmestwa-coder)
  • CONJ-1340 - SQL injection via unescaped identifiers in updatable ResultSet generated statements (thanks to
    jmestwa-coder)
  • CONJ-1341 - MariaDbPoolDataSource.getConnection(user, password) ignores the user argument when the pool's own
    password is supplied (report by fg0x0)
  • CONJ-1328 - restrictedAuth allowlist is matched with substring contains() instead of equality (thanks to
    jmestwa-coder)
  • CONJ-1338 - Validate length-encoded integers fit a non-negative int before use as a length (report by fg0x0)
  • CONJ-1336 - CONJ-1282 regression: TLS connection fails when JDBC hostname is an absolute FQDN ending with a trailing
    dot (report by Shaswata, thanks to Pepo48 for PR)
  • CONJ-1335 - getGeneratedKeys() throws "integer overflow" after a batch insert when the auto-increment value exceeds
    Integer.MAX_VALUE, and returns bulk generated keys out of batch order

v3.5.9

Compare Source

Full Changelog

Key Enhancements
  • CONJ-1223 - cache TLS trust/key managers across connections to reduce SSL connection cost
  • CONJ-1314 - add SPI for interactive dialog (PAM) authentication callback
  • CONJ-1311 - add dedicated option useIpForKillQuery for query cancellation
  • CONJ-1310 - Add full native image support and CI coverage
Issues Resolved
  • CONJ-1320 - PAM (dialog) authentication must require a secure connection (report by fg0x0)
  • CONJ-1319 - Use constant-time comparison when validating the server certificate fingerprint (report by jmestwa-coder)
  • CONJ-1318 - enforce allowLocalInfile=false on the server's local-infile request, so a malicious server cannot read a client file despite the option being disabled
  • CONJ-1322 - match local infile filename case-sensitively (thanks to jmestwa-coder)
  • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
  • CONJ-1315 - cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if MitM (report by tonghuaroot)
  • CONJ-1317 - ensure non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
  • CONJ-1304 - CallableStatement parameter metadata read from mysql.proc, with MySQL info_schema fallback
  • CONJ-1299 - keep VALUES literals after the last placeholder when rewriting batches
  • CONJ-1313 - race condition in HaMode#getAvailableHostInOrder can cause NPE
  • CONJ-1311 - Connection.cancelCurrentQuery fails with SslMode.VERIFY_FULL when client socket IP is set
  • CONJ-1264 - handle LocalDateTime as a zoneless wall-clock value
  • CONJ-1316 - pin Locale.ROOT on locale-sensitive call sites and date/time/Duration text formatting (fixes
    locale-dependent parsing/formatting, e.g. under tr_TR) (thanks to jmestwa-coder)
  • CONJ-1324 - fix SQL parser to correctly handle '--' in expressions and reset lastChar after block comments
  • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
  • CONJ-1318 - allowLocalInfile=false does not block LOAD DATA LOCAL INFILE against a malicious server (thanks to tharavel)

v3.5.8

Compare Source

Full Changelog

Issues Resolved
  • CONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections
  • CONJ-1303 - Statement.cancel() fails to kill running query during result streaming
Other
  • CONJ-1298 - Performance improvement: avoid decoding extended format

v3.5.7

Compare Source

Full Changelog

Key Enhancements
  • CONJ-1282 - Added TLS SNI (Server Name Indication) support
  • CONJ-1271 - Added MariaDbDataTruncation exception that includes MariaDB error code and error message
Issues Resolved
  • CONJ-1291 - Fixed ConnectionPoolDataSource incompatibility and connection leaks due to internal ConnectionEventListener in MariaDB Connector/J 3.5.x
  • CONJ-1286 - Fixed MariaDbPoolPinnedConnection thread-safety issue
  • CONJ-1283 - Fixed rewriteBatchedStatements introduced in 3.5.6 bug when having parentesis after VALUES parts
  • CONJ-1287 - Fixed authentication plugin multi-exchange prefix (0x01) handling introduced in MDEV-37554
  • CONJ-1290 - Fixed NullPointerException in MultiPrimaryReplicaClient
  • CONJ-1295 - Fixed MariaDbClob compilation with JDK 26+

v3.5.6

Compare Source

Full Changelog

Key Enhancements
  • CONJ-1238 - rewriteBatchStatements implementation
  • CONJ-1274 - server prepared statement client failover to client prepared statement
Issues Resolved
  • CONJ-1278 - prepared statement caching enablement correction, same than 2.x
  • CONJ-1279 - metadata table name addition for 12.1 after MDEV-28933
  • CONJ-1280 - permit having multiple command with initSql option
  • CONJ-1276 - Connection#isValid(int timeout) does not obey the passed in timeout if the network is down.

v3.5.5

Compare Source

Full Changelog

Issues Resolved
  • CONJ-1265 - ensure rollback and release savepoint operation to be sent to server, even when there is no transaction in progress
  • CONJ-1270 - forceConnectionTimeZoneToSession doesn't always set the timezone to server

v3.5.4

Compare Source

Full Changelog

Key Enhancements
  • CONJ-1261 - Added caching option for loadCodecs results to improve performance
Issues Resolved
  • CONJ-1234 - Fixed incorrect type definitions in DatabaseMetaData.getTypeInfo()
  • CONJ-1247 - Resolved potential race condition that could cause NullPointerException
  • CONJ-1250 - avoids redundant queries for CallableStatement.getParameterMetaData()
  • CONJ-1251 - Fixed SSL configuration issue where zero SSL settings only functioned without explicit SSL configuration
  • CONJ-1252 - Resolved GSSAPI authentication error when server exchanges begin with 0x01 byte
  • CONJ-1254 - Corrected DatabaseMetadata.getTypeInfo() returning incorrect values for AUTO_INCREMENT, FIXED_PREC_SCALE, and CASE_SENSITIVE fields
  • CONJ-1255 - Fixed getString method on BIT(1) fields to properly honor transformedBitIsBoolean configuration
  • CONJ-1259 - Enhanced metadata compatibility with MariaDB version 12.0
  • CONJ-1260 - Improved performance of DatabaseMetaData.getExportedKeys method
  • CONJ-1256 - Fixed issue to ensure correct catalog name is returned

v3.5.3

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1226 Fixed issue where dates containing zero day or month resulted in a DateTimeException
  • CONJ-1232 Resolved timestamp string representation incompatibility between versions 2.7 and 3.x
    • see new option oldModeNoPrecisionTimestamp
  • CONJ-1226 Fixed incorrect values returned by ResultSet.getColumnType() for unsigned values
  • CONJ-1241 Corrected regression in 3.x affecting column metadata for unsigned types
  • CONJ-1243 Fixed CallableStatement.getParameterMetadata() returning wrong java.sql.Type for boolean values
  • CONJ-1236 Prevented NPE (Null Pointer Exception) after reconnection failure in high availability configurations
  • CONJ-1237 Fixed issue with incorrect statements.isClosed value after closing connection
  • CONJ-1239 Disabled BULK operations when no parameters are present
  • CONJ-1240 Fixed connectivity issues with databases that only accept TLSv1.3
  • CONJ-1235 Modified redirection option to enable by default only when SSL is enabled

v3.5.2

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1216 Resolved a performance issue that occurred when batch processing on MySQL and older MariaDB (pre-10.2) servers
  • CONJ-1218 Incorrect behavior where XA connections are closed when regular connections are terminated - this is against specifications
  • CONJ-1217 The trustCertificateKeyStorePassword alias parameter isn’t taken into account
  • CONJ-1221 DatabaseMetadata.getTypeInfo() is missing the data types UUID and VECTOR
  • CONJ-1225 System throws an exception prematurely without checking all available connections
  • CONJ-1228 result-set.getObject() on BLOB type returns Blob in place of byte[]
  • CONJ-660 new disconnectOnExpiredPasswords connection option that controls client behavior when connecting with an expired password.
    When set to true (default), the client disconnects if it detects an expired password.
    When false, the client maintains the connection and allows setting a new password.
  • CONJ-1229 Permit executeQuery commands to not return a result-set

v3.5.1

Compare Source

Full Changelog

Key Enhancements
  • CONJ-1353 - Generate a CycloneDX 1.6 SBOM meeting the CISA 2026 minimum elements
  • CONJ-1356 - parsec authentication without BouncyCastle on Java 8/11 and without provider-dependent key derivation
  • CONJ-1355 - Add NonRegisteringDriver so that DataSources and pools never register the driver in DriverManager, which pinned the class loader (report by mario-schwede-hivemq)
  • CONJ-1348 - Reassembling packets larger than 16 MB copied the accumulated content once per fragment
Issues Resolved
  • CONJ-1383 - Connection init rebuilds session_track_system_variables from @​@​global, discarding the session-level
    last_gtid set by MaxScale (report by Sawan Patel)
  • CONJ-1379 - Set an explicit session tracking list and guard character_set_results like character_set_client
    (report by fg0x0)
  • CONJ-1381 - Bound server-declared lengths by the packet before allocating and reading from them (report by fg0x0)
  • CONJ-1357 - XA recover() must not trust server-supplied gtrid_length/bqual_length (report by fg0x0)
  • CONJ-1374 - Redirect URL password partially logged when containing '@​' (report by @​manus-pi)
  • CONJ-1372 - caching_sha2_password full authentication fails over a Unix socket when SSL is disabled (report by 工藤航)
  • CONJ-1360 - Incorrect dependency check in AwsIamCredentialPlugin (report by Dheeraj Nalluri)
  • CONJ-1358 - Client-side query timeout thread cannot be stopped and outlives an idle driver
  • CONJ-1352 - Batched statements fail when a trigger produces a result set (report by Christopher Schultz)
  • CONJ-1351 - Reading an invalid DATE value might throw unchecked exceptions instead of SQLException
  • CONJ-1346 - Log-and-throw antipattern: server errors and hostname verification failures logged at DEBUG instead of
    WARN/INFO (report by Alexander Schwartz)
  • CONJ-1345 - DatabaseMetaData#getURL() exposes database password since Connector/J 3.5.10 (report by Klaas)
  • CONJ-1344 - DatabaseMetaData imported/exported keys ignore lower_case_table_names when using SHOW CREATE TABLE
    (report by plantegg ren)
  • CONJ-1343 - DatabaseMetaData.getSQLKeywords() includes eight pairs of concatenated words (report by Adam Rauch)
  • CONJ-1349 - DatabaseMetaData.getBestRowIdentifier() returns primary key columns in an undefined order

v3.5.0

Compare Source

Full Changelog

Notable changes

* CONJ-1193 Parsec authentication implementation

  • CONJ-1183 permit setting specific truststore
Bugs Fixed
  • CONJ-1202 Session variable setting must be executed last
  • CONJ-1201 incorrect default behavior for forceConnectionTimeZoneToSession
  • CONJ-1200 Batch import fails with exception "Unknown command"
  • CONJ-1199 option connectionCollation addition in order to force collation
  • CONJ-1187 Use different exception type for connection timeouts

v3.4.5

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1383 Connection init rebuilds session_track_system_variables from @​@​global, discarding the session-level
    last_gtid set by MaxScale (report by Sawan Patel)
  • CONJ-1379 Set an explicit session tracking list and guard character_set_results like character_set_client (report by fg0x0)
  • CONJ-1381 Bound server-declared lengths by the packet before allocating and reading from them (report by fg0x0)
  • CONJ-1380 Rogue server can crash the client during caching_sha2_password authentication (report by shadow043)
  • CONJ-1338 Validate length-encoded integers fit a non-negative int before use as a length (report by fg0x0)
  • CONJ-1357 XA recover() must not trust server-supplied gtrid_length/bqual_length (report by fg0x0)
  • CONJ-1349 DatabaseMetaData.getBestRowIdentifier() returns primary key columns in an undefined order
  • CONJ-1279 metadata table name addition for 12.1
  • CONJ-1252 GSSAPI error when exchanges from server starts with 0x01 byte

v3.4.4

Compare Source

Full Changelog

Notable Changes
  • CONJ-1339 - Add maxAllowedColumns option to bound server-announced column count (report by fg0x0)
Bugs Fixed
  • CONJ-1332 - Reject multipart (>16 MB) packets before authentication to prevent pre-auth OOM from a rogue server
  • CONJ-1342 - socketFactory option allows loading arbitrary bytecode via jar: URL, enabling RCE when JDBC URL is
    attacker-controlled (report by Qing Xu)
  • CONJ-1326 - Unsafe escaping in enquoteLiteral()/enquoteNCharLiteral() (thanks to jmestwa-coder)
  • CONJ-1329 - LOAD DATA LOCAL INFILE validation fails open when a bound parameter can't be rendered (thanks to
    jmestwa-coder)
  • CONJ-1340 - SQL injection via unescaped identifiers in updatable ResultSet generated statements (thanks to
    jmestwa-coder)
  • CONJ-1341 - MariaDbPoolDataSource.getConnection(user, password) ignores the user argument when the pool's own
    password is supplied (report by fg0x0)
  • CONJ-1328 - restrictedAuth allowlist is matched with substring contains() instead of equality (thanks to
    jmestwa-coder)

v3.4.3

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1315 - cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if Mitm (report by tonghuaroot)
  • CONJ-1316 - pin Locale.ROOT on locale-sensitive call sites and date/time/Duration text formatting (fixes
    locale-dependent parsing/formatting, e.g. under tr_TR) (thanks to jmestwa-coder)
  • CONJ-1259 - DatabaseMetaData read-only detection: handle MariaDB 12.0 @@read_only returning ON/OFF
    instead of 1/0
  • CONJ-1317 - ensure non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
  • CONJ-1320 - PAM (dialog) authentication now requires a secure connection (TLS or unix socket), like mysql_clear_password (report by fg0x0)
  • CONJ-1319 - use constant-time comparison when validating the server certificate fingerprint (thanks to jmestwa-coder)
  • CONJ-1322 - match local infile filename case-sensitively (thanks to jmestwa-coder)
  • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
  • CONJ-1318 - allowLocalInfile=false does not block LOAD DATA LOCAL INFILE against a malicious server (thanks to tharavel)

v3.4.2: MariaDB Connector/Java 3.4.2

Compare Source

3.4.2 (Mar 2025)

Full Changelog

Bugs Fixed

bug fix report from 3.3.4

  • CONJ-1237 wrong statements.isClosed value after closing connection
  • CONJ-1236 ensure not having NPE after reconnection fail for high availability configurations
  • CONJ-1239 disable BULK use when there isn't any parameter

v3.4.1

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1181 Ensure Prepare cache use schema
  • CONJ-1178 DatabaseMetaData.getImportedKeys return different PK_NAME value than getExportedKeys.
  • CONJ-1180 Correct DatabaseMeta.getExportedKeys() performances
  • CONJ-1185 Android app compatibility, regex CANON_EQ flag not supported
  • CONJ-1188 database meta getSQLKeywords listing all reserved key word, not restricted keywords only
  • CONJ-1189 implementation of pinGlobalTxToPhysicalConnection for XA Connection
  • CONJ-1190 Adding MySQL option 'databaseTerm' as alias for useCatalogTerm for compatibility
  • CONJ-1191 slow metadata getImportedKeys when not having database set
  • CONJ-685 permit setting sslMode per host
  • CONJ-686 Allow mixing TCP and socket hosts in failover configuration
  • CONJ-1068 ResultSetMetaData.getColumnTypeName() returns VARCHAR instead of TINYTEXT
  • CONJ-1182 missing XA_RBTIMEOUT,XA_RBTIMEOUT and XA_RBDEADLOCK error mapping

v3.4.0

Compare Source

Full Changelog

Notable Changes
  • CONJ-981 Add support for connection redirection
  • CONJ-1087 handle mariadb-11.1+ transaction_isolation
  • CONJ-1100 Be able to filter system tables and views
  • CONJ-1105 TLS certificate validation without needs to provide certificate client side
  • CONJ-1171 timezone support missing feature
  • CONJ-1173 Bulk implementation returning individual results for MariaDB 11.5
  • CONJ-1154 avoid unnecessary set transaction isolation queries
Bugs Fixed
  • CONJ-1103 Connector/J Version 3 Does Not Respect "nullCatalogMeansCurrent" Property
  • CONJ-1161 Database connection failing on android
  • CONJ-1107 MariaDB Connector 3 no longer supports query timeout with MySQL
  • CONJ-1125 Inconsistency in Handling PreparedStatement.executeQuery() between MariaDB and MySQL Connectors
  • CONJ-1156 getTables should be ordered as expected
  • CONJ-1163 jdbcCompliantTruncation Does Not Appear To Be Working
  • CONJ-1164 Variable initialization ahead of LOAD DATA INFILE not possible by validateLocalFileName pattern
  • CONJ-1168 useBulkStmts compatibility value with pre 3.2 version
  • CONJ-1169 improve Client prepared statement setMaxRows implementation
  • CONJ-1170 OFFSET missing from getSQLKeywords
  • CONJ-1158 DatabaseMetaData#getFunctions's result not property ordered
  • CONJ-1159 DatabaseMetaData#getClientInfoProperties not ordered correctly
  • CONJ-1166 Implement connection properties fallbackToSystemKeyStore and fallbackToSystemTrustStore
  • CONJ-1174 ConnectorJ gives precision of 20 for signed bigint

v3.3.7

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1383 Connection init rebuilds session_track_system_variables from @​@​global, discarding the session-level
    last_gtid set by MaxScale (report by Sawan Patel)
  • CONJ-1379 Set an explicit session tracking list and guard character_set_results like character_set_client (report by fg0x0)
  • CONJ-1382 Bound server-declared lengths by the packet before allocating (report by fg0x0)
  • CONJ-1381 Bound server-declared lengths by the packet before reading from them (report by fg0x0)
  • CONJ-1380 Rogue server can crash the client during caching_sha2_password authentication (report by shadow043)
  • CONJ-1338 Validate length-encoded integers fit a non-negative int before use as a length (report by fg0x0)
  • CONJ-1357 XA recover() must not trust server-supplied gtrid_length/bqual_length (report by fg0x0)
  • CONJ-1349 DatabaseMetaData.getBestRowIdentifier() returns primary key columns in an undefined order

v3.3.6

Compare Source

Full Changelog

Notable Changes
  • CONJ-1339 - Add maxAllowedColumns option to bound server-announced column count (report by fg0x0)
Bugs Fixed
  • CONJ-1332 - Reject multipart (>16 MB) packets before authentication to prevent pre-auth OOM from a rogue server
  • CONJ-1342 - socketFactory option allows loading arbitrary bytecode via jar: URL, enabling RCE when JDBC URL is
    attacker-controlled (report by Qing Xu)
  • CONJ-1326 - Unsafe escaping in enquoteLiteral()/enquoteNCharLiteral() (thanks to jmestwa-coder)
  • CONJ-1329 - LOAD DATA LOCAL INFILE validation fails open when a bound parameter can't be rendered (thanks to
    jmestwa-coder)
  • CONJ-1340 - SQL injection via unescaped identifiers in updatable ResultSet generated statements (thanks to
    jmestwa-coder)
  • CONJ-1341 - MariaDbPoolDataSource.getConnection(user, password) ignores the user argument when the pool's own
    password is supplied (report by fg0x0)
  • CONJ-1328 - restrictedAuth allowlist is matched with substring contains() instead of equality (thanks to
    jmestwa-coder)

v3.3.5

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1315 - cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if Mitm (report by tonghuaroot)
  • CONJ-1316 - pin Locale.ROOT on locale-sensitive call sites and date/time/Duration text formatting (fixes
    locale-dependent parsing/formatting, e.g. under tr_TR) (thanks to jmestwa-coder)
  • CONJ-1259 - DatabaseMetaData read-only detection: handle MariaDB 12.0 @@read_only returning ON/OFF
    instead of 1/0
  • CONJ-1317 - ensure non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
  • CONJ-1322 - match local infile filename case-sensitively (thanks to jmestwa-coder)
  • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
  • CONJ-1318 - allowLocalInfile=false does not block LOAD DATA LOCAL INFILE against a malicious server (thanks to tharavel)

v3.3.4: MariaDB Connector/Java 3.3.4

Compare Source

3.3.4 (Mar 2025)

Full Changelog

Bugs Fixed
  • CONJ-1237 wrong statements.isClosed value after closing connection
  • CONJ-1236 ensure not having NPE after reconnection fail for high availability configurations
  • CONJ-1239 disable BULK use when there isn't any parameter

v3.3.3

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1050 regression in 3.x.y: nonparameterized batch "INSERT INTO products( name ) VALUES ( 'aaaa' )" fails
  • CONJ-1150 Error using PrepareStatement.setURL with null url
  • CONJ-1152 Improve message when reaching socket timeout during connection initial commands

v3.3.2

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1117 new option returnMultiValuesGeneratedIds for connector 2.x compatibility, so getGeneratedKeys() return all
    ids of multi-value inserts
  • CONJ-1140 regression caussing ClassCastException on DatabaseMetaData when use with option defaultFetchSize set
  • CONJ-1129 Metadata.getPrimaryKeys table comparison using like in place of strict equality
  • CONJ-1130 ensuring batch parameter are cleared after SQL Failure
  • CONJ-1131 NullPointerException when Calling getGeneratedKeys() after an SQL Failure
  • CONJ-1132 Ensuring reseting result for getUpdateCount() after an SQL Failure
  • CONJ-1135 ensuring BULK command not used when using INSERT ON DUPLICATE KEY UPDATE in order to always have unique
    affected rows by default
  • CONJ-1136 wrong decoding for Resultset.getByte() results for binary varchar fields
  • CONJ-1137 ensuring never having NPE in OkPacket when setting auto commit
  • CONJ-1138 Inconsistency in Behavior of PreparedStatement After closeOnCompletion() Between MariaDB and MySQL
    Connectors
  • CONJ-1049 Metadata getTableTypes result was not ordered by TABLE_TYPE

v3.3.1

Compare Source

Full Changelog

Bugs Fixed
  • CONJ-1120 java 8 compatibility error in 3.3.0
  • CONJ-1123 missing OSGi javax.crypto dependency
  • CONJ-1124 ensure not having OOM when setting huge fetch size
  • CONJ-1109 Regression in clearBatch() for parameterized statements
  • CONJ-1126 setting fetchSize directly on a ResultSet object does not reflect the expected change
  • CONJ-1127 Statement.getResultSetType () failed to change the result set type
  • CONJ-1128 Setting Negative Fetch Size on ResultSet Without Throwing Error

v3.3.0

Compare Source

Full Changelog

Notable Changes
  • CONJ-1115 Make connector become more virtual-thread friendly
  • CONJ-1108 Database metadata listing TEMPORARY tables/sequences
  • CONJ-1113 update ed25519 to recent version
  • CONJ-1116 Avoid unnecessary synchronization on calendar when no calendar parameter
Bugs Fixed
  • CONJ-1102 BatchUpdateException.getUpdateCounts() returns SUCCESS_NO_INFO but expects EXECUTE_FAILED

v3.2.0

Compare Source

Full Changelog

Notable Changes
  • CONJ-920 Java batched statements with optimistic locking failing. the option useBulkStmts is now disable by default,
    a new option useBulkStmtsForInserts is enabled by default, permitting using bulk for INSERT commands only. This
    permits optimistic behavior working by default.
  • CONJ-1084 When using maxscale 23.08.0+, and a maxscale node fails, connector will now priorize reconnection to the
    maxscale node having less connection, to ensure repartition after failover
  • CONJ-1088 Implement databaseTerm option for mysql compatibility
  • CONJ-1096 adding option useLocalSessionState to permit avoiding queries when application only use JDBC methods.
Bugs Fixed
  • CONJ-1075 LOAD DATA INFILE is broken on windows
  • CONJ-1079 getGeneratedKeys after batch will not return all generated id's if first batch command return no generated
    id.
  • CONJ-1080 mariadb Java connector sslMode=verify-ca complaining unable to find trust certificate.
  • CONJ-1082 Multiple session system variables parsing fails
  • CONJ-1083 Using /client prepare/ prefix to force client side prepared statement
  • CONJ-1091 can't make a connection when the Read Replica DB is in a hang state when SocketTimeout=0 set
  • CONJ-1092 ensure respecting server collation
  • CONJ-1094 Missing mariadb/mysql collation

v3.1.4

Compare Source

Full Changelog

  • CONJ-1065 wrong Resultset.wasNull() for zero-date timestamps
  • CONJ-1070 getBlob on TEXT columns throw Exception
  • CONJ-1071 Error response during Bulk execution might result in connection wrong state
  • CONJ-1067 When some numeric data types are set to UNSIGNED, ResultSetMetaData.getColumnTypeName() does not return
    UNSIGNED

v3.1.3

Compare Source

Full Changelog

  • CONJ-1054 Threadsafety issue when using CredentialPlugin in v3.x
  • CONJ-1056 JDBC connector reads incorrect data from unix socket when the text is too large
  • CONJ-1057 Wrong decoding of binary time with value "00:00:00"
  • CONJ-1058 JDBC 4.3 org.mariadb.jdbc.Statement enquote* methods implementation @​peterhalicky
  • CONJ-1060 BIT default metadata doesn't take care of transformedBitIsBoolean option
  • report 2.7.9 bug fixes CONJ-1062 and CONJ-1063

v3.1.2

Compare Source

Full Changelog

  • CONJ-1040 possible ConcurrentModificationException when connecting
  • CONJ-1041 possible ArrayIndexOutOfBoundsException

v3.1.1

Full Changelog

  • 3.0.10 bug fix:
    - CONJ-1023 Connector/J doesn't set SSL cap bit in Handshake Response Packet
    - CONJ-1026 timezone=auto option failure on non-fixed-offset zone machine
    - CONJ-1032 Compatibility for deprecated arguments is case sensitive now
  • CONJ-1036 org.mariadb.jdbc.client.socket.impl.PacketWriter.writeAscii() broken in 3.1.0

v3.1.0

Full Changelog

Notable Changes
  • CONJ-899 Support UUID Object
  • CONJ-916 when a failover occurs, log replayed transaction
  • CONJ-917 deprecated options use must be logged
  • CONJ-992 load balance distribution
  • CONJ-1008 default value for socket option useReadAheadInput
  • CONJ-1009 improve performance reading big result-set
  • CONJ-1014 avoid creating array when receiving server packet
  • CONJ-1015 pipelining sending multiple packet to socket
Bugs Fixed
  • CONJ-1020 java 11 option setting ignored

v3.0.11

Compare Source

Full Changelog

  • CONJ-1089 correcting 3.0.10 incompatibility with in java 8

v3.0.10

Compare Source

Full Changelog

  • CONJ-1023 Connector/J doesn't set SSL cap bit in Handshake Response Packet
  • CONJ-1026 timezone=auto option failure on non-fixed-offset zone machine
  • CONJ-1032 Compatibility for deprecated arguments is case sensitive now

v3.0.9

Compare Source

Full Changelog

  • 2.7.7 merge
  • CONJ-1012 stored procedure register output parameter as null if set before registerOutParameter command
  • CONJ-1017 Calendar possible race condition, cause wrong timestamp setting

v3.0.8

Compare Source

Full Changelog

Notable Changes
  • small performance improvement
    * [CONJ-1010] improve client side prepared parameter parameter substitution
Bugs Fixed
  • [CONJ-997] regression in 3.x when using option galeraAllowedState resulting in an IndexOutOfBoundsException
  • [CONJ-1002] 2nd failover reconnection ignores default database/schema setting when not set by connection string
  • [CONJ-1003] replication configuration always use 1st replica on 3.0
  • [CONJ-996] BatchUpdateException doesn't inherited the SQLState & vendorCode from the cause SQL exception
  • [CONJ-1006] disabling cachePrepStmts with useServerPrepStmts might result in Exception
  • [CONJ-1007] Socket file descriptors are leaked after connecting with unix socket if DB is not up running
  • [CONJ-1010] improve client side prepare statement parameter substitution
  • [CONJ-999] setting createDatabaseIfNotExist option use on read-only server will refuse connection on 3.0

v3.0.7

Compare Source

Full Changelog

  • [CONJ-993] SQLDataException reading DATA_TYPE on DatabaseMetaData.getTypeInfo() after 3.0.4
  • [CONJ-986] Permit specific Statement.setLocalInfileInputStream for compatibility
  • [CONJ-987] Version 3.0.0 returns String for VARBINARY instead of byte[] as 2.7.6 did
  • [CONJ-989] Binary column read as String
  • [CONJ-990] Setting timezone=UTC result in SQLSyntaxErrorException
  • [CONJ-991] Regression: binary(16) is returned as String by getObject()
  • [CONJ-994] Version 3.x rejects previously accepted boolean string parameter for BOOLEAN field

v3.0.6

Compare Source

Full Changelog

  • [CONJ-953] PreparedStatement.getGeneratedKeys() returns rows when no keys are generated in insert
  • [CONJ-975] ArrayIndexOutOfBoundsException when attempt to getTime() from ResultSet
  • [CONJ-976] Improve use of pipelining when allowLocalInfile is enabled
  • [CONJ-979] ResultSet.getObject() returns Byte instead of Boolean for tinyint(1)
  • [CONJ-980] Permit setObject with java.util.Date parameter
  • [CONJ-984] Permit executing initial command with new option initSql
  • [CONJ-985] ResultSet.getObject() returns ByteSet instead of Byte[] for BIT

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants