[JDBC] Honor DriverManager login timeout
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
The entry point is ArrowFlightJdbcDriver.connect(); first read its current connection path and the existing connectTimeoutMs handling. Add coverage that sets and restores DriverManager's global timeout, checks zero and nonzero timeout behavior, SQLTimeoutException, and allocator, channel, and client cleanup when the overall attempt is cancelled or times out.
Written by the indexing model from the issue text.
Description
Describe the enhancement requested
ArrowFlightJdbcDriver.connect() does not currently honor the timeout configured through DriverManager.setLoginTimeout(int).
Implement support for the DriverManager login timeout:
- Read the value exposed by
DriverManager.getLoginTimeout()when establishing a connection selected byDriverManager. - Preserve the JDBC semantics of zero: do not impose a login timeout.
- Apply a nonzero timeout to the overall connection attempt, not only the underlying Netty socket connection.
- If the timeout expires, attempt to cancel the connection attempt and throw
SQLTimeoutException. - Clean up any allocator, channel, or partially constructed client when the attempt is cancelled or times out.
- Add tests that set and restore the global
DriverManagertimeout and verify timeout enforcement, exception type, and resource cleanup.
This is distinct from #494/#495. The existing connectTimeoutMs property configures Netty socket connection attempts and does not consume the timeout configured through DriverManager.
Context: #1027 and the follow-up discussion.
Related DataSource work: https://github.com/apache/arrow-java/issues/1267
- Dominant language
- Java
- Stars
- 95
- Forks
- 154
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 9
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/arrow-java
-
Type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/arrow-java#1300 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
apache/arrow-java#1261 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/arrow-java#1236 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/arrow-java#1230 ·
-
Type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
apache/arrow-java#1205 ·
All issues in apache/arrow-java
Similar issues
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
apache/cloudstack#14222 ·
-
[BUG]茶杯方块在取茶时会引发崩溃 Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
1.0.0-alpha2 Type/Improvement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
wso2/dpdp-accelerator#272 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
area/frontend
Difficulty 2/5 1-3 hours Newbie friendliness 65/100