Driver.acceptsURL(String) not working correctly - Mailing list pgsql-jdbc

From Garrick Dasbach
Subject Driver.acceptsURL(String) not working correctly
Date
Msg-id 3F4671A4.4020508@musicrebellion.com
Whole thread Raw
Responses Re: Driver.acceptsURL(String) not working correctly
List 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@digonex.com


pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: Error messaages
Next
From: Rob Prowel
Date:
Subject: connection/statement becomes unstable following SQLException