ryan-syed opened a new issue, #3389:
URL: https://github.com/apache/arrow-adbc/issues/3389
### What happened?
There is a bug in the Apache drivers where the `ValidateConnection` method
doesn't throw an error if the port is missing or unspecified
Example port validation logic
```
// Validate port range
Properties.TryGetValue(SparkParameters.Port, out string? port);
if (int.TryParse(port, out int portNumber) && (portNumber <=
IPEndPoint.MinPort || portNumber > IPEndPoint.MaxPort))
throw new ArgumentOutOfRangeException(
nameof(Properties),
port,
$"Parameter '{SparkParameters.Port}' value is not in the valid range
of 1 .. {IPEndPoint.MaxPort}.");
```
The above logic ends up parsing a missing or null port value as a zero port
number and doesn't throw an error
The logic should instead be modified to something like:
```
// Validate port range
Properties.TryGetValue(SparkParameters.Port, out string? port);
if (string.IsNullOrWhiteSpace(port))
{
throw new ArgumentException(
$"Required parameter '{SparkParameters.Port}' is missing. Please
provide a port number for the data source.",
nameof(Properties));
}
if (int.TryParse(port, out int portNumber) && (portNumber <=
IPEndPoint.MinPort || portNumber > IPEndPoint.MaxPort))
{
throw new ArgumentOutOfRangeException(
nameof(Properties),
port,
$"Parameter '{SparkParameters.Port}' value is not in the valid range
of 1 .. {IPEndPoint.MaxPort}.");
}
```
This needs to be fixed for Spark, Hive, and Impala.
### Stack Trace
_No response_
### How can we reproduce the bug?
_No response_
### Environment/Setup
_No response_
--
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]