prestodb/presto · error · SQLException
Connection property '%s' is in URL multiple times
Error message
Connection property '%s' is in URL multiple times
What it means
parseParameters builds the URL property map from the JDBC URL query string; when the same property key appears more than once, HashMap.put returns the previous value and this SQLException fires, since ambiguous duplicate properties cannot be resolved.
Source
Thrown at presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java:347
catch (ClientException e) {
throw new SQLException(e.getMessage(), e);
}
catch (RuntimeException e) {
throw new SQLException("Error setting up connection", e);
}
}
private static Map<String, String> parseParameters(String query)
throws SQLException
{
Map<String, String> result = new HashMap<>();
if (query != null) {
Iterable<String> queryArgs = QUERY_SPLITTER.split(query);
for (String queryArg : queryArgs) {
List<String> parts = ARG_SPLITTER.splitToList(queryArg);
if (result.put(parts.get(0), parts.get(1)) != null) {
throw new SQLException(format("Connection property '%s' is in URL multiple times", parts.get(0)));
}
}
}
return result;
}
private static URI parseDriverUrl(String url)
throws SQLException
{
URI uri;
try {
uri = new URI(url.substring(JDBC_URL_START.length()));
}
catch (URISyntaxException e) {
throw new SQLException("Invalid JDBC URL: " + url, e);
}
if (isNullOrEmpty(uri.getHost())) {View on GitHub (pinned to 55bb57d202)
Solutions
- Remove duplicate property keys from the JDBC URL query string
- Keep one occurrence of each property with the desired value
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java:347 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/97b2142e904a96c2.
Report an issue: GitHub.