BUG org.postgresql.Driver.connect() distorts InterruptedException - Mailing list pgsql-jdbc

From Andreas Rudolph
Subject BUG org.postgresql.Driver.connect() distorts InterruptedException
Date
Msg-id F6FBC511-F1BA-4ED7-B0E1-F3EB702A3077@spontech-spine.com
Whole thread Raw
Responses Re: BUG org.postgresql.Driver.connect() distorts InterruptedException  (Dave Cramer <pg@fastcrypt.com>)
Re: BUG org.postgresql.Driver.connect() distorts InterruptedException  (Dave Cramer <pg@fastcrypt.com>)
List 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 by date:

Previous
From: Alexandre Gattiker
Date:
Subject: Re: JDBC driver 9.2 sending arbitrary timezone
Next
From: Michael Paquier
Date:
Subject: Some link errors on jdbc.postgresql.org