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));
}
}