BUG org.postgresql.Driver.connect() distorts InterruptedException
От | Andreas Rudolph |
---|---|
Тема | BUG org.postgresql.Driver.connect() distorts InterruptedException |
Дата | |
Msg-id | F6FBC511-F1BA-4ED7-B0E1-F3EB702A3077@spontech-spine.com обсуждение исходный текст |
Ответы |
Re: BUG org.postgresql.Driver.connect() distorts InterruptedException
Re: BUG org.postgresql.Driver.connect() distorts InterruptedException |
Список | pgsql-jdbc |
Hi there! + JDBC driver build number 9.1-903 + Server PostgreSQL 9.1.9 on i686-pc-linux-gnu, compiled by gcc-4.4.real (Debian 4.4.5-8) 4.4.5, 32-bit + Error message / stack trace org.postgresql.util.PSQLException: Beim Verbindungsversuch trat eine Unterbrechung auf. at org.postgresql.Driver$ConnectThread.getResult(Driver.java:365) at org.postgresql.Driver.connect(Driver.java:269) … + Description Recently I discovered this problem because it prevents to tell other SQLExceptions and interruption apart (in the exceptionhandlers). After examining the source of org.postgresql.Driver I noticed that org.postgresql.Driver$ConnectThread.getResultcatches InterruptedException and throws a org.postgresql.util.PSQLExceptioninstead BUT without supplying the InterruptedException as the cause (exception chaining)and without resetting the interrupted flag via Thread.currentThread().interrupt() (SQL error code / SQL state isunspecific, too). Please note that this behavior is present in 9.2-1003, too. Therefore I suggest that the handling of InterruptedException should be changed so it becomes more interoperable with clientcode that needs to handle SQLExceptions differently from thread interruption -- in a concurrent environment an alreadyscheduled database query may become obsolete before it finishes because another query may be needed for example becauseof user intervention. Greetings
В списке pgsql-jdbc по дате отправления: