| Bug #102076 | Contribution: MySQL JDBC Driver ResultSet.getLong() throws NumberOutOfRange | ||
|---|---|---|---|
| Submitted: | 27 Dec 2020 16:32 | Modified: | 12 Mar 2021 20:11 |
| Reporter: | Gary Gregory (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / J | Severity: | S1 (Critical) |
| Version: | 8.0.22 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | jdbc | ||
[27 Dec 2020 16:32]
Gary Gregory
[28 Dec 2020 15:48]
MySQL Verification Team
Thank you for the bug report. If you want to make a contribution, please attach here the patch and then assign the OCA according the instructions you got in the link you mentioned: n order to consider your code we need you to sign the Oracle Contribution Agreement (OCA). Please review the details and follow the instructions at http://www.oracle.com/technetwork/community/oca-486395.html
[28 Dec 2020 16:05]
Gary Gregory
I've submitted my OCA as part of my fix here: https://github.com/mysql/mysql-connector-j/pull/58
[28 Dec 2020 16:16]
MySQL Verification Team
src/main/protocol-impl/java/com/mysql/cj/protocol/a/MysqlTextValueDecoder.java
@@ -102,7 +102,7 @@
}
public <T> T decodeInt4(byte[] bytes, int offset, int length, ValueFactory<T> vf) {
- return vf.createFromLong(getInt(bytes, offset, offset + length));
+ return vf.createFromLong(getLong(bytes, offset, offset + length));
}
public <T> T decodeUInt8(byte[] bytes, int offset, int length, ValueFactory<T> vf) {
[28 Dec 2020 16:18]
MySQL Verification Team
Thank you for the contribution.
[26 Jan 2021 8:40]
Alexander Soklakov
The Bug#102225 was marked as a duplicate of this one.
[12 Mar 2021 20:11]
Daniel So
Posted by developer: Added the following entry to the Connector/J 8.0.24 changelog: "Using getLong() on the CHAR_OCTET_LENGTH column of the ResultSet for DatabaseMetaData.getProcedureColumns() (or getFunctionColumns()) resulted in a NumberOutOfRange exception when the column's value exceeded 232 − 1. With this patch, the value of 232 − 1 is returned in the situation."
