| Bug #71589 | MySQLTimeoutException must extend standard JDBC SQLTimeoutException | ||
|---|---|---|---|
| Submitted: | 5 Feb 2014 5:04 | Modified: | 23 Jul 2021 13:01 |
| Reporter: | constantine Linnick | Email Updates: | |
| Status: | Unsupported | Impact on me: | |
| Category: | Connector / J | Severity: | S3 (Non-critical) |
| Version: | OS: | Any | |
| Assigned to: | Filipe Silva | CPU Architecture: | Any |
| Tags: | exception, java, timeout | ||
[5 Feb 2014 10:24]
Filipe Silva
Hi Constantine, Thank you for this bug report. Verified by code review.
[25 Jun 2015 20:44]
Ross Lamont
In Connector/J 5.1.35, PreparedStatement:1931 - throws a hard coded MySQLTimeoutException - should be doing Util.isJdbc4() somewhere. Also - checkout MySQLStatementCancelledException - same problem
[23 Jul 2021 13:01]
Alexander Soklakov
Posted by developer: This bug does not affect MySQL Connector/J 8.0, com.mysql.cj.jdbc.exceptions.MySQLTimeoutException extends java.sql.SQLTimeoutException there. MySQL Connector/J 5.1 series came to EOL on Feb 9th, 2021, see https://www.mysql.com/support/eol-notice.html, so this bug will not be fixed for this version.
[4 Jan 2023 22:40]
Erica Kane
I have this same problem with version 8.0.27. For which version has this been fixed?
[5 Jan 2023 10:55]
Filipe Silva
Hi Erica, Please provide details. In MySQL Connector/J 8.0 both MySQLTimeoutException and MySQLStatementCancelledException extend the right JDBC exceptions. This issue was only observable in Connector/J 5.1 where the JDBC 4 additions were implemented differently. See also: https://github.com/mysql/mysql-connector-j/blob/release/8.0/src/main/user-impl/java/com/my... And: https://github.com/mysql/mysql-connector-j/blob/release/8.0/src/main/user-impl/java/com/my...
[8 Jan 2023 13:41]
Erica Kane
Yes I did see the extension appeared to be correct. There may be something else going on in our more complex system. You may ignore my earlier comment, thank you for responding.

Description: If we use multiple connectors we cannot use standard sql exceptions to react unified way without vendor-specific classes How to repeat: // Create loooooong sql query try{ Connection connection = getConnection(externalDataSource); Statement st = connection.createStatement(); st.setQueryTimeout(timeout); }catch(SQLTimeoutException){ // we do not get here after timeout } Suggested fix: MySQLTimeoutException extends SQLTimeoutException