We're updating the issue view to help you get more done.Learn more

mariadb jdbc client 1.0.0 throws ArrayIndexOutOfBoundsException when passing empty connection url parameter values

The following code fails:

DriverManager.getConnection("jdbc:mysql//localhost:3306/test?user=root&password=");

throws:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at org.mariadb.jdbc.Driver.setURLParameters(Driver.java:128)
at org.mariadb.jdbc.Driver.connect(Driver.java:103)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)

Here is a proposed patch for Driver.setURLParameters:

private void setURLParameters(String urlParameters, Properties info) {
String [] parameters = urlParameters.split("&");
for(String param : parameters) {
int pos = param.indexOf('=');
if (pos == -1)

{ throw new IllegalArgumentException("Expected key=value: " + param); }

info.setProperty(param.substring(0, pos), param.substring(pos + 1));
}
}

Status

Assignee

Vladislav Vaintroub

Reporter

Bjorn Melinder