PDGGK opened a new issue, #18241:
URL: https://github.com/apache/iotdb/issues/18241

   ### Search before asking
   
   - [x] I searched in the [issues](https://github.com/apache/iotdb/issues) and 
found nothing similar.
   
   ### Version
   
   `master` (2.0.x). The affected code is also present in released 2.0.x 
versions.
   
   ### Describe the bug and provide the minimal reproduce step
   
   `IoTDBResultMetadata.getCatalogName(int column)` reads 
`columnInfoList.get(column - 1)` before its range check runs, so an 
out-of-range column index throws a raw `IndexOutOfBoundsException` instead of 
the `SQLException` required by the `ResultSetMetaData` contract. The subsequent 
range check (`if (column < 1 || column > columnInfoList.size())`) is therefore 
unreachable for an out-of-range column. The seven sibling `ResultSetMetaData` 
accessors in the same class all call `checkColumnIndex(column)` first; 
`getCatalogName` is the only one missing that guard.
   
   Minimal reproduce step:
   
   1. Obtain a `ResultSetMetaData` from any (non-empty) query result.
   2. Call `metaData.getCatalogName(0)` (or any column index `<= 0` or `> 
column count`).
   3. A raw `IndexOutOfBoundsException` is thrown instead of a `SQLException`.
   
   ### What did you expect to see?
   
   `getCatalogName` throws a `SQLException` for an out-of-range column index, 
consistent with the `ResultSetMetaData` contract and with the sibling accessors.
   
   ### What did you see instead?
   
   A raw `java.lang.IndexOutOfBoundsException` from `columnInfoList.get(column 
- 1)`.
   
   ### Anything else?
   
   The fix is to call `checkColumnIndex(column)` first, as the sibling 
accessors already do — it throws `SQLException` on `column <= 0`, `column > 
size`, and an empty column list. I'd like to work on this and will open a PR.
   
   ### Are you willing to submit a PR?
   
   - [x] I'm willing to submit a PR!
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to