Driver.acceptsURL(String) not working correctly

From: Garrick Dasbach <Garrick(at)musicrebellion(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Driver.acceptsURL(String) not working correctly
Date: 2003-08-22 19:40:20
Message-ID: 3F4671A4.4020508@musicrebellion.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

I'm currently writing an application which allows a user to enter a JDBC
connection string, and I make a connection using that string and the
drivers available to me. While working with the Postgresql driver, our
primary database, I noticed that the acceptsURL() function of the JDBC
driver does not function correctly.

This is my test code:

Driver driver = // Driver Initialization
if(driver.acceptsURL("blah")){
// report good news
} else {
// fail to user
}

I should recieve a failure, resulting in a dialog popup to the user.
However acceptsURL returns true in this case.

I briefly looked at the source code for the JDBC driver, we are
currently using the 7.3 driver, and found the following in the
parseURL() function

boolean found = (count == 0) ? true : false;
for (int tmp = 0;tmp < protocols.length;tmp++)
{
if (token.equals(protocols[tmp]))
{
// PM June 29 1997 Added this property to enable the driver
// to handle multiple backend protocols.
if (count == 2 && tmp > 0)
{
urlProps.put("Protocol", token);
found = true;
}
}
}

if (found == false)
return null;

Which in the case of my test code returns true. Since there is only one
token "blah", thus making count == 0, and the token is not in the
protocol list, and thus never allows found to be false.

Just thought I'd bring that to your attention.

Garrick Dasbach
Software Development
Digonex Technologies, Inc.
garrick(at)digonex(dot)com

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Rob Prowel 2003-08-23 04:36:55 connection/statement becomes unstable following SQLException
Previous Message Patrick Hatcher 2003-08-22 18:54:35 how to do a SET search_path?