Re: BUG #5961: JDBC Driver acceptURL does not check 'jdbc:postgresql:'

Поиск
Список
Период
Сортировка
От Kris Jurka
Тема Re: BUG #5961: JDBC Driver acceptURL does not check 'jdbc:postgresql:'
Дата
Msg-id 4D95DDB8.2080809@ejurka.com
обсуждение исходный текст
Ответ на BUG #5961: JDBC Driver acceptURL does not check 'jdbc:postgresql:'  ("Martin Handsteiner" <martin.handsteiner@sibvisions.com>)
Список pgsql-bugs
On 4/1/2011 1:34 AM, DI Martin Handsteiner wrote:
>
> Here a working test case:
>
>         Properties properties = new Properties();
>         properties.setProperty("user", "sa");
>         properties.setProperty("password", "");
>         properties.put("shutdown", Boolean.TRUE);
>
>         Connection hsqlConnection =
> DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/testdb",
> properties);
>
>
> The method acceptsUrl should not only check, if it finds some suitable
> properties,
> It should also check, if the url is ment for postgresql.
> In my opinion it should look like:
>

It turns out that DriverManager.getConnection does not call acceptsUrl
at all.  It just tries to connect with each registered driver in turn.
Apparently acceptsUrl is only used for DriverManager.getDriver.  So
changing acceptsUrl (which I maintain works just fine) won't help anything.

What's happening here is that the DriverManager tries to use the
postgresql Driver to establish a connection to the given URL, but it
ends up choking on the provided Properties before it can bail out
because it is not the correct URL.  You should not use the Hashtable
inherited Properties.put method to insert non-string data into a
properties object because all keys and values should be Strings.  If you
get rid of properties.put("shutdown", Boolean.TRUE), it works just fine.

Kris Jurka

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Sumit"
Дата:
Сообщение: BUG #5962: Problem Acessing Network Path
Следующее
От: "Kevin Grittner"
Дата:
Сообщение: Re: Postgres not using indexes